| 進(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)建與啟動(dòng)過程分析 |
- 文件系統(tǒng)組成
- Busybox編譯與配置
- 加入C庫
- Linux啟動(dòng)過程
- Bootloader
- 內(nèi)核啟動(dòng)過程
- 用戶空間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)度時(shí)機(jī)
- 實(shí)時(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)
- 增加一個(gè)新的系統(tǒng)調(diào)用
|
| 內(nèi)核編程主要API |
- 同步與并發(fā)
- 等待隊(duì)列
- 內(nèi)核延時(shí)
- 內(nèi)存申請(qǐng)和釋放
- 定時(shí)器
- 中斷頂?shù)装氩?
- 軟中斷
- tasklet
- 工作隊(duì)列
- threaded_irq
- Linux內(nèi)核線程
- IO與內(nèi)存訪問
- DMA與cache一致性
|
| Linux內(nèi)核模塊 |
- 內(nèi)核模塊init和exit
- 輸入?yún)?shù)
- 輸出參數(shù)
- 案例部分:4個(gè)試驗(yàn)案例演示模塊各個(gè)功能
|
| Linux內(nèi)核調(diào)試方法 |
- printk
- Oops和panic
- 內(nèi)核debug選項(xiàng)
- gdb、kgdb和kdb
- 使用仿真器
|
| Linux設(shè)備驅(qū)動(dòng)模型 |
- Linux設(shè)備分類
- Sys,總線,設(shè)備和驅(qū)動(dòng)
- 熱插拔
- 電源管理
- udev
|
| Linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu) |
- Linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
- globalmem虛擬設(shè)備實(shí)例描述
- globalmem設(shè)備驅(qū)動(dòng)
- globalmem驅(qū)動(dòng)的編譯與加載
- globalmem驅(qū)動(dòng)在用戶空間的驗(yàn)證
|
| Linux設(shè)備驅(qū)動(dòng)中的并發(fā)控制 |
- 并發(fā)控制的概念
- 何時(shí)需要并發(fā)控制
- 自旋鎖
- 信號(hào)量,mutex
- 增加并發(fā)控制后的globalmem驅(qū)動(dòng)
|
| Linux設(shè)備驅(qū)動(dòng)中的阻塞與非阻塞I/O |
- 阻塞與非阻塞I/O
- poll操作的概念
- 何時(shí)需要poll操作
- 等待隊(duì)列waitqueues
- Linux poll操作相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)
- 支持poll操作的globalmem驅(qū)動(dòng)
|
| Linux 設(shè)備驅(qū)動(dòng)中的異步通知 |
- 異步通知的概念
- 何時(shí)需要異步通知
- Linux異步通知相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)
- 支持異步通知的globalmem驅(qū)動(dòng)
- 在globalmem驅(qū)動(dòng)中增加異步通知
- 在用戶空間驗(yàn)證globalmem的異步通知
|
| Linux MTD子系統(tǒng)與FLASH驅(qū)動(dòng) |
- Linux MTD子系統(tǒng)結(jié)構(gòu)
- NOR FLASH驅(qū)動(dòng)
- NAND FLASH驅(qū)動(dòng)
- FLASH文件系統(tǒng):JFFS2/YAFFS2/UBI
|
| Linux 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng) |
- Linux網(wǎng)絡(luò)協(xié)議棧
- sk_buff
- Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
- 數(shù)據(jù)發(fā)送流程
- 數(shù)據(jù)接收流程
|
| 設(shè)備驅(qū)動(dòng)的分層 |
- 設(shè)備驅(qū)動(dòng)分層框架
- 實(shí)例1:input子系統(tǒng)
- 實(shí)例2:LCD子系統(tǒng)
|
| I2C驅(qū)動(dòng) |
- I2C主機(jī)驅(qū)動(dòng)
- I2C client驅(qū)動(dòng)
- I2C驅(qū)動(dòng)電源管理
- I2C板文件信息
|
| SPI驅(qū)動(dòng) |
- SPI主機(jī)驅(qū)動(dòng)
- SPI client驅(qū)動(dòng)
- SPI驅(qū)動(dòng)電源管理
- SPI板文件信息
|
| platform設(shè)備驅(qū)動(dòng) |
- platform驅(qū)動(dòng)
- platform設(shè)備
- platform設(shè)備板級(jí)信息
|
| 將Linux移植到一個(gè)新的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等?
|