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