嵌入式Linux驅動模板精講與項目實踐

嵌入式Linux驅動模板精講與項目實踐
定價:354
NT $ 354
  • 作者:林錫龍
  • 出版社:電子工業出版社
  • 出版日期:2014-05-01
  • 語言:簡體中文
  • ISBN10:7121230828
  • ISBN13:9787121230820
  • 裝訂:306頁 / 普通級 / 1-1
 

內容簡介

本書從實用的角度對嵌入式Linux驅動設計開發從理論到實踐做了比較深入的介紹,以Mini2440開發板為基礎,對各種常見驅動開發進行模板化設計訓練,各種模板可以直接應用到實際項目開發中,其中的一線研發技巧和案例分析可以供專業特訓和廣大嵌入式Linux開發者實戰使用。

本書共分為13章,書中介紹的各種開發技巧對實際應用有很大的借鑒意義,在各個知識點介紹中穿插實際項目的經驗分享,包括實際研發的管理經驗介紹,對驅動開發初學者和實際設計開發人員有很大益處,也可作為一線研發公司的崗前培訓教程。

本書重點在於內核驅動的講解,以及模板式開發的訓練,力求完全揭曉各種Linux開發中的技巧和模糊點,是一本比較實用的驅動開發訓練教程。

林錫龍,8年嵌入式軟件一線研發經驗,曾在華為等通信公司從事底層軟件研發、Linux驅動開發工作。多次擔任專業培訓機構高級培訓師,主講嵌入式Linux驅動開發。
 

目錄

第1章 驅動總論(1)
1.1總論(1)
1.1.1驅動在內核中的比例(1)
1.1.2驅動開發需要具備的能力(1)
1.1.3驅動開發重點關注的內容(2)
1.2驅動理論與思想(3)
1.2.1分類思想(4)
1.2.2分層思想(4)
1.2.3分離思想(10)
1.2.4總線思想(11)
本章小結(11)

第2章 內核編程及基礎知識點(12)
2.1內核線程(12)
2.2內核定時器(16)
2.3鏈表(18)
2.4內存操作(18)
2.5I/O端口(20)
2.6內核相關宏(21)
2.7內核態文件操作(22)
2.8內核通知鏈(25)
本章小結(30)

第3章 模塊與常用字符設備方法(31)
3.1Linux驅動(31)
3.2內核驅動模塊剖析(32)
3.2.1內核模塊(34)
3.2.2模塊工具集(34)
3.2.3模塊文件結構分析(36)
3.2.4內核管理(37)
3.2.5Modutils工具包及Module—init—tools移植(37)
3.2.6符號(37)
3.2.7驅動模塊之間的依賴(38)
3.2.8模塊編譯流程細節(38)
3.2.9模塊編寫(39)
3.3宏觀分析Linux驅動(39)
3.4設備文件(41)
3.5設備管理系統(46)
3.5.1自動創建和管理設備文件揭秘(46)
3.5.2devfs、mdev和udev(46)
3.5.3udev基本原理與流程(47)
3.5.4熱插拔與冷插拔(48)
3.5.5class(48)
3.6字符設備驅動(50)
3.6.1原始方式(51)
3.6.2靜態設定設備號方式(51)
3.6.3使用udev工具自動生成設備文件方式(52)
3.6.4簡潔型字符設備驅動——misc字符設備驅動方式(53)
3.7設備操作方法file_operations(55)
3.7.1ioctl和unlocked_ioctl操作(57)
3.7.2read/write設備方法(65)
3.7.3llseek設備方法(70)
3.7.4mmap設備方法(70)
3.7.5利用mmap在應用層實現硬件操作(75)
本章小結(76)

第4章 同步和互斥(77)
4.1概述(77)
4.2基本概念(77)
4.3互斥和同步機制(79)
4.4互斥(79)
4.4.1屏蔽中斷(79)
4.4.2原子操作(80)
4.4.3自旋鎖(81)
4.4.4信號量(82)
4.4.5自旋鎖與信號量(83)
4.4.6互斥體:專用於互斥(84)
4.5同步(84)
本章小結(86)

第5章 中斷系統(87)
5.1中斷概述(87)
5.2基本概念(87)
5.3中斷原理及使用注意事項(89)
5.4中斷接口函數(89)
5.4.1中斷申請和釋放(89)
5.4.2中斷共享(90)
5.4.3中斷例程之一:按鍵中斷(92)
5.4.4中斷例程之二:A/D轉換驅動(96)
5.5底半部:tasklet、工作隊列(104)
5.6時間管理(106)
本章小結(107)

第6章 設備高級特性(108)
6.1字符設備file_operations的高級特性(108)
6.2Linux設備驅動的I/O模型(109)
6.2.1同步阻塞I/O(109)
6.2.2同步非阻塞I/O(109)
6.2.3異步阻塞I/O(110)
6.2.4異步非阻塞I/O(110)
6.2.5異步通知(110)
6.2.6同步阻塞型I/O的實現:建立在等待隊列的基礎上(117)
6.2.7異步阻塞型I/O的實現:基於poll系統調用操作接口函數(121)
6.3設備復用(126)
本章小結(128)

第7章 高級類型驅動(129)
7.1misc類型驅動(129)
7.1.1概述(129)
7.1.2結構與流程分析(129)
7.1.3關於設備節點的創建(130)
7.2input類型驅動(130)
7.2.1input驅動概述(130)
7.2.2三個主要結構體(133)
7.2.3Input驅動步驟(136)
7.3觸摸屏驅動(144)
7.4I2C驅動(150)
7.4.1I2C總線接口(150)
7.4.2I2C內核驅動層及相關文件分析(151)
7.4.3重要的數據結構及相關聯系(153)
7.4.4流程分析(157)
7.4.5i2c—tools(165)
7.5塊設備驅動(169)
7.5.1塊設備驅動分析(169)
7.5.2制作一個塊設備例子:RamDisk驅動(174)
本章小結(177)

第8章 虛擬文件系統(178)
8.1內核在線窗口——虛擬文件系統(178)
8.2proc文件系統(179)
8.2.1目錄介紹(179)
8.2.2創建目錄與文件(184)
8.2.3相關應用(185)
8.3sys文件系統(186)
8.3.1sys文件系統概述(186)
8.3.2sys文件目錄(187)
8.3.3sys文件系統接口函數與創建文件夾模板(189)
本章小結(192)

第9章 設備驅動模型(193)
9.1設備驅動模型概述(193)
9.2sys文件系統與設備驅動模型(194)
9.3認識設備驅動模型(195)
9.4兩大基石kobject和kset(197)
9.4.1內核對象kobject(197)
9.4.2另外一個基石kset(199)
9.5subsystem(203)
9.6三角關系核心——總線、設備、驅動(204)
9.6.1總線(204)
9.6.2設備(207)
9.6.3驅動(209)
9.7platform總線(211)
9.8serio總線(220)
9.8.1serio子系統介紹(220)
9.8.2serio子系統框架(220)
9.8.3主要數據結構(223)
本章小結(229)

第10章 嵌入式Linux文件系統(230)
10.1文件系統介紹(230)
10.2創建最簡單的根文件系統(233)
10.3YAFFS文件系統移植(241)
10.4JFFS2文件系統制作(250)
10.5ramdisk文件系統制作(250)
10.6cramfs文件系統制作(252)
本章小結(253)

第11章 開發與調試技巧(254)
11.1vim使用(254)
11.2工具使用(254)
11.3printk使用技巧(259)
11.4使用proc在線打開打印開關(260)
11.5異常崩潰oops處理(261)
11.6動態修改模塊參數(269)
11.7使用devmem2操作物理地址(269)
11.8時間測量(270)
11.9善於使用開源項目(270)
本章小結(271)

第12章 底層驅動規划與管理探索(272)
12.1底層驅動規划探索(272)
12.1.1設計理念概述(272)
12.1.2底層平台軟件設計(273)
12.1.3底層平台軟件管理規則(276)
12.1.4獨立驅動模塊的版本管理(276)
12.1.5提供最基本的系統(278)
12.1.6驅動開發注意事項(278)
12.1.7版本庫(279)
12.1.8平台版本構建發布(282)
12.2研發管理(283)
12.2.1嵌入式軟件研發管理暢想(284)
12.2.2嵌入式軟件V字形開發模式(285)
12.3軟件開發文檔(286)
12.3.1可行性分析報告(286)
12.3.2嵌入式軟件系統設計方案文檔(289)
12.3.3嵌入式軟件概要設計(290)
12.3.4嵌入式軟件詳細設計(293)
12.3.5案例分析(294)
本章小結(295)

第13章 Linux設備驅動編程規范(296)
13.1基本原則(296)
13.2布局(297)
13.3基本格式(299)
13.4對齊(300)
13.5空行空格(301)
13.6注釋(301)
13.7命名(302)
13.8函數(302)
13.9可靠性(303)
13.10其他(303)
本章小結(305)

參考文獻(306)
網路書店 類別 折扣 價格
  1. 新書
    $354