嵌入式C語言及Linux應用開發(fā)
1、嵌入式操作系統(tǒng)介紹與開發(fā)環(huán)境
- 操作系統(tǒng):簡介、發(fā)展歷史與Linux;
- 嵌入式系統(tǒng)、嵌入式操作系統(tǒng)與ARM Linux;
- Linux/ARM Linux系統(tǒng)啟動與啟動腳本;
- 嵌入式C語言開發(fā)環(huán)境;
- 系統(tǒng)編程預備知識;
2、C語言編程
- C語言程序的內存布局;
- 基于棧的C語言程序;
- C語言應用關鍵點;
3、同步與并發(fā)編程
- 同步、信號量;
- 多線程概念與基礎;
- 進程間通信;
- 管道、消息隊列、共享內存與信號量;
- Daemon進程;
4、內存管理與進程地址空間管理
- Linux虛擬內存管理;
- 進程的線性地址空間(虛擬地址)、虛實地址映射概念;
- 用戶空間與內核空間;
- I/O地址映射概念;
5、文件系統(tǒng)及標準C I/O庫
- Linux文件系統(tǒng);
- Linux虛擬文件系統(tǒng);
- 嵌入式文件系統(tǒng)(ramfs、sysfs、proc、yaffs);
- 系統(tǒng)調用相關:文件系統(tǒng) API;
- 標準C庫I/O API;
6、TCP/IP網絡編程
- TCP/IP協議模型;
- 嵌入式Linux TCP/IP網絡模塊;
- SOCKET編程基礎;
- 基于TCP的網絡服務編程;
- 基于UDP的網絡服務編程;
7、嵌入式GUI及嵌入式數據庫
- Qtopia/Qt應用開發(fā)基礎;
- 嵌入式數據庫sqlite應用開發(fā);
- 信息終端實際項目的應用開發(fā)綜合實例;
ARM架構及嵌入式系統(tǒng)開發(fā)
1、嵌入式硬件基礎
- 三總線及信號基礎;
- SDRAM控制器;
- FLASH控制器;
- 電源、時鐘與復位電路;
- GPIO接口;
- 接口電平(轉換)、總線緩沖器及其他;
- 嵌入式處理器系統(tǒng)總線擴展:以太網接口;
- 嵌入式處理器電路原理圖分析;
2、ARM核心架構與嵌入式Linux應用
- ARM核心架構及ARM(9/11)SOC;
- ARM指令結構;
- 嵌入式硬件體系結構與擴展;
- 基于ARM9平臺的嵌入式Linux應用演示;
3、嵌入式Linux應用開發(fā)環(huán)境
- 搭建交叉開發(fā)主機環(huán)境:基于VMVARE6.0-RHL5.0虛擬主機環(huán)境;
- ARM-Linux-GCC交叉編譯器及二進制工具使用;
- 閱讀與書寫Makefile文件;
- ELF的執(zhí)行格式;
- 深入理解Link工具工作機制;
- 使用gbd調試目標(ARM)應用程序;
4、ARM匯編與C語言混合開發(fā)
- GNU(ARM)匯編語法要點及程序組織結構;
- 面向嵌入式開發(fā)的C語言編程要點;
- 匯編與C程序混合編程以及apcs規(guī)范;
- 編寫位置獨立的程序、連接器的使用(固定地址分配使用)等重要技能;
5、控制器接口
- 理解SOC各類控制器接口的原理;
- 控制器接口編程與應用;
6、BAP、Bootloader與U-BOOT
- bsp、bootloader概念與角色;
- bootloader要解決的問題;
- u-boot工程(Makefile)與編譯;
- u-boot架構與基本執(zhí)行環(huán)境;
- u-boot命令集;
- u-boot源碼分析(板級初始化,命令結構,Image格式,操作系統(tǒng)引導);
- u-boot網絡操作;
- u-boot Storage subsystem(Nand Flash)與Image文件燒寫;
- u-boot移植與修改;
7、ARM Linux Build與根文件系統(tǒng)制作
- Linux內核配置與編譯;
- Linux根文件系統(tǒng):rootfs,ramfs,nfs與yaffs
- 根文件系統(tǒng)的mount分析;
- Initial ARM Disk;
- Busybox制作;
嵌入式Linux內核編程與驅動開發(fā)
1、Linux驅動開發(fā)基礎與內核編程
- 內核模塊(配置、編譯與加載);
- Linux驅動程序架構(Kernel 2.6);
- Linux驅動程序設計流程;
- Linux Device Model開發(fā)驅動程序;
- I/O存取概念;
- 阻塞與非阻塞、read/write與wait Queue;
- 內核驅動的中斷架構與使用;
- 內核并發(fā)與同步;
- Kernel Timeer、Task Queue與Work Queue(Kernel 2.6);
- Memory Mapped I/O;
2、Linux字符設備驅動與Linux Input子系統(tǒng)
- Linux Input子系統(tǒng)結構;
- Input Event Driver與Interface;
- PDA鍵盤驅動設計;
- 實用的PDA鍵盤驅動程序與相關電路設計;
3、LCD顯示與Framebuffer驅動開發(fā)
- LCD顯示硬件接口、控制信號及時序分析;
- 常見LCD及其驅動電路設計;
- Framebuffer驅動顯示原理;
- Framebuffer驅動結構分析;
- Framebuffer驅動程序編程;
4、Memory Techonology Device內核子系統(tǒng)
- Linux MTD子系統(tǒng)架構分析;
- Linux MTD子系統(tǒng)源碼分析;
- MTD系統(tǒng)使用-lower driver:NAND Flash Driver分析;
- MTD系統(tǒng)使用-upper fs:yaffs2;
5、USB驅動程序開發(fā)
- USB架構:總線,總機控制器,傳輸類型與尋址;
- Linux USB子系統(tǒng)架構;
- 基于USB接口的通信;
- 接口初始化與參數配置;
- USB驅動程序開發(fā)要點;
- USB驅動設備實例講解-USB-serial;
嵌入式Linux應用開發(fā)及工程實踐
1、嵌入式GUI應用開發(fā)
- 嵌入式Linux GUI;
- Why Qtopia/Qt-e,QT-E應用基礎;
- 實用的基于Qtopia/qt-e的應用系統(tǒng);
- 完整的Qt-e實例講解(基于網絡環(huán)境的交互式應用,具有系統(tǒng)服務支持);
2、嵌入式網絡應用開發(fā)
- OSI七層模型和TCP/IP四層模型;
- socket編程;
- socket高級編程;
3、嵌入式數據庫開發(fā)
- 嵌入式數據庫SQLite簡介;
- SQLite移植;
- SQLite編程;
4、綜合項目實踐
嵌入式Linux系統(tǒng)架構及裁剪
1、ARM Linux BOOT
- 內核Image構成與分析:piggy,bootstrap loader;
- 內核啟動(initialization)詳細分析;
- 內核命令行參數處理;
- 內核子系統(tǒng)初始化;
- Init thread;
2、嵌入式Linux系統(tǒng)移植與裁剪
- Linux系統(tǒng)組成模塊;
- 系統(tǒng)模塊關系;
- 設備驅動模型;
- stepbystep剪裁方法與原則;