曙海教學優勢
本課程面向企事業項目實際需要,秉承二十一年積累的教學品質,嵌入式Linux內核驅動開發技術培訓課程以項目實現為導向,老師將會與您分享設計的全流程以及工具的綜合使用技巧、經驗。線上/線下/上門皆可,嵌入式Linux內核驅動開發技術培訓課程專家,課程可定制,熱線:4008699035。
大批企業和曙海
建立了良好的合作關系,合作企業30萬+。曙海的課程培養了大批受企業歡迎的工程師。曙海的課程在業內有著響亮的知名度。
Linux內核驅動開發技術培訓課程
培訓大綱:
第1章 簡介
1.1Linux的特點、版本演進與發展方向
1.2嵌入式Linux系統組成
1.3開發環境構建
1.4 GNU工具鏈和GDB調試
第2章 嵌入式Linux構建與啟動過程分析
2.1 文件系統組成??????????????
2.2 Busybox編譯與配置
2.3 加入C庫
2.4 Linux啟動過程
2.5 嵌入式Linux裁剪
第3章 Linux內核進程調度
3.1 task_struct?????????????????
3.2 進程調度算法
3.3 進程調度時機?????????????
3.4 實時性
第4章 Linux內核內存管理
4.1 mm_struct, vma??????????
4.2 buddy系統
4.3 slab、kmalloc???????????
4.4 DMA、NORMAL、HIGHMEM ZONE
4.5 靜態內存映射????????????
4.6 連續內存管理,CMA
第5章 Linux內核文件系統
5.1 虛擬文件系統????????????
5.2 inode、dentry、superblock
5.3 文件系統與block層??????
5.4 Flash文件系統
第6章 Linux 內核系統調用
6.1 Linux系統調用實現原理
6.2 增加一個新的系統調用
第7章 內核編程主要API
7.1 同步與并發??????????????
7.2 等待隊列
7.3 內核延時????????????????
7.4 內存申請和釋放
7.5定時器
7.6 中斷頂底半部
7.7 Linux內核線程??????????
7.8 IO與內存訪問
7.9 DMA與cache一致性
第8章 Linux內核模塊
8.1 內核模塊init和exit????
8.2 輸入參數
8.3 輸出參數
第9章 Linux內核調試方法
9.1 printk?????????????????????
9.2 Oops和panic
9.3 內核debug選項???????????
9.4 gdb、kgdb和kdb
9.5 使用仿真器
第10章 Linux設備驅動模型
10.1 Linux設備分類???????????
10.2 Sys,總線,設備和驅動
10.3 熱插拔??????????????????
10.4 電源管理
10.5 udev
第11章 Linux字符設備驅動結構
11.1 Linux字符設備驅動結構???
11.2 globalmem虛擬設備實例描述
11.3 globalmem設備驅動???????
11.4 globalmem驅動的編譯與加載
11.5 globalmem驅動在用戶空間的驗證
第12章 Linux設備驅動中的并發控制
12.1并發控制的概念???????????
12.2何時需要并發控制
12.3自旋鎖???????????????????
12.4信號量,mutex
12.5增加并發控制后的globalmem驅動
第13章 Linux設備驅動中的阻塞與非阻塞I/O
13.1阻塞與非阻塞I/O??????????
13.2 poll操作的概念
13.3何時需要poll操作?????????
13.4等待隊列waitqueues
13.5 Linux poll操作相關數據結構與函數
13.6支持poll操作的globalmem驅動
第14章 Linux 設備驅動中的異步通知
14.1異步通知的概念
14.2何時需要異步通知
14.3 Linux異步通知相關數據結構與函數
14.4支持異步通知的globalmem驅動
14.4.1在globalmem驅動中增加異步通知
14.4.2在用戶空間驗證globalmem的異步通知
第15章 Linux MTD子系統與FLASH驅動
15.1 Linux MTD子系統結構??????
15.2 NOR FLASH驅動
15.3 NAND FLASH驅動?
15.4 FLASH文件系統:JFFS2/YAFFS2/UBI
第16章 Linux 網絡設備驅動
16.1 Linux網絡協議棧???????????
16.2 sk_buff
16.3 Linux網絡設備驅動結構?????
16.4數據發送流程
16.5數據接收流程
第17章 設備驅動的分層
17.1 設備驅動分層框架????????
17.2 實例1:input子系統
17.3 實例2:LCD子系統
第18章 I2C驅動
18.1 I2C主機驅動?????????????
18.2 I2C client驅動
18.3 I2C驅動電源管理?????????
18.4 I2C板文件信息
第19章 SPI驅動
19.1 SPI主機驅動?????????????
19.2 SPI client驅動
19.3 SPI驅動電源管理?????????
19.4 SPI板文件信息
第20章 platform設備驅動
20.1 platform驅動?????????????
20.2 platform設備
20.3 platform設備板級信息
第21章 將Linux移植到一個新的SoC
21.1 early_printk??????
21.2 L2 cache??????
21.3 OS timer
21.4 clk tree?????????
21.5 GPIO??????????
21.6 pinmux
21.7 IRQ chip?????????
21.8 DMA???????????
21.9 MACH_INIT
21.10 device tree?????
21.11 社區維護
第22章? Linux調試與性能優化
22.1 strace?????????
22.2 core dump??????????
22.3 gdb與多線程????????
22.4常用工具(top/vmstat/iostat/sysctl等)
22.5 性能優化: oprofile, LTTng, gprof????????
22.6 開機速度: bootchart???????????????????
22.7 功耗:powertop
22.8 延遲:latencytop
22.9 內存分析: procmem、procrank、