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