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