精通Linux內核智能設備開發核心技術

姜亞華

  • 出版商: 機械工業
  • 出版日期: 2019-11-01
  • 售價: $774
  • 貴賓價: 9.5$735
  • 語言: 簡體中文
  • 頁數: 463
  • 裝訂: 平裝
  • ISBN: 711163960X
  • ISBN-13: 9787111639602
  • 相關分類: Linux

立即出貨

買這商品的人也買了...

相關主題

商品描述

本書結合大量實例,在基於ARM Cortex-A9核處理器Exys4412的硬件教學平台和PC機上,
全面詳細講解了Linux設備驅動開發。
主要內容包含開發環境的搭建,內核模塊,
字符設備驅動框架,高級I/O,中斷和時間管理,互斥和同步,內存和DMA,
Linux設備模型,外設的驅動實例,總線類設備驅動,塊設備驅動,網絡設備驅動和內核調試技巧。
對每一個知識點都有一個對應的典型實例,
大多數實例既可以在上面說到的嵌入式平台上運行,也可以在PC機上運行。

目錄大綱

1章概述1


2章內核模塊6
2.1一個內核模塊程序7
2.2內核模塊的相關工具10
2.3內核模塊一般的形式11
2.4將多個源文件編譯生成一個內核模塊13
2.5內核模塊參數15
2.6內核模塊依賴17
2.7關於內核模塊的進一步討論20
2.8習題21


3章字符設備驅動23
3.1字符設備驅動基礎24
3.2字符設備驅動框架30
3.3虛擬串口設備35
3.4虛擬串口設備驅動35
3.5一個驅動支持多個設備39
3.6習題45


4章高級I/O作46
4.1 ioctl設備作47
4.2 proc文件作56
4.3非阻塞型I/O 58
4.4阻塞型I/O 60
4.5 I/O多路復用65
4.6異步I/O 69
4.7幾種I/O模型總結73
4.8異步通知74
4.9 mmap設備文件作83
4.10定位作88
4.11習題90


5章中斷和時間管理92
5.1中斷進入過程93
5.2驅動中的中斷處理98
5.3中斷下半部101
5.3.1軟中斷102
5.3.2 tasklet 104
5.3.3工作隊列106
5.4延時控制108
5.5定時作109
5.5.1低分辨率定時器109
5.5.2高分辨率定時器112
5.6習題114


6章互斥和同步116
6.1一種典型的競態117
6.2內核中的並發117
6.3中斷屏蔽118
6.4原子變量119
6.5自旋鎖120
6.6讀寫鎖122
6.7順序鎖123
6.8信號量125
6.9讀寫信號量127
6.10互斥量127
6.11 RCU機制128
6.12虛擬串口驅動加入互斥130
6.13完成量134
6.14習題135


7章內存和DMA 137
7.1內存組織138
7.2按頁分配內存139
7.3 slab分配器142
7.4不連續內存頁分配144
7.5 per-CPU變量145
7.6動態內存實例146
7.7 I/O內存147
7.8 DMA原理及映155
7.8.1 DMA工作原理155
7.8.2 DMA映157
7.9 DMA統一編程接口160
7.10習題164


8章Linux設備模型166
8.1設備模型基礎167
8.2總線、設備和驅動171
8.3平台設備及其驅動176
8.3.1平台設備176
8.3.2平台驅動178
8.3.3平台驅動簡單實例179
8.3.4電源管理182
8.3.5 udev和驅動的自動加載183
8.3.6使用平台設備的LED驅動184
8.3.7自動創建設備節點190
8.4 Linux設備樹193
8.4.1 Linux設備樹的由來193
8.4.2 Linux設備樹的目的194
8.4.3 Linux設備樹的使用195
8.4.4使用設備樹的LED驅動202
8.5習題204


9章字符設備驅動實例205
9.1 LED驅動206
9.2基於中斷的簡單按鍵驅動209
9.3基於輸入子系統的按鍵驅動213
9.4 ADC驅動222
9.5 PWM驅動231
9.6 RTC驅動239


10章總線類設備驅動243
10.1 I2C設備驅動244
10.1.1 I2C協議簡介244
10.1.2 Linux I2C驅動246
10.1.3 I2C設備驅動實例251
10. 2 SPI設備驅動258
10.2.1 SPI協議簡介258
10.2.2 Linux SPI驅動259
10.2.3 SPI設備驅動範例264
10.3 USB設備驅動268
10.3.1 USB協議簡介268
10 .3.2 Linux USB驅動271
10.3.3 USB設備驅動實例274
10.4 PCI設備驅動283
10.4.1 PCI協議簡介283
10.4.2 Linux PCI驅動287
10.4.3 PCI設備驅動實例288
10.5習題296


11章塊設備驅動298
11.1磁盤結構299
11.2塊設備內核組件300
11.3塊設備驅動核心數據結構和函數301
11.4塊設備驅動實例308
11. 5習題316


12章網絡設備驅動317
12.1網絡層次結構318
12.2網絡設備驅動核心數據結構和函數319
12.3網絡設備驅動實例327
12.4 DM9000網絡設備驅動代碼分析333
12.5 NAPI 340
12.6習題343

13章內核調試技術344
13.1內核調試方法345
13.1.1內核調試概述345
13.1.2學會分析內核源程序346
13.1.3調試方法介紹346
13.2內核打印函數350
13.2.1內核鏡像解壓前的串口輸出函數350
13.2.2內核鏡像解壓後的串口輸出函數352
13.2.3內核打印函數353
13.3獲取內核信息357
13.3.1系統請求鍵357
13.3.2通過/proc接口358
13.3.3通過/sys接口359
13.4處理出錯信息362
13.4.1 oops信息362
13.4.2 panic 364
13.4.3通過ioctl方法366
13.5內核源碼調試367
13.6習題369


14章搭建開發環境370
14 .1準備Linux開發主機371
14.2安裝串口相關軟件375
14.2.1安裝串口驅動375
14.2.2安裝串口終端軟件PuTTY 376
14.2.3安裝串口終端軟件minicom 377
14.3安裝TFTP和NFS服務器379
14.4準備Linux內核源碼381
14.5在目標板上運行Linux系統382
14.6源碼瀏覽及編輯器環境386
習題答案388
參考文獻389