*部分:嵌入式Linux使用及高級(jí)編程(15學(xué)時(shí))
1.1 Ubuntu使用基礎(chǔ)
? Ubuntu 8.0 安裝實(shí)戰(zhàn)
? Ubuntu基本配置及使用
? Ubuntu圖形桌面環(huán)境的配置及使用
? 認(rèn)識(shí)X Windows系統(tǒng)
? 定制個(gè)性化的桌面環(huán)境
? Ubuntu命令
? Linux文件系統(tǒng)類(lèi)型及其管理
? Ubuntu常用開(kāi)發(fā)環(huán)境搭建
? 實(shí)驗(yàn)1:Ubuntu安裝
1.2 Ubuntu網(wǎng)絡(luò)配置及軟件包管理
? 基本網(wǎng)絡(luò)命令及使用網(wǎng)絡(luò)工具獲取網(wǎng)絡(luò)信息
? IP地址、DNS等配置
? 透徹了解Ubuntu軟件包
? 底層軟件包管理工具-dpkg
? 善用高級(jí)軟件包管理工具圖形界面軟件包管理工具、Ubuntu軟件包安裝實(shí)例
? FTP服務(wù)器搭建、啟動(dòng)及配置
? NFS服務(wù)器搭建、啟動(dòng)及配置
? 實(shí)驗(yàn)2:FTP/NFS/Samba及Web服務(wù)器實(shí)驗(yàn)
1.3 構(gòu)建嵌入式Linux系統(tǒng)
? 嵌入式開(kāi)發(fā)板介紹
? 安裝交叉編譯器
? 燒寫(xiě)bootloader、內(nèi)核及文件系統(tǒng)
? 實(shí)驗(yàn)3:構(gòu)建嵌入式Linux系統(tǒng)
1.4 嵌入式交叉編譯構(gòu)建及其使用
? 安裝交叉編譯工具鏈
? arm-linux-gcc/ld/objcopy/objdump選項(xiàng)
? C代碼、匯編代碼、機(jī)器碼之間的內(nèi)部關(guān)聯(lián) ?
Makefile文件編寫(xiě)、make工具
? automake工具使用
? 常用應(yīng)用程序的移植
? 實(shí)驗(yàn)4:構(gòu)建嵌入式FTP服務(wù)器
1.5 主機(jī)調(diào)試及遠(yuǎn)程調(diào)試
? Gdb/ddd調(diào)試
? 遠(yuǎn)程調(diào)試
? 實(shí)驗(yàn)5:編寫(xiě)Makefile和遠(yuǎn)程調(diào)試實(shí)驗(yàn)
第二部分 嵌入式Linux2.6內(nèi)核剖析及應(yīng)用編程設(shè)計(jì)(36學(xué)時(shí))
2.1 Linux2.6內(nèi)核源碼組織
? 可執(zhí)行應(yīng)用程序※嵌入式linux內(nèi)核本質(zhì)
? Linux2.6源碼組織之“三駕馬車(chē)”
? Linux2.6內(nèi)核配置選項(xiàng)剖析
? 實(shí)驗(yàn)1:內(nèi)核中添加自己的代碼
2.2 Linux2.6內(nèi)核之進(jìn)程組織
? Linux進(jìn)程概念、組織與調(diào)度
? Linux進(jìn)程創(chuàng)建、銷(xiāo)毀及進(jìn)程間通信機(jī)理
? 實(shí)驗(yàn)2:進(jìn)程創(chuàng)建實(shí)驗(yàn)
? 進(jìn)程間通信之管道/有名管道
2.3 進(jìn)程間通信
? 共享內(nèi)存
? 消息隊(duì)列、信號(hào)及信號(hào)處理:內(nèi)核信號(hào)機(jī)制、信號(hào)分類(lèi)、信號(hào)通訊模型
? 實(shí)驗(yàn)3:進(jìn)程通信實(shí)驗(yàn)
2.4 Linux2.6模塊設(shè)計(jì)
? 模塊基本概念
? Linux模塊管理與編程設(shè)計(jì)
? 模塊加載、卸載機(jī)制
? 模塊參數(shù)及導(dǎo)出符號(hào)
? 實(shí)驗(yàn)4:linux2.6核模塊設(shè)計(jì)
2.5 linux2.6內(nèi)核之內(nèi)存管理
? Linux內(nèi)核用戶(hù)空間和內(nèi)核空間
? Linux2.6內(nèi)核虛擬內(nèi)存管理
? Linux2.6內(nèi)核物理內(nèi)存管理
? 虛擬內(nèi)存到物理內(nèi)存的映射
? 內(nèi)核常用內(nèi)存相關(guān)函數(shù)之解析
? 內(nèi)核中堆、棧的管理
? I/O內(nèi)存靜態(tài)映射與訪(fǎng)問(wèn)
2.6 linux系統(tǒng)調(diào)用及定時(shí)器
? 系統(tǒng)調(diào)用原理和實(shí)現(xiàn)
? 基于Linux2.6內(nèi)核添加新的系統(tǒng)調(diào)用
? 定時(shí)器組織
? 定時(shí)器使用實(shí)例
? 實(shí)驗(yàn)5:系統(tǒng)調(diào)用添加實(shí)例和定時(shí)器使用實(shí)例
2.7 Linux系統(tǒng)中TCP/IP協(xié)議棧
? TCP/IP協(xié)議棧原理
? TCP/IP源碼分析
? Socket編程
2.8實(shí)驗(yàn)6:基于TCP或UDP的聊天軟件的設(shè)計(jì)
2.9 Linux文件系統(tǒng)之構(gòu)建
? Linux下文件系統(tǒng)之兩層含義
? Linux下根文件系統(tǒng)的目錄結(jié)構(gòu)
? 構(gòu)建根文件系統(tǒng)
? 移植busybox
? 安裝glibc庫(kù)
? 制作yaffs文件系統(tǒng)映像文件
? 制作jffs2文件系統(tǒng)映像文件
2.10 移植Linux內(nèi)核
? 修改內(nèi)核支持S3C2410/2440開(kāi)發(fā)板
? 移植YAFFS文件系統(tǒng)
? 編譯、燒寫(xiě)內(nèi)核
? Linux內(nèi)核啟動(dòng)參數(shù)解析
? Linux啟動(dòng)過(guò)程源碼解析
2.11 實(shí)驗(yàn)7:
Linux內(nèi)核移植及根文件系統(tǒng)構(gòu)建
2.12 Linux內(nèi)核調(diào)試技術(shù)
? 內(nèi)核打印函數(shù)printk
? 內(nèi)核源碼級(jí)別的調(diào)試方法-KGDB
? Oops信息及棧回溯
? 實(shí)驗(yàn)8: 內(nèi)核源碼級(jí)調(diào)試實(shí)驗(yàn)
第3部分 嵌入式Linux應(yīng)用程序設(shè)計(jì)(15學(xué)時(shí))
3.1 線(xiàn)程及線(xiàn)程間通信
? 線(xiàn)程概念及創(chuàng)建
? 線(xiàn)程間通信
? 互斥鎖
? 條件變量
? 信號(hào)量
? 實(shí)驗(yàn)1:生產(chǎn)者和消費(fèi)者實(shí)驗(yàn)
3.2嵌入式EmbeddedQT圖形軟件設(shè)計(jì)
? QT/Embedded圖形開(kāi)發(fā)基礎(chǔ)
? QT/Embedded關(guān)鍵技術(shù)
? QT/Embedded移植
? 實(shí)例分析:基于QT/Embedded的嵌入式計(jì)算器設(shè)計(jì)與編程
3.3 linux串口控制及編程
? linux終端設(shè)備(串行端口終端、偽終端、控制臺(tái)終端)
? 串口屬性編程控制
? 實(shí)例:基于GPRS Modem的無(wú)線(xiàn)短信控制平臺(tái)設(shè)計(jì)與編程分析
3.4 嵌入式數(shù)據(jù)庫(kù)設(shè)計(jì)與使用
? 嵌入式數(shù)據(jù)庫(kù)移植
? 嵌入式數(shù)據(jù)庫(kù)編程設(shè)計(jì)
3.5 實(shí)驗(yàn)2:
基于GPRS Modem的無(wú)線(xiàn)短信圖書(shū)查詢(xún)系統(tǒng)
第四部分:嵌入式Linux設(shè)備驅(qū)動(dòng)設(shè)計(jì)(36學(xué)時(shí))
4.1 S3C2410微處理器簡(jiǎn)介及接口設(shè)計(jì)
? ARM體系架構(gòu)及編程基礎(chǔ)
? S3C2410微處理器簡(jiǎn)介
? 看門(mén)狗、RTC、GPIO口設(shè)計(jì)及編程
? 實(shí)驗(yàn)1:鍵盤(pán)按鍵系統(tǒng)和LED燈實(shí)驗(yàn)系統(tǒng)
4.2 S3C2410存儲(chǔ)控制系統(tǒng)
? S3C2410存儲(chǔ)空間
? SDRAM和Nor flash芯片原理
? 存儲(chǔ)控制器控制SDRAM和NorFlash芯片之硬件連接和軟件編程設(shè)計(jì)
? NAND flash控制系統(tǒng):芯片原理、控制器、硬件連接及軟件設(shè)計(jì)
4.3 U-BOOT使用
? U-BOOT源碼結(jié)構(gòu)
? U-BOOT的配置、編譯和連接過(guò)程
? 啟動(dòng)過(guò)程源碼分析
? U-BOOT常用命令
? 實(shí)驗(yàn)2:U-BOOT移植
4.4 字符設(shè)備驅(qū)動(dòng)
? Linux文件系統(tǒng)與設(shè)備驅(qū)動(dòng)
? defs設(shè)備文件系統(tǒng)
? ude設(shè)備文件系統(tǒng)
? linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
? cde結(jié)構(gòu)體、分配和釋放設(shè)備號(hào)、file_operation結(jié)構(gòu)體
? 字符設(shè)備驅(qū)動(dòng)常用函數(shù)功能及使用
4.5 實(shí)驗(yàn)4:globalmem虛擬內(nèi)存設(shè)備驅(qū)動(dòng)編寫(xiě)及上層應(yīng)用程序測(cè)試
4.6 linux設(shè)備驅(qū)動(dòng)中的并發(fā)控制、阻塞與非阻塞I/O
? 并發(fā)與競(jìng)態(tài)
? 自旋鎖
? 信號(hào)量
? 實(shí)例:增加并發(fā)控制后的globalmem驅(qū)動(dòng)
? 阻塞與非阻塞I/O
? 實(shí)例:支持阻塞操作的globalfifo設(shè)備驅(qū)動(dòng)
? 輪詢(xún)操作
? 實(shí)例:支持輪詢(xún)操作的globalfifo設(shè)備驅(qū)動(dòng)
4.7 linux設(shè)備驅(qū)動(dòng)中的異步通知和異步I/O
? 異步通知概念
? Linux異步通知編程
? 實(shí)例:支持異步通知的globalfifo驅(qū)動(dòng)
? Linux 2.6 異步I/O
? 實(shí)驗(yàn)5:增加并發(fā)控制、阻塞和異步通知的globalfifo設(shè)備驅(qū)動(dòng)
4.8 小鍵盤(pán)設(shè)備驅(qū)動(dòng)設(shè)計(jì)
? 鍵盤(pán)硬件電路連接
? 按鍵驅(qū)動(dòng)中的數(shù)據(jù)結(jié)構(gòu)
? Linux中斷編程
? 按鍵設(shè)備中的中斷、定時(shí)器處理程序
? 按鍵設(shè)備驅(qū)動(dòng)的打開(kāi)、讀和釋放函數(shù)
? 實(shí)驗(yàn)6:鍵盤(pán)驅(qū)動(dòng)設(shè)計(jì)和簡(jiǎn)易計(jì)算器軟件編寫(xiě)
4.9 CS8900網(wǎng)卡設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
? Linux下網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
? 網(wǎng)卡設(shè)備驅(qū)動(dòng)核心函數(shù)設(shè)計(jì)
? CS8900網(wǎng)卡設(shè)備硬件連接
? CS8900網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)分析
? CS8900網(wǎng)卡注冊(cè)、初始化與注銷(xiāo)
? CS8900網(wǎng)卡發(fā)送與接收函數(shù)設(shè)計(jì)
4.10實(shí)驗(yàn)7:親手設(shè)計(jì)CS8900網(wǎng)卡設(shè)備驅(qū)動(dòng)軟件
4.11 linux2.6核下LCD屏、觸摸屏及音頻設(shè)備文件應(yīng)用
? LCD屏設(shè)備編程使用
? 觸摸屏設(shè)備編程使用
? 音頻設(shè)備編程
? 實(shí)驗(yàn)9: mplayer媒體播放器移植
4.12 USB設(shè)備驅(qū)動(dòng)
? Linux USB驅(qū)動(dòng)層次
? USB設(shè)備驅(qū)動(dòng)整體架構(gòu)
? USB請(qǐng)求塊
? USB骨架程序設(shè)計(jì)
? USB鼠標(biāo)設(shè)備驅(qū)動(dòng)設(shè)計(jì)
第五部分 項(xiàng)目實(shí)訓(xùn)(18學(xué)時(shí))
嵌入式智能家居安防系統(tǒng)