-
>
決戰(zhàn)行測(cè)5000題(言語理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈(zèng)1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解-基于最新的Linux4.0內(nèi)核 版權(quán)信息
- ISBN:9787111507895
- 條形碼:9787111507895 ; 978-7-111-50789-5
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無
- 重量:暫無
- 所屬分類:>>
Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解-基于最新的Linux4.0內(nèi)核 本書特色
本書介紹了linux設(shè)備驅(qū)動(dòng)開發(fā)理論、框架與實(shí)例,詳細(xì)說明了自旋鎖、信號(hào)量、完成量、中斷頂/底半部、定時(shí)器、內(nèi)存和i/o映射以及異步通知、阻塞i/o、非阻塞i/o等linux設(shè)備驅(qū)動(dòng)理論,以及字符設(shè)備、塊設(shè)備、tty設(shè)備、i2c設(shè)備、lcd設(shè)備、音頻設(shè)備、usb設(shè)備、網(wǎng)絡(luò)設(shè)備、pci設(shè)備等linux設(shè)備驅(qū)動(dòng)架構(gòu)中各個(gè)復(fù)雜數(shù)據(jù)結(jié)構(gòu)和函數(shù)的關(guān)系,并講解了linux驅(qū)動(dòng)開發(fā)的大量實(shí)例,使讀者能夠獨(dú)立開發(fā)各類linux設(shè)備驅(qū)動(dòng)。
Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解-基于最新的Linux4.0內(nèi)核 內(nèi)容簡(jiǎn)介
本書介紹了Linux設(shè)備驅(qū)動(dòng)開發(fā)理論、框架與實(shí)例,詳細(xì)說明了自旋鎖、信號(hào)量、完成量、中斷頂/底半部、定時(shí)器、內(nèi)存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設(shè)備驅(qū)動(dòng)理論,以及字符設(shè)備、塊設(shè)備、tty設(shè)備、I2c設(shè)備、LCD設(shè)備、音頻設(shè)備、USB設(shè)備、網(wǎng)絡(luò)設(shè)備、PCI設(shè)備等Linux設(shè)備驅(qū)動(dòng)架構(gòu)中各個(gè)復(fù)雜數(shù)據(jù)結(jié)構(gòu)和函數(shù)的關(guān)系,并講解了Linux驅(qū)動(dòng)開發(fā)的大量實(shí)例,使讀者能夠獨(dú)立開發(fā)各類Linux設(shè)備驅(qū)動(dòng)。
Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解-基于最新的Linux4.0內(nèi)核 目錄
贊譽(yù)
推薦序一
推薦序二
前言
第1章 linux設(shè)備驅(qū)動(dòng)概述及開發(fā)環(huán)境構(gòu)建
1.1 設(shè)備驅(qū)動(dòng)的作用
1.2 無操作系統(tǒng)時(shí)的設(shè)備驅(qū)動(dòng)
1.3 有操作系統(tǒng)時(shí)的設(shè)備驅(qū)動(dòng)
1.4 linux設(shè)備驅(qū)動(dòng)
1.4.1 設(shè)備的分類及特點(diǎn)
1.4.2 linux設(shè)備驅(qū)動(dòng)與整個(gè)軟硬件系統(tǒng)的關(guān)系
1.4.3 linux設(shè)備驅(qū)動(dòng)的重點(diǎn)、難點(diǎn)
1.5 linux設(shè)備驅(qū)動(dòng)的開發(fā)環(huán)境構(gòu)建
1.5.1 pc上的linux環(huán)境
1.5.2 qemu實(shí)驗(yàn)平臺(tái)
1.5.3 源代碼閱讀和編輯
1.6 設(shè)備驅(qū)動(dòng)hello world:led驅(qū)動(dòng)
1.6.1 無操作系統(tǒng)時(shí)的led驅(qū)動(dòng)
1.6.2 linux下的led驅(qū)動(dòng)
第2章 驅(qū)動(dòng)設(shè)計(jì)的硬件基礎(chǔ)
2.1 處理器
2.1.1 通用處理器
2.1.2 數(shù)字信號(hào)處理器
2.2 存儲(chǔ)器
2.3 接口與總線
2.3.1 串口
2.3.2 i2c
2.3.3 spi
2.3.4 usb
2.3.5 以太網(wǎng)接口
2.3.6 pci和pcie
2.3.7 sd和sdio
2.4 cpld和fpga
2.5 原理圖分析
2.6 硬件時(shí)序分析
2.6.1 時(shí)序分析的概念
2.6.2 典型的硬件時(shí)序
2.7 芯片數(shù)據(jù)手冊(cè)閱讀方法
2.8 儀器儀表使用
2.8.1 萬用表
2.8.2 示波器
2.8.3 邏輯分析儀
2.9 總結(jié)
第3章 linux內(nèi)核及內(nèi)核編程
3.1 linux內(nèi)核的發(fā)展與演變
3.2 linux 2.6后的內(nèi)核特點(diǎn)
3.3 linux內(nèi)核的組成
3.3.1 linux內(nèi)核源代碼的目錄結(jié)構(gòu)
3.3.2 linux內(nèi)核的組成部分
3.3.3 linux內(nèi)核空間與用戶空間
3.4 linux內(nèi)核的編譯及加載
3.4.1 linux內(nèi)核的編譯
3.4.2 kconfig和makefile
3.4.3 linux內(nèi)核的引導(dǎo)
3.5 linux下的c編程特點(diǎn)
3.5.1 linux編碼風(fēng)格
3.5.2 gnu c與ansi c
3.5.3 do { } while(0) 語句
3.5.4 goto語句
3.6 工具鏈
3.7 實(shí)驗(yàn)室建設(shè)
3.8 串口工具
3.9 總結(jié)
第4章 linux內(nèi)核模塊
4.1 linux內(nèi)核模塊簡(jiǎn)介
4.2 linux內(nèi)核模塊程序結(jié)構(gòu)
4.3 模塊加載函數(shù)
4.4 模塊卸載函數(shù)
4.5 模塊參數(shù)
4.6 導(dǎo)出符號(hào)
4.7 模塊聲明與描述
4.8 模塊的使用計(jì)數(shù)
4.9 模塊的編譯
4.10 使用模塊“繞開”gpl
4.11 總結(jié)
第5章 linux文件系統(tǒng)與設(shè)備文件
5.1 linux文件操作
5.1.1 文件操作系統(tǒng)調(diào)用
5.1.2 c庫(kù)文件操作
5.2 linux文件系統(tǒng)
5.2.1 linux文件系統(tǒng)目錄結(jié)構(gòu)
5.2.2 linux文件系統(tǒng)與設(shè)備驅(qū)動(dòng)
5.3 devfs
5.4 udev用戶空間設(shè)備管理
5.4.1 udev與devfs的區(qū)別
5.4.2 sysfs文件系統(tǒng)與linux設(shè)備模型
5.4.3 udev的組成
5.4.4 udev規(guī)則文件
5.5 總結(jié)
第6章 字符設(shè)備驅(qū)動(dòng)
6.1 linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
6.1.1 cdev結(jié)構(gòu)體
6.1.2 分配和釋放設(shè)備號(hào)
6.1.3 f?ile_operations結(jié)構(gòu)體
6.1.4 linux字符設(shè)備驅(qū)動(dòng)的組成
6.2 globalmem虛擬設(shè)備實(shí)例描述
6.3 globalmem設(shè)備驅(qū)動(dòng)
6.3.1 頭文件、宏及設(shè)備結(jié)構(gòu)體
6.3.2 加載與卸載設(shè)備驅(qū)動(dòng)
6.3.3 讀寫函數(shù)
6.3.4 seek函數(shù)
6.3.5 ioctl函數(shù)
6.3.6 使用文件私有數(shù)據(jù)
6.4 globalmem驅(qū)動(dòng)在用戶空間中的驗(yàn)證
6.5 總結(jié)
第7章 linux設(shè)備驅(qū)動(dòng)中的并發(fā)控制
7.1 并發(fā)與競(jìng)態(tài)
7.2 編譯亂序和執(zhí)行亂序
7.3 中斷屏蔽
7.4 原子操作
7.4.1 整型原子操作
7.4.2 位原子操作
7.5 自旋鎖
7.5.1 自旋鎖的使用
7.5.2 讀寫自旋鎖
7.5.3 順序鎖
7.5.4 讀復(fù)制更新
7.6 信號(hào)量
7.7 互斥體
7.8 完成量
7.9 增加并發(fā)控制后的globalmem的設(shè)備驅(qū)動(dòng)
7.10 總結(jié)
第8章 linux設(shè)備驅(qū)動(dòng)中的阻塞與非阻塞i/o
8.1 阻塞與非阻塞i/o
8.1.1 等待隊(duì)列
8.1.2 支持阻塞操作的globalf?ifo設(shè)備驅(qū)動(dòng)
8.1.3 在用戶空間驗(yàn)證globalf?ifo的讀寫
8.2 輪詢操作
8.2.1 輪詢的概念與作用
8.2.2 應(yīng)用程序中的輪詢編程
8.2.3 設(shè)備驅(qū)動(dòng)中的輪詢編程
8.3 支持輪詢操作的globalf?ifo驅(qū)動(dòng)
8.3.1 在globalf?ifo驅(qū)動(dòng)中增加輪詢操作
8.3.2 在用戶空間中驗(yàn)證globalf?ifo設(shè)備的輪詢
8.4 總結(jié)
第9章 linux設(shè)備驅(qū)動(dòng)中的異步通知與異步i/o
9.1 異步通知的概念與作用
9.2 linux異步通知編程
9.2.1 linux信號(hào)
9.2.2 信號(hào)的接收
9.2.3 信號(hào)的釋放
9.3 支持異步通知的globalf?ifo驅(qū)動(dòng)
9.3.1 在globalf?ifo驅(qū)動(dòng)中增加異步通知
9.3.2 在用戶空間中驗(yàn)證globalf?ifo的異步通知
9.4 linux異步i/o
9.4.1 aio概念與gnu c庫(kù)aio
9.4.2 linux內(nèi)核aio與libaio
9.4.3 aio與設(shè)備驅(qū)動(dòng)
9.5 總結(jié)
第10章 中斷與時(shí)鐘
10.1 中斷與定時(shí)器
10.2 linux中斷處理程序架構(gòu)
10.3 linux中斷編程
10.3.1 申請(qǐng)和釋放中斷
10.3.2 使能和屏蔽中斷
10.3.3 底半部機(jī)制
10.3.4 實(shí)例:gpio按鍵的中斷
10.4 中斷共享
10.5 內(nèi)核定時(shí)器
10.5.1 內(nèi)核定時(shí)器編程
10.5.2 內(nèi)核中延遲的工作delayed_work
10.5.3 實(shí)例:秒字符設(shè)備
10.6 內(nèi)核延時(shí)
10.6.1 短延遲
10.6.2 長(zhǎng)延遲
10.6.3 睡著延遲
10.7 總結(jié)
第11章 內(nèi)存與i/o訪問
11.1 cpu與內(nèi)存、i/o
11.1.1 內(nèi)存空間與i/o空間
11.1.2 內(nèi)存管理單元
11.2 linux內(nèi)存管理
11.3 內(nèi)存存取
11.3.1 用戶空間內(nèi)存動(dòng)態(tài)申請(qǐng)
11.3.2 內(nèi)核空間內(nèi)存動(dòng)態(tài)申請(qǐng)
11.4 設(shè)備i/o端口和i/o內(nèi)存的訪問
11.4.1 linux i/o端口和i/o內(nèi)存訪問接口
11.4.2 申請(qǐng)與釋放設(shè)備的i/o端口和i/o內(nèi)存
11.4.3 設(shè)備i/o端口和i/o內(nèi)存訪問流程
11.4.4 將設(shè)備地址映射到用戶空間
11.5 i/o內(nèi)存靜態(tài)映射
11.6 dma
11.6.1 dma與cache一致性
11.6.2 linux下的dma編程
11.7 總結(jié)
第12章 linux設(shè)備驅(qū)動(dòng)的軟件架構(gòu)思想
12.1 linux驅(qū)動(dòng)的軟件架構(gòu)
12.2 platform設(shè)備驅(qū)動(dòng)
12.2.1 platform總線、設(shè)備與驅(qū)動(dòng)
12.2.2 將globalf?ifo作為platform設(shè)備
12.2.3 platform設(shè)備資源和數(shù)據(jù)
12.3 設(shè)備驅(qū)動(dòng)的分層思想
12.3.1 設(shè)備驅(qū)動(dòng)核心層和例化
12.3.2 輸入設(shè)備驅(qū)動(dòng)
12.3.3 rtc設(shè)備驅(qū)動(dòng)
12.3.4 framebuffer設(shè)備驅(qū)動(dòng)
12.3.5 終端設(shè)備驅(qū)動(dòng)
12.3.6 misc設(shè)備驅(qū)動(dòng)
12.3.7 驅(qū)動(dòng)核心層
12.4 主機(jī)驅(qū)動(dòng)與外設(shè)驅(qū)動(dòng)分離的設(shè)計(jì)思想
12.4.1 主機(jī)驅(qū)動(dòng)與外設(shè)驅(qū)動(dòng)分離
12.4.2 linux spi主機(jī)和設(shè)備驅(qū)動(dòng)
12.5 總結(jié)
第13章 linux塊設(shè)備驅(qū)動(dòng)
13.1 塊設(shè)備的i/o操作特點(diǎn)
13.2 linux塊設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
13.2.1 block_device_operations結(jié)構(gòu)體
13.2.2 gendisk結(jié)構(gòu)體
13.2.3 bio、request和request_queue
13.2.4 i/o調(diào)度器
13.3 linux塊設(shè)備驅(qū)動(dòng)的初始化
13.4 塊設(shè)備的打開與釋放
13.5 塊設(shè)備驅(qū)動(dòng)的ioctl函數(shù)
13.6 塊設(shè)備驅(qū)動(dòng)的i/o請(qǐng)求處理
13.6.1 使用請(qǐng)求隊(duì)列
13.6.2 不使用請(qǐng)求隊(duì)列
13.7 實(shí)例:vmem_disk驅(qū)動(dòng)
13.7.1 vmem_disk的硬件原理
13.7.2 vmem_disk驅(qū)動(dòng)模塊的加載與卸載
13.7.3 vmem_disk設(shè)備驅(qū)動(dòng)的block_device_operations
13.7.4 vmem_disk的i/o請(qǐng)求處理
13.8 linux mmc子系統(tǒng)
13.9 總結(jié)
第14章 linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)
14.1 linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的結(jié)構(gòu)
14.1.1 網(wǎng)絡(luò)協(xié)議接口層
14.1.2 網(wǎng)絡(luò)設(shè)備接口層
14.1.3 設(shè)備驅(qū)動(dòng)功能層
14.2 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的注冊(cè)與注銷
14.3 網(wǎng)絡(luò)設(shè)備的初始化
14.4 網(wǎng)絡(luò)設(shè)備的打開與釋放
14.5 數(shù)據(jù)發(fā)送流程
14.6 數(shù)據(jù)接收流程
14.7 網(wǎng)絡(luò)連接狀態(tài)
14.8 參數(shù)設(shè)置和統(tǒng)計(jì)數(shù)據(jù)
14.9 dm9000網(wǎng)卡設(shè)備驅(qū)動(dòng)實(shí)例
14.9.1 dm9000網(wǎng)卡硬件描述
14.9.2 dm9000網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)分析
14.10 總結(jié)
第15章 linux i2c核心、總線與設(shè)備驅(qū)動(dòng)
15.1 linux i2c體系結(jié)構(gòu)
15.2 linux i2c核心
15.3 linux i2c適配器驅(qū)動(dòng)
15.3.1 i2c適配器驅(qū)動(dòng)的注冊(cè)與注銷
15.3.2 i2c總線的通信方法
15.4 linux i2c設(shè)備驅(qū)動(dòng)
15.4.1 linux i2c設(shè)備驅(qū)動(dòng)的模塊加載與卸載
15.4.2 linux i2c設(shè)備驅(qū)動(dòng)的數(shù)據(jù)傳輸
15.4.3 linux的i2cdev.c文件分析
15.5 tegra i2c總線驅(qū)動(dòng)實(shí)例
15.6 at24xx eeprom的i2c設(shè)備驅(qū)動(dòng)實(shí)例
15.7 總結(jié)
第16章 usb主機(jī)、設(shè)備與gadget驅(qū)動(dòng)
16.1 linux usb驅(qū)動(dòng)層次
16.1.1 主機(jī)側(cè)與設(shè)備側(cè)usb驅(qū)動(dòng)
16.1.2 設(shè)備、配置、接口、端點(diǎn)
16.2 usb主機(jī)控制器驅(qū)動(dòng)
16.2.1 usb主機(jī)控制器驅(qū)動(dòng)的整體結(jié)構(gòu)
16.2.2 實(shí)例:chipidea usb主機(jī)驅(qū)動(dòng)
16.3 usb設(shè)備驅(qū)動(dòng)
16.3.1 usb設(shè)備驅(qū)動(dòng)的整體結(jié)構(gòu)
16.3.2 usb請(qǐng)求塊
16.3.3 探測(cè)和斷開函數(shù)
16.3.4 usb骨架程序
16.3.5 實(shí)例:usb鍵盤驅(qū)動(dòng)
16.4 usb udc與gadget驅(qū)動(dòng)
16.4.1 udc和gadget驅(qū)動(dòng)的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)與api
16.4.2 實(shí)例:chipidea usb udc驅(qū)動(dòng)
16.4.3 實(shí)例:loopback function驅(qū)動(dòng)
16.5 usb otg驅(qū)動(dòng)
16.6 總結(jié)
第17章 i2c、spi、usb驅(qū)動(dòng)架構(gòu)類比
17.1 i2c、spi、usb驅(qū)動(dòng)架構(gòu)
17.2 i2c主機(jī)和外設(shè)眼里的linux世界
第18章 arm linux設(shè)備樹
18.1 arm設(shè)備樹起源
18.2 設(shè)備樹的組成和結(jié)構(gòu)
18.2.1 dts、dtc和dtb等
18.2.2 根節(jié)點(diǎn)兼容性
18.2.3 設(shè)備節(jié)點(diǎn)兼容性
18.2.4 設(shè)備節(jié)點(diǎn)及l(fā)abel的命名
18.2.5 地址編碼
18.2.6 中斷連接
18.2.7 gpio、時(shí)鐘、pinmux連接
18.3 由設(shè)備樹引發(fā)的bsp和驅(qū)動(dòng)變更
18.4 常用的of api
18.5 總結(jié)
第19章 linux電源管理的系統(tǒng)架構(gòu)和驅(qū)動(dòng)
19.1 linux電源管理的全局架構(gòu)
19.2 cpufreq驅(qū)動(dòng)
19.2.1 soc的cpufreq驅(qū)動(dòng)實(shí)現(xiàn)
19.2.2 cpufreq的策略
19.2.3 cpufreq的性能測(cè)試和調(diào)優(yōu)
19.2.4 cpufreq通知
19.3 cpuidle驅(qū)動(dòng)
19.4 powertop
19.5 regulator驅(qū)動(dòng)
19.6 opp
19.7 pm qos
19.8 cpu熱插拔
19.9 掛起到ram
19.10 運(yùn)行時(shí)的pm
19.11 總結(jié)
第20章 linux芯片級(jí)移植及底層驅(qū)動(dòng)
20.1 arm linux底層驅(qū)動(dòng)的組成和現(xiàn)狀
20.2 內(nèi)核節(jié)拍驅(qū)動(dòng)
20.3 中斷控制器驅(qū)動(dòng)
20.4 smp多核啟動(dòng)以及cpu熱插拔驅(qū)動(dòng)
20.5 debug_ll和early_printk的設(shè)置
20.6 gpio驅(qū)動(dòng)
20.7 pinctrl驅(qū)動(dòng)
20.8 時(shí)鐘驅(qū)動(dòng)
20.9 dmaengine驅(qū)動(dòng)
20.10 總結(jié)
第21章 linux設(shè)備驅(qū)動(dòng)的調(diào)試
21.1 gdb調(diào)試器的用法
21.1.1 gdb的基本用法
21.1.2 ddd圖形界面調(diào)試工具
21.2 linux內(nèi)核調(diào)試
21.3 內(nèi)核打印信息--printk()
21.4 debug_ll和early_printk
21.5 使用“/proc”
21.6 oops
21.7 bug_on()和warn_on()
21.8 strace
21.9 kgdb
21.10 使用仿真器調(diào)試內(nèi)核
21.11 應(yīng)用程序調(diào)試
21.12 linux性能監(jiān)控與調(diào)優(yōu)工具
21.13 總結(jié)
Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解-基于最新的Linux4.0內(nèi)核 作者簡(jiǎn)介
宋寶華,Linux布道者,知名嵌入式系統(tǒng)專家,《Essential Linux Device Drivers》譯者。作為較早從事Linux內(nèi)核與設(shè)備驅(qū)動(dòng)研究的專家之一,他在眾多國(guó)內(nèi)外知名企業(yè)開展Linux技術(shù)培訓(xùn)。他也是一位活躍的Linux開發(fā)者和深度實(shí)踐者,為L(zhǎng)inux官方內(nèi)核貢獻(xiàn)了大量的Linux源碼并承擔(dān)代碼審核工作。至今已向Linux官方內(nèi)核提交逾數(shù)萬行代碼和幾百個(gè)補(bǔ)丁。他的《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》系列書在嵌入式Linux開發(fā)者中有口皆碑,是眾多Linux書籍中為數(shù)不多的暢銷書。
- >
人文閱讀與收藏·良友文學(xué)叢書:一天的工作
- >
自卑與超越
- >
名家?guī)阕x魯迅:朝花夕拾
- >
【精裝繪本】畫給孩子的中國(guó)神話
- >
伊索寓言-世界文學(xué)名著典藏-全譯本
- >
我從未如此眷戀人間
- >
隨園食單
- >
中國(guó)歷史的瞬間