| 進(jìn)入嵌入式Linux的精彩世界 | 
- Linux的特點(diǎn)、版本演進(jìn)與發(fā)展方向
 
- 嵌入式Linux系統(tǒng)組成
 
- 開發(fā)環(huán)境構(gòu)建
                    
- 安裝設(shè)置ARM工具鏈
 
- 安裝設(shè)置NFS、SSH、TFTP服務(wù)
 
 
 
- GNU工具鏈和GDB調(diào)試
 
 
 | 
| 嵌入式Linux構(gòu)建與啟動過程分析 | 
- 文件系統(tǒng)組成
 
- Busybox編譯與配置
 
- 加入C庫
 
- Linux啟動過程
                    
- Bootloader
 
- 內(nèi)核啟動過程
 
- 用戶空間init
 
 
 
- 嵌入式Linux裁剪
                    
- 內(nèi)核Kconfig和Makefile
 
- 內(nèi)核源代碼目錄
 
- 內(nèi)核裁剪
 
- 文件系統(tǒng)裁剪
 
 
 
 
 | 
| Linux內(nèi)核進(jìn)程調(diào)度 | 
- task_struct
 
- 進(jìn)程調(diào)度算法
 
- 進(jìn)程調(diào)度時機(jī)
 
- 實(shí)時性
 
 
 | 
| Linux內(nèi)核內(nèi)存管理  | 
- mm_struct, vma
 
- buddy系統(tǒng)
 
- slab、kmalloc
 
- DMA、NORMAL、HIGHMEM ZONE
 
- 靜態(tài)內(nèi)存映射
 
- 連續(xù)內(nèi)存管理,CMA
 
 
 | 
| Linux內(nèi)核文件系統(tǒng) | 
- 虛擬文件系統(tǒng)
 
- inode、dentry、superblock
 
- 文件系統(tǒng)與block層
 
- Flash文件系統(tǒng)
 
 
 | 
| Linux 內(nèi)核系統(tǒng)調(diào)用 | 
- Linux系統(tǒng)調(diào)用實(shí)現(xiàn)原理
 
- Linux系統(tǒng)調(diào)用實(shí)現(xiàn)
 
- 增加一個新的系統(tǒng)調(diào)用
 
 
 | 
| 內(nèi)核編程主要API | 
- 同步與并發(fā)
 
- 等待隊列
 
- 內(nèi)核延時
 
- 內(nèi)存申請和釋放
 
- 定時器
 
- 中斷頂?shù)装氩?
                    
- 軟中斷
 
- tasklet
 
- 工作隊列
 
- threaded_irq
 
 
 
- Linux內(nèi)核線程
 
- IO與內(nèi)存訪問
 
- DMA與cache一致性
 
 
 | 
| Linux內(nèi)核模塊 | 
- 內(nèi)核模塊init和exit
 
- 輸入?yún)?shù)
 
- 輸出參數(shù)
 
- 案例部分:4個試驗案例演示模塊各個功能
 
 
 | 
| Linux內(nèi)核調(diào)試方法 | 
- printk
 
- Oops和panic
 
- 內(nèi)核debug選項
 
- gdb、kgdb和kdb
 
- 使用仿真器
 
 
 | 
| Linux設(shè)備驅(qū)動模型 | 
- Linux設(shè)備分類
 
- Sys,總線,設(shè)備和驅(qū)動
 
- 熱插拔
 
- 電源管理
 
- udev
 
 
 | 
| Linux字符設(shè)備驅(qū)動結(jié)構(gòu) | 
- Linux字符設(shè)備驅(qū)動結(jié)構(gòu)
 
- globalmem虛擬設(shè)備實(shí)例描述
 
- globalmem設(shè)備驅(qū)動
 
- globalmem驅(qū)動的編譯與加載
 
- globalmem驅(qū)動在用戶空間的驗證
 
 
 | 
| Linux設(shè)備驅(qū)動中的并發(fā)控制 | 
- 并發(fā)控制的概念
 
- 何時需要并發(fā)控制
 
- 自旋鎖
 
- 信號量,mutex
 
- 增加并發(fā)控制后的globalmem驅(qū)動
 
 
 | 
| Linux設(shè)備驅(qū)動中的阻塞與非阻塞I/O | 
- 阻塞與非阻塞I/O
 
- poll操作的概念
 
- 何時需要poll操作
 
- 等待隊列waitqueues
 
- Linux poll操作相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)
 
- 支持poll操作的globalmem驅(qū)動
 
 
 | 
| Linux 設(shè)備驅(qū)動中的異步通知 | 
- 異步通知的概念
 
- 何時需要異步通知
 
- Linux異步通知相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)
 
- 支持異步通知的globalmem驅(qū)動
                    
- 在globalmem驅(qū)動中增加異步通知
 
- 在用戶空間驗證globalmem的異步通知
 
 
 
 
 | 
| Linux MTD子系統(tǒng)與FLASH驅(qū)動 | 
- Linux MTD子系統(tǒng)結(jié)構(gòu)
 
- NOR FLASH驅(qū)動
 
- NAND FLASH驅(qū)動
 
- FLASH文件系統(tǒng):JFFS2/YAFFS2/UBI
 
 
 | 
| Linux 網(wǎng)絡(luò)設(shè)備驅(qū)動 | 
- Linux網(wǎng)絡(luò)協(xié)議棧
 
- sk_buff
 
- Linux網(wǎng)絡(luò)設(shè)備驅(qū)動結(jié)構(gòu)
 
- 數(shù)據(jù)發(fā)送流程
 
- 數(shù)據(jù)接收流程
 
 
 | 
| 設(shè)備驅(qū)動的分層 | 
- 設(shè)備驅(qū)動分層框架
 
- 實(shí)例1:input子系統(tǒng)
 
- 實(shí)例2:LCD子系統(tǒng)
 
 
 | 
| I2C驅(qū)動 | 
- I2C主機(jī)驅(qū)動
 
- I2C client驅(qū)動
 
- I2C驅(qū)動電源管理
 
- I2C板文件信息
 
 
 | 
| SPI驅(qū)動 | 
- SPI主機(jī)驅(qū)動
 
- SPI client驅(qū)動
 
- SPI驅(qū)動電源管理
 
- SPI板文件信息
 
 
 | 
| platform設(shè)備驅(qū)動 | 
- platform驅(qū)動
 
- platform設(shè)備
 
- platform設(shè)備板級信息
 
 
 | 
| 將Linux移植到一個新的ARM SoC | 
- early_printk
 
- L2 cache
 
- OS timer
 
- clk tree
 
- GPIO
 
- pinmux
 
- IRQ chip
 
- DMA
 
- MACH_INIT
 
- device tree
 
- 社區(qū)維護(hù)
 
 
 | 
| Linux調(diào)試與性能優(yōu)化 | 
- strace
 
- core dump
 
- gdb與多線程
 
- 常用工具(top/vmstat/iostat/sysctl等)
 
- 性能優(yōu)化: oprofile, LTTng, gprof
 
- 開機(jī)速度: bootchart
 
- 功耗:powertop
 
- 延遲:latencytop
 
- 內(nèi)存分析: procmem、procrank、smem
 
- top, iostat, netstat等?
 
 
 |