
曙海教學優(yōu)勢
該課程,秉承21年教學品質,以項目實現(xiàn)為導向,面向企事業(yè)單位項目實際需求,講師將會與您分享設計的全流程以及工具的綜合使用技巧與經(jīng)驗。課程可定制,線下/線上/上門皆可,全國免費報名熱線:4008699035。
曙海培訓的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。大批企業(yè)和曙海
建立了良好的合作關系,合作企業(yè)三十多萬家。曙海的課程得到業(yè)內企事業(yè)單位廣泛贊譽。
本課程詳解Linux內核編程的并發(fā)、同步、中斷、定時器、內存、DMA和cache等問題,結合實例講解Linux驅動各種設備驅動架構、I/O模型以及Linux的移植、設備樹代碼的編寫等。
本課程的布局安排是,每天上課約4小時,實驗約2小時。要求學員親自在電腦和電路板上進行實驗。
第一章 內核編程
熱身,熟悉pcduino板卡
1.板卡介紹和使用
2.Bootloader、kernel、文件系統(tǒng)構成
3.怎么更新板子里的東西
第1節(jié) 內核編程主要API深入剖析
1 同步與并發(fā)(atomic, spinlock,mutex,completion深入理解)
2 等待隊列
3 內核延時
4 內存申請和釋放
5 用作DMA的內存
6 內存屏障與寄存器訪問
第2節(jié) 定時器
1 內核定時器tick
2 tickless
3 高精度定時器hrtimer
第3節(jié) 中斷
1 中斷頂?shù)装氩?/font>
2 軟中斷
3 tasklet
4 工作隊列
5 threaded_irq
6 多核中斷affinity及軟中斷負載均衡
第4節(jié) Linux內核模塊
1 內核模塊init和exit
2 輸入?yún)?shù)
3 輸出參數(shù)
4 模塊的license與GPL
第5節(jié) Linux內核的調試
1 printk
2 Oops和panic
3 initcall_debug
4 電源管理suspend/resume debug
5 earlyprintk與low level debug
6 proc和sys
7 grabserial
8 soft和hard lockup
9 內核的源碼級調試
10 內核模塊的源碼級調試
11 ftrace
第二章 設備驅動
第1節(jié) Linux設備驅動模型
1 Linux設備分類
2 Sys,總線、設備、驅動和class
3 熱插拔
4 電源管理
5 udev
第2節(jié) 設備驅動并發(fā)控制與I/O模型
1 Linux字符設備驅動結構
2 Linux設備驅動中的并發(fā)控制
3 Linux設備驅動中的阻塞與非阻塞I/O
4 Linux多路復用I/O
5 Signal IO與AIO
6 用戶空間I/O與多線程設計原則
第3節(jié) Linux復雜設備驅動
1 設備驅動分層框架
2 設備驅動的面向對象設計
3 platform驅動
4 基于I2C/SPI/USB等總線的驅動
5 塊設備驅動與塊I/O調度
6 網(wǎng)絡設備驅動
案例分析
input子系統(tǒng)
LCD子系統(tǒng)
DM9000網(wǎng)卡
ADI網(wǎng)卡
vmem_disk
第三章 Linux移植和BSP構建
第1節(jié) 將Linux移植到一個新的SoC或電路板
1 OS timer
2 L2 cache
3 early_printk
4 clk tree
5 GPIO
6 pinmux
7 IRQ chip
8 DMA
9 MACH_INIT
10 社區(qū)維護
第2節(jié) 設備樹(Device Tree)
1用一個假設的簡單電路板從頭到尾構建一個dts文件
2 dts編譯為dtb,與dtb反編譯為dts
3 machine級的匹配
4 driver和device級的匹配
5 基地址、中斷、gpio、時鐘、reset、pinmux等常規(guī)屬性
6 dts節(jié)點自定義屬性
7 啟動過程中dtb的讀取與展開
8 i2c, spi子節(jié)點的展開
9 dts的分級與dtsi
10 dt binding文檔
?