原子嵌入式Linux驅(qū)動(dòng)開發(fā)詳解與實(shí)戰(zhàn)(ARM Linux驅(qū)動(dòng))
鏈接:https://pan.baidu.com/s/1CkOsE3ju_pxt0A0groMJyw?pwd=t1j5?
提取碼:t1j5

【產(chǎn)品特色】
【編輯推薦】
全面解析基于ARM內(nèi)核的嵌入式Linux驅(qū)動(dòng)開發(fā),通過豐富的實(shí)戰(zhàn)案例讓單片機(jī)開發(fā)者熟練掌握嵌入式Linux驅(qū)動(dòng)開發(fā)。
【內(nèi)容簡(jiǎn)介】
隨著半導(dǎo)體技術(shù)和芯片技術(shù)的飛速發(fā)展,能運(yùn)行嵌入式 Linux系統(tǒng)的 MPU 芯片價(jià)格也在不斷降低,ARM 架構(gòu) 的芯片在手機(jī)、工業(yè)控制、物聯(lián)網(wǎng)、自動(dòng)駕駛等領(lǐng)域得到了廣泛應(yīng)用。以前大量使用 MCU 的地方也開始使用嵌入式 Linux地系鐵統(tǒng)刷??ǖ拈l機(jī)、汽車充電樁的操作面板、物聯(lián)網(wǎng)網(wǎng)關(guān)等都有嵌入式 Linux的身影,各企業(yè)對(duì)嵌入式 Linux開發(fā) 人才的需求也急劇增加。相比單片機(jī)開發(fā),嵌入式 Linux開發(fā)難度要大很多。尤其是重要的驅(qū)動(dòng)開發(fā),嵌入式 Linux內(nèi)核采用面向?qū)ο笏悸吩O(shè)計(jì),且已開發(fā)大量驅(qū)動(dòng)框架,開發(fā)人員需要掌握這些驅(qū)動(dòng)框架的使用,編寫出符合嵌 入式 Linux要求的驅(qū)動(dòng)。 本書從基本的點(diǎn)燈程序到網(wǎng)絡(luò)驅(qū)動(dòng)的編寫,涵蓋了 Linux開發(fā)的三大驅(qū)動(dòng)類型:字符設(shè)備驅(qū)動(dòng)、塊設(shè)備驅(qū)動(dòng) 和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。本書的一大色就是涵蓋了全設(shè)備樹開發(fā),除了開始的幾個(gè)為了講解嵌入式 Linux如何操作 芯片寄存器的例程沒有采用設(shè)備樹外,其他的例程都采用設(shè)備樹,基本涵蓋了嵌入式 Linux驅(qū) 動(dòng) 開 發(fā) 中 的 常 用 外設(shè)。本書可作為廣大從事嵌入式開發(fā)、物聯(lián)網(wǎng)、工業(yè)控制開發(fā)等工程技術(shù)人員的學(xué)習(xí)和參考用書,也可作為高等學(xué) 校計(jì)算機(jī)、電子、自動(dòng)化等專業(yè)嵌入式系統(tǒng)、微機(jī)接口、物聯(lián)網(wǎng)等課程的教材。
【目錄】
第四篇ARM Linux驅(qū)動(dòng)開發(fā)篇
第1章字符設(shè)備驅(qū)動(dòng)開發(fā)
1.1字符設(shè)備驅(qū)動(dòng)簡(jiǎn)介
1.2字符設(shè)備驅(qū)動(dòng)開發(fā)步驟
1.2.1驅(qū)動(dòng)模塊的加載和卸載
1.2.2字符設(shè)備注冊(cè)與注銷
1.2.3實(shí)現(xiàn)設(shè)備的具體操作函數(shù)
1.2.4添加LICENSE和作者信息
1.3Linux設(shè)備號(hào)
1.3.1設(shè)備號(hào)的組成
1.3.2設(shè)備號(hào)的分配
1.4chrdevbase字符設(shè)備驅(qū)動(dòng)開發(fā)實(shí)驗(yàn)
1.4.1實(shí)驗(yàn)程序編寫
1.4.2編寫測(cè)試App
1.4.3編譯驅(qū)動(dòng)程序和測(cè)試App
1.4.4運(yùn)行測(cè)試
第2章嵌入式Linux LED燈驅(qū)動(dòng)開發(fā)實(shí)驗(yàn)
2.1Linux下LED燈驅(qū)動(dòng)原理
2.1.1地址映射
2.1.2I/O內(nèi)存訪問函數(shù)
2.2硬件原理圖分析
2.3實(shí)驗(yàn)程序編寫
2.3.1LED燈驅(qū)動(dòng)程序編寫
2.3.2編寫測(cè)試App
2.4運(yùn)行測(cè)試
2.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
2.4.2運(yùn)行測(cè)試
第3章新字符設(shè)備驅(qū)動(dòng)實(shí)驗(yàn)
3.1新字符設(shè)備驅(qū)動(dòng)原理
3.1.1分配和釋放設(shè)備號(hào)
3.1.2新的字符設(shè)備注冊(cè)方法
3.2自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)
3.2.1mdev機(jī)制
3.2.2創(chuàng)建和刪除類
3.2.3創(chuàng)建設(shè)備
3.2.4參考示例
3.3設(shè)置文件私有數(shù)據(jù)
3.4硬件原理圖分析
3.5實(shí)驗(yàn)程序編寫
3.5.1LED燈驅(qū)動(dòng)程序編寫
3.5.2編寫測(cè)試App
3.6運(yùn)行測(cè)試
3.6.1編譯驅(qū)動(dòng)程序和測(cè)試App
3.6.2運(yùn)行測(cè)試
?
?
第4章Linux設(shè)備樹
4.1什么是設(shè)備樹
4.2DTS、DTB和DTC
4.3DTS語法
4.3.1.dtsi頭文件
4.3.2設(shè)備節(jié)點(diǎn)
4.3.3標(biāo)準(zhǔn)屬性
4.3.4根節(jié)點(diǎn)compatible屬性
4.3.5向節(jié)點(diǎn)追加或修改內(nèi)容
4.4創(chuàng)建小型模板設(shè)備樹
4.5設(shè)備樹在系統(tǒng)中的體現(xiàn)
4.6殊節(jié)點(diǎn)
4.6.1aliases子節(jié)點(diǎn)
4.6.2chosen子節(jié)點(diǎn)
4.7Linux內(nèi)核解析DTB文件
4.8綁定信息文檔
4.9設(shè)備樹常用OF操作函數(shù)
4.9.1查找節(jié)點(diǎn)的OF函數(shù)
4.9.2查找父/子節(jié)點(diǎn)的OF函數(shù)
4.9.3提取屬性值的OF函數(shù)
4.9.4其他常用的OF函數(shù)
第5章設(shè)備樹下的LED燈驅(qū)動(dòng)實(shí)驗(yàn)
5.1設(shè)備樹LED驅(qū)動(dòng)原理
5.2硬件原理圖分析
5.3實(shí)驗(yàn)程序編寫
5.3.1修改設(shè)備樹文件
5.3.2LED燈驅(qū)動(dòng)程序編寫
5.3.3編寫測(cè)試App
5.4運(yùn)行測(cè)試
5.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
5.4.2運(yùn)行測(cè)試
第6章pinctrl和gpio子系統(tǒng)實(shí)驗(yàn)
6.1pinctrl子系統(tǒng)
6.1.1pinctrl子系統(tǒng)簡(jiǎn)介
6.1.2I.MX6ULL的pinctrl子系統(tǒng)驅(qū)動(dòng)
6.1.3設(shè)備樹中添加pinctrl節(jié)點(diǎn)模板
6.2gpio子系統(tǒng)
6.2.1gpio子系統(tǒng)簡(jiǎn)介
6.2.2I.MX6ULL的gpio子系統(tǒng)驅(qū)動(dòng)
6.2.3gpio子系統(tǒng)API函數(shù)
6.2.4設(shè)備樹中添加gpio節(jié)點(diǎn)模板
6.2.5與GPIO相關(guān)的OF函數(shù)
6.3硬件原理圖分析
6.4實(shí)驗(yàn)程序編寫
6.4.1修改設(shè)備樹文件
6.4.2LED燈驅(qū)動(dòng)程序編寫
6.4.3編寫測(cè)試App
6.5運(yùn)行測(cè)試
6.5.1編譯驅(qū)動(dòng)程序和測(cè)試App
6.5.2運(yùn)行測(cè)試
第7章Linux蜂鳴器實(shí)驗(yàn)
7.1蜂鳴器驅(qū)動(dòng)原理
7.2硬件原理圖分析
7.3實(shí)驗(yàn)程序編寫
7.3.1修改設(shè)備樹文件
7.3.2蜂鳴器驅(qū)動(dòng)程序編寫
7.3.3編寫測(cè)試App
7.4運(yùn)行測(cè)試
7.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
7.4.2運(yùn)行測(cè)試
第8章Linux并發(fā)與競(jìng)爭(zhēng)
8.1并發(fā)與競(jìng)爭(zhēng)
8.2原子操作
8.2.1原子操作簡(jiǎn)介
8.2.2原子整型數(shù)據(jù)操作API函數(shù)
8.2.3原子位操作API函數(shù)
8.3自旋鎖
8.3.1自旋鎖簡(jiǎn)介
8.3.2自旋鎖API函數(shù)
8.3.3其他類型的鎖
8.3.4自旋鎖使用注意事項(xiàng)
8.4信號(hào)量
8.4.1信號(hào)量簡(jiǎn)介
8.4.2信號(hào)量API函數(shù)
8.5互斥體
8.5.1互斥體簡(jiǎn)介
8.5.2互斥體API函數(shù)
第9章Linux并發(fā)與競(jìng)爭(zhēng)實(shí)驗(yàn)
9.1原子操作實(shí)驗(yàn)
9.1.1實(shí)驗(yàn)程序編寫
9.1.2運(yùn)行測(cè)試
9.2自旋鎖實(shí)驗(yàn)
9.2.1實(shí)驗(yàn)程序編寫
9.2.2運(yùn)行測(cè)試
9.3信號(hào)量實(shí)驗(yàn)
9.3.1實(shí)驗(yàn)程序編寫
9.3.2運(yùn)行測(cè)試
9.4互斥體實(shí)驗(yàn)
9.4.1實(shí)驗(yàn)程序編寫
9.4.2運(yùn)行測(cè)試
第10章Linux按鍵輸入實(shí)驗(yàn)
10.1Linux下按鍵驅(qū)動(dòng)原理
10.2硬件原理圖分析
10.3實(shí)驗(yàn)程序編寫
10.3.1修改設(shè)備樹文件
10.3.2按鍵驅(qū)動(dòng)程序編寫
10.3.3編寫測(cè)試App
10.4運(yùn)行測(cè)試
10.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
10.4.2運(yùn)行測(cè)試
第11章Linux內(nèi)核定時(shí)器實(shí)驗(yàn)
11.1Linux時(shí)間管理和內(nèi)核定時(shí)器簡(jiǎn)介
11.1.1內(nèi)核時(shí)間管理簡(jiǎn)介
11.1.2內(nèi)核定時(shí)器簡(jiǎn)介
11.1.3Linux內(nèi)核短延時(shí)函數(shù)
11.2硬件原理圖分析
11.3實(shí)驗(yàn)程序編寫
11.3.1修改設(shè)備樹文件
11.3.2定時(shí)器驅(qū)動(dòng)程序編寫
11.3.3編寫測(cè)試App
11.4運(yùn)行測(cè)試
11.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
11.4.2運(yùn)行測(cè)試
第12章Linux中斷實(shí)驗(yàn)
12.1Linux中斷簡(jiǎn)介
12.1.1Linux中斷API函數(shù)
12.1.2上半部與下半部
12.1.3設(shè)備樹中斷信息節(jié)點(diǎn)
12.1.4獲取中斷號(hào)?
12.2硬件原理圖分析
12.3實(shí)驗(yàn)程序編寫
12.3.1修改設(shè)備樹文件
12.3.2按鍵中斷驅(qū)動(dòng)程序編寫
12.3.3編寫測(cè)試App
12.4運(yùn)行測(cè)試
12.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
12.4.2運(yùn)行測(cè)試
第13章Linux阻塞和非阻塞I/O實(shí)驗(yàn)
13.1阻塞和非阻塞I/O
13.1.1阻塞和非阻塞簡(jiǎn)介
13.1.2等待隊(duì)列
13.1.3輪詢
13.1.4Linux驅(qū)動(dòng)下的poll操作函數(shù)
13.2阻塞I/O實(shí)驗(yàn)
13.2.1硬件原理圖分析
13.2.2實(shí)驗(yàn)程序編寫
13.2.3運(yùn)行測(cè)試
13.3非阻塞I/O實(shí)驗(yàn)
13.3.1硬件原理圖分析
13.3.2實(shí)驗(yàn)程序編寫
13.3.3運(yùn)行測(cè)試
第14章異步通知實(shí)驗(yàn)
14.1異步通知
14.1.1異步通知簡(jiǎn)介
14.1.2驅(qū)動(dòng)中的信號(hào)處理
14.1.3應(yīng)用程序?qū)Ξ惒酵ㄖ奶幚?/p>
14.2硬件原理圖分析
14.3實(shí)驗(yàn)程序編寫
14.3.1修改設(shè)備樹文件
14.3.2程序編寫
14.3.3編寫測(cè)試App
14.4運(yùn)行測(cè)試
14.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
14.4.2運(yùn)行測(cè)試
第15章tform設(shè)備驅(qū)動(dòng)實(shí)驗(yàn)
15.1Linux驅(qū)動(dòng)的分離與分層
15.1.1驅(qū)動(dòng)的分隔與分離
15.1.2驅(qū)動(dòng)的分層
15.2tform平臺(tái)驅(qū)動(dòng)模型簡(jiǎn)介
15.2.1tform總線
15.2.2tform驅(qū)動(dòng)
15.2.3tform設(shè)備
15.3硬件原理圖分析
15.4實(shí)驗(yàn)程序編寫
15.4.1tform設(shè)備與驅(qū)動(dòng)程序編寫
15.4.2編寫測(cè)試App
15.5運(yùn)行測(cè)試
15.5.1編譯驅(qū)動(dòng)程序和測(cè)試App
15.5.2運(yùn)行測(cè)試
第16章設(shè)備樹下的tform驅(qū)動(dòng)編寫
16.1設(shè)備樹下的tform驅(qū)動(dòng)簡(jiǎn)介
16.2硬件原理圖分析
16.3實(shí)驗(yàn)程序編寫
16.3.1修改設(shè)備樹文件
16.3.2tform驅(qū)動(dòng)程序編寫
16.3.3編寫測(cè)試App
16.4運(yùn)行測(cè)試
16.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
16.4.2運(yùn)行測(cè)試
第17章Linux自帶的LED燈驅(qū)動(dòng)實(shí)驗(yàn)
17.1Linux內(nèi)核自帶LED燈驅(qū)動(dòng)使能
17.2Linux內(nèi)核自帶LED燈驅(qū)動(dòng)簡(jiǎn)介
17.2.1LED燈驅(qū)動(dòng)框架分析
17.2.2module_tform_driver()函數(shù)簡(jiǎn)介
17.2.3gpio_led_probe()函數(shù)簡(jiǎn)介
17.3設(shè)備樹節(jié)點(diǎn)編寫
17.4運(yùn)行測(cè)試
第18章Linux MISC驅(qū)動(dòng)實(shí)驗(yàn)
18.1MISC設(shè)備驅(qū)動(dòng)簡(jiǎn)介
18.2硬件原理圖分析
18.3實(shí)驗(yàn)程序編寫
18.3.1修改設(shè)備樹
18.3.2beep驅(qū)動(dòng)程序編寫
18.3.3編寫測(cè)試App
18.4運(yùn)行測(cè)試
18.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
18.4.2運(yùn)行測(cè)試
第19章Linux input子系統(tǒng)實(shí)驗(yàn)
19.1input子系統(tǒng)
19.1.1input子系統(tǒng)簡(jiǎn)介
19.1.2input驅(qū)動(dòng)編寫流程
19.1.3input_event結(jié)構(gòu)體
19.2硬件原理圖分析
19.3實(shí)驗(yàn)程序編寫
19.3.1修改設(shè)備樹文件
19.3.2按鍵input驅(qū)動(dòng)程序編寫
19.3.3編寫測(cè)試App
19.4運(yùn)行測(cè)試
19.4.1編譯驅(qū)動(dòng)程序和測(cè)試App
19.4.2運(yùn)行測(cè)試
19.5Linux自帶按鍵驅(qū)動(dòng)程序的使用
19.5.1自帶按鍵驅(qū)動(dòng)程序源碼簡(jiǎn)介
19.5.2自帶按鍵驅(qū)動(dòng)程序的使用
第20章Linux PWM驅(qū)動(dòng)實(shí)驗(yàn)
20.1PWM驅(qū)動(dòng)簡(jiǎn)介
20.1.1設(shè)備樹下的PWM控制器節(jié)點(diǎn)
20.1.2PWM子系統(tǒng)
20.1.3PWM驅(qū)動(dòng)源碼分析
20.2PWM驅(qū)動(dòng)編寫
20.2.1修改設(shè)備樹
20.2.2使能PWM驅(qū)動(dòng)
20.3PWM驅(qū)動(dòng)測(cè)試
第21章Linux LCD驅(qū)動(dòng)實(shí)驗(yàn)
21.1Linux下LCD驅(qū)動(dòng)簡(jiǎn)介
21.1.1Framebuffer設(shè)備
21.1.2LCD驅(qū)動(dòng)簡(jiǎn)介
21.2硬件原理圖分析
21.3LCD驅(qū)動(dòng)程序編寫
21.3.1修改設(shè)備樹
21.3.2LCD屏幕背光節(jié)點(diǎn)信息
21.4運(yùn)行測(cè)試
21.4.1LCD屏幕基本測(cè)試
21.4.2設(shè)置LCD作為終端控制臺(tái)
21.4.3LCD背光調(diào)節(jié)
21.4.4LCD自動(dòng)關(guān)閉解決方法
第22章Linux RTC驅(qū)動(dòng)實(shí)驗(yàn)
22.1Linux內(nèi)核RTC驅(qū)動(dòng)簡(jiǎn)介
22.2I.MX6U內(nèi)部RTC驅(qū)動(dòng)分析
22.3RTC時(shí)間查看與設(shè)置
第23章Linux I2C驅(qū)動(dòng)實(shí)驗(yàn)
23.1Linux I2C驅(qū)動(dòng)框架簡(jiǎn)介
23.1.1I2C總線驅(qū)動(dòng)
23.1.2I2C設(shè)備驅(qū)動(dòng)
23.1.3I2C設(shè)備和驅(qū)動(dòng)匹配過程
23.2I.MX6U的I2C適配器驅(qū)動(dòng)分析
23.3I2C設(shè)備驅(qū)動(dòng)編寫流程
23.3.1I2C設(shè)備信息描述
23.3.2I2C設(shè)備數(shù)據(jù)收發(fā)處理流程
23.4硬件原理圖分析
23.5實(shí)驗(yàn)程序編寫
23.5.1修改設(shè)備樹
23.5.2AP3216C驅(qū)動(dòng)編寫
23.5.3編寫測(cè)試App
23.6運(yùn)行測(cè)試
23.6.1編譯驅(qū)動(dòng)程序和測(cè)試App
23.6.2運(yùn)行測(cè)試
第24章Linux SPI驅(qū)動(dòng)實(shí)驗(yàn)
24.1Linux下SPI驅(qū)動(dòng)框架簡(jiǎn)介
24.1.1SPI主機(jī)驅(qū)動(dòng)
24.1.2SPI設(shè)備驅(qū)動(dòng)
24.1.3SPI設(shè)備和驅(qū)動(dòng)匹配過程
24.2I.MX6U SPI主機(jī)驅(qū)動(dòng)分析
24.3SPI設(shè)備驅(qū)動(dòng)編寫流程
24.3.1SPI設(shè)備信息描述
24.3.2SPI設(shè)備數(shù)據(jù)收發(fā)處理流程
24.4硬件原理圖分析
24.5實(shí)驗(yàn)程序編寫
24.5.1修改設(shè)備樹
24.5.2編寫ICM20608驅(qū)動(dòng)
24.5.3編寫測(cè)試App
24.6運(yùn)行測(cè)試
24.6.1編譯驅(qū)動(dòng)程序和測(cè)試App
24.6.2運(yùn)行測(cè)試
第25章Linux RS232/485/GPS驅(qū)動(dòng)實(shí)驗(yàn)
25.1Linux下UART驅(qū)動(dòng)框架
25.2I.MX6U UART驅(qū)動(dòng)分析
25.3硬件原理圖分析
25.4RS232驅(qū)動(dòng)編寫
25.5移植minicom
25.6RS232驅(qū)動(dòng)測(cè)試
25.6.1RS232連接設(shè)置
25.6.2minicom設(shè)置
25.6.3RS232收發(fā)測(cè)試
25.7RS485測(cè)試
25.7.1RS485連接設(shè)置
25.7.2RS485收發(fā)測(cè)試
25.8GPS測(cè)試
25.8.1GPS連接設(shè)置
25.8.2GPS數(shù)據(jù)接收測(cè)試
第26章Linux 多點(diǎn)電容觸摸屏實(shí)驗(yàn)
26.1Linux下電容觸摸屏驅(qū)動(dòng)框架簡(jiǎn)介
26.1.1多點(diǎn)觸摸協(xié)議詳解
26.1.2Type A觸摸點(diǎn)信息上報(bào)時(shí)序
26.1.3Type B觸摸點(diǎn)信息上報(bào)時(shí)序
26.1.4MT其他事件的使用
26.1.5多點(diǎn)觸摸使用的API函數(shù)
26.1.6多點(diǎn)電容觸摸屏驅(qū)動(dòng)框架
26.2硬件原理圖分析
26.3實(shí)驗(yàn)程序編寫
26.3.1修改設(shè)備樹
26.3.2編寫多點(diǎn)電容觸摸屏驅(qū)動(dòng)
26.4運(yùn)行測(cè)試
26.4.1編譯驅(qū)動(dòng)程序
26.4.2運(yùn)行測(cè)試
26.4.3將驅(qū)動(dòng)添加到內(nèi)核中
26.5tslib移植與使用
26.5.1tslib移植
26.5.2tslib測(cè)試
26.6使用內(nèi)核自帶的驅(qū)動(dòng)
第27章RGB轉(zhuǎn)HDMI實(shí)驗(yàn)
27.1RGB轉(zhuǎn)HMDI簡(jiǎn)介
27.2硬件原理圖分析
27.3實(shí)驗(yàn)驅(qū)動(dòng)編寫
27.3.1修改設(shè)備樹
27.3.2使能內(nèi)核自帶的sii902x驅(qū)動(dòng)
27.3.3修改sii902x驅(qū)動(dòng)
27.4RGB轉(zhuǎn)HDMI測(cè)試
第28章Linux音頻驅(qū)動(dòng)實(shí)驗(yàn)
28.1音頻接口簡(jiǎn)介
28.1.1為何需要音頻編解碼芯片
28.1.2WM8960簡(jiǎn)介
28.1.3I2S總線接口
28.1.4I.MX6ULL SAI簡(jiǎn)介
28.2硬件原理圖分析
28.3音頻驅(qū)動(dòng)使能
28.3.1修改設(shè)備樹
28.3.2使能內(nèi)核的WM8960驅(qū)動(dòng)
28.4alsalib和alsautils移植
28.4.1alsalib移植
28.4.2alsautils移植
28.5聲卡設(shè)置與測(cè)試
28.5.1amixer的使用方法
28.5.2音樂播放測(cè)試
28.5.3MIC錄音測(cè)試
28.5.4Line_in錄音測(cè)試
28.6開機(jī)自動(dòng)配置聲卡
28.7alsamixer簡(jiǎn)介
第29章Linux CAN驅(qū)動(dòng)實(shí)驗(yàn)
29.1CAN協(xié)議簡(jiǎn)介
29.1.1何為CAN
29.1.2CAN電氣屬性
29.1.3CAN協(xié)議
29.1.4CAN速率
29.1.5I.MX6ULL FlexCAN簡(jiǎn)介
29.2硬件原理圖分析
29.3實(shí)驗(yàn)程序編寫
29.3.1修改設(shè)備樹
29.3.2使能Linux內(nèi)核自帶的FlexCAN驅(qū)動(dòng)
29.4FlexCAN測(cè)試
29.4.1檢查CAN網(wǎng)卡設(shè)備是否存在
29.4.2移植iproute2
29.4.3移植canutils工具
29.4.4CAN通信測(cè)試
第30章Linux USB驅(qū)動(dòng)實(shí)驗(yàn)
30.1USB接口簡(jiǎn)介
30.1.1什么是USB
30.1.2USB電氣性
30.1.3USB拓?fù)浣Y(jié)構(gòu)
30.1.4什么是USB OTG
30.1.5I.MX6ULL USB接口簡(jiǎn)介
30.2硬件原理圖分析
30.2.1USB HUB原理圖分析
30.2.2USB OTG原理圖分析
30.3USB協(xié)議簡(jiǎn)介
30.3.1USB描述符?
30.3.3USB數(shù)據(jù)包類型
30.3.4USB傳輸類型
30.3.5USB枚舉
30.4Linux內(nèi)核自帶HOST實(shí)驗(yàn)
30.4.1USB鼠標(biāo)鍵盤測(cè)試
30.4.2U盤實(shí)驗(yàn)
30.5Linux內(nèi)核自帶USB OTG實(shí)驗(yàn)
30.5.1修改設(shè)備樹
30.5.2OTG主機(jī)實(shí)驗(yàn)
30.5.3OTG從機(jī)實(shí)驗(yàn)?
第31章regmap API實(shí)驗(yàn)
31.1regmap API簡(jiǎn)介
31.1.1什么是regmap
31.1.2regmap驅(qū)動(dòng)框架
31.1.3regmap操作函數(shù)
31.1.4regmap_config掩碼設(shè)置
31.2實(shí)驗(yàn)程序編寫
31.3運(yùn)行測(cè)試
第32章Linux IIO驅(qū)動(dòng)實(shí)驗(yàn)
32.1IIO子系統(tǒng)簡(jiǎn)介
32.1.1iio_dev
32.1.2iio_info
32.1.3iio_chan_spec
32.2IIO驅(qū)動(dòng)框架創(chuàng)建
32.2.1基礎(chǔ)驅(qū)動(dòng)框架建立
32.2.2IIO設(shè)備申請(qǐng)與初始化
32.3實(shí)驗(yàn)程序編寫
32.3.1使能內(nèi)核IIO相關(guān)配置
32.3.2ICM20608的IIO驅(qū)動(dòng)框架搭建
32.3.3完善icm20608_read_raw()函數(shù)
32.3.4完善icm20608_write_raw()函數(shù)
32.4測(cè)試應(yīng)用程序編寫
32.4.1Linux文件流讀取
32.4.2編寫測(cè)試App
32.4.3運(yùn)行測(cè)試
第33章Linux ADC驅(qū)動(dòng)實(shí)驗(yàn)
33.1ADC簡(jiǎn)介
33.2ADC驅(qū)動(dòng)源碼簡(jiǎn)介
33.2.1設(shè)備樹下的ADC節(jié)點(diǎn)
33.2.2ADC驅(qū)動(dòng)源碼分析
33.3硬件原理圖分析
33.4ADC驅(qū)動(dòng)編寫
33.4.1修改設(shè)備樹
33.4.2使能ADC驅(qū)動(dòng)
33.4.3編寫測(cè)試App
33.5運(yùn)行測(cè)試
33.5.1編譯驅(qū)動(dòng)程序和測(cè)試App
33.5.2運(yùn)行測(cè)試
第34章Linux 塊設(shè)備驅(qū)動(dòng)實(shí)驗(yàn)
34.1什么是塊設(shè)備
34.2塊設(shè)備驅(qū)動(dòng)框架
34.2.1block_device結(jié)構(gòu)體
34.2.2gendisk結(jié)構(gòu)體
34.2.3block_device_operations結(jié)構(gòu)體
34.2.4塊設(shè)備I/O請(qǐng)求過程
34.3使用請(qǐng)求隊(duì)列實(shí)驗(yàn)
34.3.1實(shí)驗(yàn)程序編寫
34.3.2運(yùn)行測(cè)試
34.4不使用請(qǐng)求隊(duì)列實(shí)驗(yàn)
34.4.1實(shí)驗(yàn)程序編寫
34.4.2運(yùn)行測(cè)試
第35章Linux 網(wǎng)絡(luò)驅(qū)動(dòng)實(shí)驗(yàn)
35.1嵌入式網(wǎng)絡(luò)簡(jiǎn)介
35.1.1嵌入式下的網(wǎng)絡(luò)硬件接口
35.1.2MII/RMII接口
35.1.3MDIO接口
35.1.4RJ45接口
35.1.5I.MX6ULL ENET接口簡(jiǎn)介
35.2PHY芯片詳解
35.2.1PHY基礎(chǔ)知識(shí)簡(jiǎn)介
35.2.2LAN8720A詳解
35.3Linux內(nèi)核網(wǎng)絡(luò)驅(qū)動(dòng)框架
35.3.1net_device結(jié)構(gòu)體
35.3.2net_device_ops結(jié)構(gòu)體
35.3.3sk_buff結(jié)構(gòu)體
35.3.4網(wǎng)絡(luò)NAPI處理機(jī)制
35.4I.MX6ULL網(wǎng)絡(luò)驅(qū)動(dòng)簡(jiǎn)介
35.4.1I.MX6ULL網(wǎng)絡(luò)外設(shè)設(shè)備樹
35.4.2I.MX6ULL網(wǎng)絡(luò)驅(qū)動(dòng)源碼簡(jiǎn)介
35.4.3fec_netdev_ops操作集
35.4.4Linux內(nèi)核PHY子系統(tǒng)與MDIO總線簡(jiǎn)介
35.5網(wǎng)絡(luò)驅(qū)動(dòng)實(shí)驗(yàn)測(cè)試
35.5.1LAN8720 PHY驅(qū)動(dòng)測(cè)試
35.5.2通用PHY驅(qū)動(dòng)測(cè)試
35.5.3DHCP功能配置
第36章Linux WiFi驅(qū)動(dòng)實(shí)驗(yàn)
36.1WiFi驅(qū)動(dòng)添加與編譯
36.1.1向Linux內(nèi)核添加WiFi驅(qū)動(dòng)
36.1.2配置Linux內(nèi)核
36.1.3編譯WiFi驅(qū)動(dòng)
36.1.4驅(qū)動(dòng)加載測(cè)試
36.2wireless tools工具移植與測(cè)試
36.2.1wireless tools移植
36.2.2wireless tools工具測(cè)試
36.3wpa_supplicant移植
36.3.1openssl移植
36.3.2libnl庫移植
36.3.3wpa_supplicant移植
36.4WiFi聯(lián)網(wǎng)測(cè)試
36.4.1RTL8188 USB WiFi聯(lián)網(wǎng)測(cè)試
36.4.2RTL8189 SDIO WiFi聯(lián)網(wǎng)測(cè)試
第37章Linux 4G通信實(shí)驗(yàn)
37.14G網(wǎng)絡(luò)連接簡(jiǎn)介
37.2高新興ME3630 4G模塊實(shí)驗(yàn)
37.2.1ME3630 4G模塊簡(jiǎn)介
37.2.2ME3630 4G模塊驅(qū)動(dòng)修改
37.2.3ME3630 4G模塊ppp聯(lián)網(wǎng)測(cè)試
37.2.4ME3630 4G模塊ECM聯(lián)網(wǎng)測(cè)試
37.2.5ME3630 4G模塊GNSS定位測(cè)試
37.3EC20 4G模塊實(shí)驗(yàn)
37.3.1EC20 4G模塊簡(jiǎn)介
37.3.2EC20 4G模塊驅(qū)動(dòng)修改
37.3.3quectelCM移植
37.3.4EC20上網(wǎng)測(cè)試