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