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