Linux設(shè)備驅(qū)動開發(fā)詳解

出版時間:2008-2  出版社:人民郵電  作者:宋寶華  頁數(shù):686  
Tag標(biāo)簽:無  

內(nèi)容概要

  本書是一本介紹Linux設(shè)備驅(qū)動開發(fā)理論、框架與實例的書,本書以Linux 2.6版本內(nèi)核為藍(lán)本,詳細(xì)介紹自旋鎖、信號量、完成量、中斷頂/底半部、定時器、內(nèi)存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設(shè)備驅(qū)動理論;字符設(shè)備、塊設(shè)備、TTY設(shè)備、I2C設(shè)備、LCD設(shè)備、音頻設(shè)備、USB設(shè)備、網(wǎng)絡(luò)設(shè)備、PCI設(shè)備等Linux設(shè)備驅(qū)動的架構(gòu)和框架中各個復(fù)雜數(shù)據(jù)架構(gòu)和函數(shù)的關(guān)系,并講解了大量Linux驅(qū)動開發(fā)的大量實例,使讀者能夠獨立開發(fā)各類Linux設(shè)備驅(qū)動?! ”緯鴥?nèi)容全面,實例豐富,操作性強,語言通俗易懂,適合廣大Linux開發(fā)人員、嵌入式工程師參考使用。

書籍目錄

第1篇 Linux設(shè)備驅(qū)動入門第1章 設(shè)備驅(qū)動概述1.1 設(shè)備驅(qū)動的作用1.2 無操作系統(tǒng)時的設(shè)備驅(qū)動1.3 有操作系統(tǒng)時的設(shè)備驅(qū)動1.4 Linux設(shè)備驅(qū)動1.4.1 設(shè)備的分類及特點1.4.2 Linux設(shè)備驅(qū)動與整個軟硬件系統(tǒng)的關(guān)系1.4.3 編寫Linux設(shè)備驅(qū)動的技術(shù)基礎(chǔ)1.4.4 Linux設(shè)備驅(qū)動的學(xué)習(xí)方法1.5 設(shè)備驅(qū)動的HelloWorld:LED驅(qū)動1.5.1 無操作系統(tǒng)時的LED驅(qū)動1.5.2 Linux系統(tǒng)下的LED驅(qū)動第2章 驅(qū)動設(shè)計的硬件基礎(chǔ)2.1 處理器2.1.1 通用處理器2.1.2 數(shù)字信號處理器2.2 存儲器2.3 接口與總線2.3.1 串口2.3.2 I2C總線2.3.3 USB2.3.4 以太網(wǎng)接口2.3.5 ISA總線2.3.6 PCI和cPCI2.4 CPLD和FPGA2.5 原理圖分析2.5.1 原理圖分析的內(nèi)容2.5.2 原理圖的分析方法2.6 硬件時序分析2.6.1 時序分析的概念2.6.2 典型硬件時序2.7 儀器儀表使用2.7.1 萬用表2.7.2 示波器2.7.3 邏輯分析儀2.8 總結(jié)第3章 Linux內(nèi)核及內(nèi)核編程3.1 Linux內(nèi)核的發(fā)展與演變3.2 Linux2.6內(nèi)核的特點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和Makefile3.4.3 Linux內(nèi)核的引導(dǎo)3.5 Linux下的C編程3.5.1 Linux程序命名習(xí)慣3.5.2 GNUC與ANSIC3.5.3 do{}while(0)3.5.4 goto3.6 總結(jié)第2篇 Linux設(shè)備驅(qū)動核心理論第4章 Linux內(nèi)核模塊4.1 Linux內(nèi)核模塊簡介4.2 Linux內(nèi)核模塊的程序結(jié)構(gòu)4.3 模塊加載函數(shù)4.4 模塊卸載函數(shù)4.5 模塊參數(shù)4.6 導(dǎo)出符號4.7 模塊聲明與描述4.8 模塊的使用計數(shù)4.9 模塊的編譯4.10 模塊與GPL4.11 總結(jié)第5章 Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)5.1 Linux文件操作5.1.1 文件操作的相關(guān)系統(tǒng)調(diào)用5.1.2 C庫函數(shù)的文件操作5.2 Linux文件系統(tǒng)5.2.1 Linux文件系統(tǒng)目錄結(jié)構(gòu)5.2.2 Linux文件系統(tǒng)與設(shè)備驅(qū)動5.3 devfs設(shè)備文件系統(tǒng)5.4 udev設(shè)備文件系統(tǒng)5.4.1 udev與devfs的區(qū)別5.4.2 sysfs文件系統(tǒng)與Linux設(shè)備模型5.4.3 udev的組成5.4.4 udev規(guī)則文件5.4.5 創(chuàng)建和配置udev5.5 總結(jié)第6章 字符設(shè)備驅(qū)動6.1 Linux字符設(shè)備驅(qū)動結(jié)構(gòu)6.1.1 cdev結(jié)構(gòu)體6.1.2 分配和釋放設(shè)備號6.1.3 file_operations結(jié)構(gòu)體6.1.4 Linux字符設(shè)備驅(qū)動的組成6.2 globalmem虛擬設(shè)備實例描述6.3 globalmem設(shè)備驅(qū)動6.3.1 頭文件、宏及設(shè)備結(jié)構(gòu)體6.3.2 加載與卸載設(shè)備驅(qū)動6.3.3 讀寫函數(shù)6.3.4 seek()函數(shù)6.3.5 ioctl()函數(shù)6.3.6 使用文件私有數(shù)據(jù)6.4 globalmem驅(qū)動在用戶空間的驗證6.5 總結(jié)第7章 Linux設(shè)備驅(qū)動中的并發(fā)控制7.1 并發(fā)與競態(tài)7.2 中斷屏蔽7.3 原子操作7.3.1 整型原子操作7.3.2 位原子操作7.4 自旋鎖7.4.1 自旋鎖的使用7.4.2 讀寫自旋鎖7.4.3 順序鎖7.4.4 讀-拷貝-更新7.5 信號量7.5.1 信號量的使用7.5.2 信號量用于同步7.5.3 完成量用于同步7.5.4 自旋鎖vs信號量7.5.5 讀寫信號量7.6 互斥體7.7 增加并發(fā)控制后的globalmem驅(qū)動7.8 總結(jié)第8章 Linux設(shè)備驅(qū)動中的阻塞與非阻塞I/O8.1 阻塞與非阻塞I/O8.1.1 等待隊列8.1.2 支持阻塞操作的globalfifo設(shè)備驅(qū)動8.1.3 在用戶空間驗證globalfifo的讀寫8.2 輪詢操作8.2.1 輪詢的概念與作用8.2.2 應(yīng)用程序中的輪詢編程8.2.3 設(shè)備驅(qū)動中的輪詢編程8.3 支持輪詢操作的globalfifo驅(qū)動8.3.1 在globalfifo驅(qū)動中增加輪詢操作8.3.2 在用戶空間驗證globalfifo設(shè)備的輪詢8.4 總結(jié)第9章 Linux設(shè)備驅(qū)動中的異步通知與異步I/O9.1 異步通知的概念與作用9.2 Linux異步通知編程9.2.1 Linux信號9.2.2 信號的接收9.2.3 信號的釋放9.3 支持異步通知的globalfifo驅(qū)動9.3.1 在globalfifo驅(qū)動中增加異步通知9.3.2 在用戶空間驗證globalfifo的異步通知9.4 Linux2.6異步I/O9.4.1 AIO概念與GNUC庫函數(shù)9.4.2 使用信號作為AIO的通知9.4.3 使用回調(diào)函數(shù)作為AIO的通知9.4.4 AIO與設(shè)備驅(qū)動9.5 總結(jié)第10章 中斷與時鐘10.1 中斷與定時器10.2 Linux中斷處理程序架構(gòu)10.3 Linux中斷編程10.3.1 申請和釋放中斷10.3.2 使能和屏蔽中斷10.3.3 底半部機(jī)制10.3.4 實例:S3C2410實時鐘中斷10.4 中斷共享10.5 內(nèi)核定時器10.5.1 內(nèi)核定時器編程10.5.2 實例:秒字符設(shè)備10.6 內(nèi)核延時10.6.1 短延遲10.6.2 長延遲10.6.3 睡著延遲10.7 總結(jié)第11章 內(nèi)存與I/O訪問11.1 CPU與內(nèi)存和I/O11.1.1 內(nèi)存空間與I/O空間11.1.2 內(nèi)存管理單元MMU11.2 Linux內(nèi)存管理11.3 內(nèi)存存取11.3.1 用戶空間內(nèi)存動態(tài)申請11.3.2 內(nèi)核空間內(nèi)存動態(tài)申請11.3.3 虛擬地址與物理地址關(guān)系11.4 設(shè)備I/O端口和I/O內(nèi)存的訪問11.4.1 LinuxI/O端口和I/O內(nèi)存訪問接口11.4.2 申請與釋放設(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 DMA11.6.1 DMA與Cache一致性11.6.2 Linux下的DMA編程11.7 總結(jié)第12章 Linux字符設(shè)備驅(qū)動綜合實例12.1 按鍵的設(shè)備驅(qū)動12.1.1 按鍵的硬件原理12.1.2 按鍵驅(qū)動中的數(shù)據(jù)結(jié)構(gòu)12.1.3 按鍵驅(qū)動的模塊加載和卸載函數(shù)12.1.4 按鍵設(shè)備驅(qū)動中斷、定時器處理程序12.1.5 按鍵設(shè)備驅(qū)動的打開、釋放函數(shù)12.1.6 按鍵設(shè)備驅(qū)動讀函數(shù)12.2 觸摸屏的設(shè)備驅(qū)動12.2.1 觸摸屏的硬件原理12.2.2 觸摸屏設(shè)備驅(qū)動中數(shù)據(jù)結(jié)構(gòu)12.2.3 觸摸屏驅(qū)動中的硬件控制12.2.4 觸摸屏驅(qū)動模塊加載和卸載函數(shù)12.2.5 觸摸屏驅(qū)動中斷、定時器處理程序12.2.6 觸摸屏設(shè)備驅(qū)動的打開、釋放函數(shù)12.2.7 觸摸屏設(shè)備驅(qū)動的讀函數(shù)12.2.8 觸摸屏設(shè)備驅(qū)動的輪詢與異步通知12.2.9 Linux輸入子系統(tǒng)12.3 DSPHPI的設(shè)備驅(qū)動12.3.1 HPI接口的硬件原理12.3.2 HPI接口設(shè)備驅(qū)動中數(shù)據(jù)結(jié)構(gòu)12.3.3 HPI接口設(shè)備驅(qū)動的讀寫函數(shù)12.4 NVRAM設(shè)備驅(qū)動12.4.1 NVRAM設(shè)備驅(qū)動的數(shù)據(jù)結(jié)構(gòu)12.4.2 NVRAM設(shè)備驅(qū)動的模塊加載與卸載函數(shù)12.4.3 NVRAM設(shè)備驅(qū)動讀寫函數(shù)12.4.4 NVRAM設(shè)備驅(qū)動的seek函數(shù)12.5 看門狗設(shè)備驅(qū)動12.5.1 看門狗硬件原理12.5.2 看門狗驅(qū)動中的數(shù)據(jù)結(jié)構(gòu)12.5.3 看門狗驅(qū)動模塊的加載和卸載函數(shù)12.5.4 看門狗驅(qū)動探測和移除函數(shù)12.5.5 看門狗驅(qū)動的掛起和恢復(fù)函數(shù)12.5.6 看門狗驅(qū)動的打開和釋放函數(shù)12.5.7 看門狗驅(qū)動寫函數(shù)12.6 總結(jié)第3篇 Linux設(shè)備驅(qū)動實例第13章 Linux塊設(shè)備驅(qū)動13.1 塊設(shè)備的I/O操作特點13.2 Linux塊設(shè)備驅(qū)動結(jié)構(gòu)13.2.1 block_device_operations結(jié)構(gòu)體13.2.2 gendisk結(jié)構(gòu)體13.2.3 request與bio結(jié)構(gòu)體13.2.4 塊設(shè)備驅(qū)動注冊與注銷13.3 Linux塊設(shè)備驅(qū)動的模塊加載與卸載13.4 塊設(shè)備的打開與釋放13.5 塊設(shè)備驅(qū)動的ioctl函數(shù)13.6 塊設(shè)備驅(qū)動的I/O請求處理13.6.1 使用請求隊列13.6.2 不使用請求隊列13.7 實例1:RamDisk驅(qū)動13.7.1 RamDisk的硬件原理13.7.2 RamDisk驅(qū)動模塊的加載與卸載13.7.3 RamDisk設(shè)備驅(qū)動block_device_operations及成員函數(shù)13.7.4 RamDiskI/O請求處理13.8 實例2:IDE硬盤設(shè)備驅(qū)動13.8.1 IDE硬盤設(shè)備原理13.8.2 IDE硬盤設(shè)備驅(qū)動的block_device_operations及成員函數(shù)13.8.3 IDE硬盤設(shè)備驅(qū)動的I/O請求處理13.8.4 在內(nèi)核中增加對新系統(tǒng)IDE設(shè)備的支持13.9 總結(jié)第14章 Linux終端設(shè)備驅(qū)動14.1 終端設(shè)備14.2 終端設(shè)備驅(qū)動結(jié)構(gòu)14.3 終端設(shè)備驅(qū)動的初始化與釋放14.3.1 模塊加載與卸載函數(shù)14.3.2 打開與關(guān)閉函數(shù)14.4 數(shù)據(jù)發(fā)送和接收14.5 tty線路設(shè)置14.5.1 線路設(shè)置用戶空間接口14.5.2 tty驅(qū)動的set_termios函數(shù)14.5.3 tty驅(qū)動的tiocmget和tiocmset函數(shù)14.5.4 tty驅(qū)動的ioctl函數(shù)14.6 UART設(shè)備驅(qū)動14.7 S3C2410UART的驅(qū)動實例14.7.1 S3C2410串口硬件描述14.7.2 S3C2410串口驅(qū)動的數(shù)據(jù)結(jié)構(gòu)14.7.3 S3C2410串口驅(qū)動的初始化與釋放14.7.4 S3C2410串口數(shù)據(jù)收發(fā)14.7.5 S3C2410串口線路設(shè)置14.8 總結(jié)第15章 Linux的I2C核心、總線與設(shè)備驅(qū)動15.1 Linux的I2C體系結(jié)構(gòu)15.2 LinuxI2C核心15.3 LinuxI2C總線驅(qū)動15.3.1 I2C適配器驅(qū)動加載與卸載15.3.2 I2C總線通信方法15.4 LinuxI2C設(shè)備驅(qū)動15.4.1 LinuxI2C設(shè)備驅(qū)動的模塊加載與卸載15.4.2 LinuxI2C設(shè)備驅(qū)動的i2c_driver成員函數(shù)15.4.3 LinuxI2C設(shè)備驅(qū)動的文件操作接口15.4.4 Linux的i2c-dev.c文件分析15.5 S3C2410I2C總線驅(qū)動實例15.5.1 S3C2410I2C控制器硬件描述15.5.2 S3C2410I2C總線驅(qū)動總體分析15.5.3 S3C2410I2C適配器驅(qū)動的模塊加載與卸載15.5.4 S3C2410I2C總線通信方法15.6 SAA7113H視頻AD芯片的I2C設(shè)備驅(qū)動實例15.6.1 SAA7113H視頻AD芯片硬件描述15.6.2 SAA7113H視頻AD芯片驅(qū)動的模塊加載與卸載15.6.3 SAA7113H設(shè)備驅(qū)動的i2c_driver成員函數(shù)15.7 總結(jié)第16章 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動16.1 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動的結(jié)構(gòu)16.1.1 網(wǎng)絡(luò)協(xié)議接口層16.1.2 網(wǎng)絡(luò)設(shè)備接口層16.1.3 設(shè)備驅(qū)動功能層16.1.4 網(wǎng)絡(luò)設(shè)備與媒介層16.2 網(wǎng)絡(luò)設(shè)備驅(qū)動的注冊與注銷16.3 網(wǎng)絡(luò)設(shè)備的初始化16.4 網(wǎng)絡(luò)設(shè)備的打開與釋放16.5 數(shù)據(jù)發(fā)送流程16.6 數(shù)據(jù)接收流程16.7 網(wǎng)絡(luò)連接狀態(tài)16.8 參數(shù)設(shè)置和統(tǒng)計數(shù)據(jù)16.9 CS8900網(wǎng)卡設(shè)備驅(qū)動實例16.9.1 CS8900網(wǎng)卡硬件描述16.9.2 CS8900網(wǎng)卡驅(qū)動設(shè)計分析16.9.3 CS8900網(wǎng)卡注冊、初始化與注銷16.9.4 CS8900網(wǎng)卡發(fā)送數(shù)據(jù)流程16.9.5 CS8900網(wǎng)卡接收數(shù)據(jù)流程16.10 總結(jié)第17章 Linux音頻設(shè)備驅(qū)動17.1 數(shù)字音頻設(shè)備17.2 音頻設(shè)備硬件接口17.2.1 PCM接口17.2.2 IIS接口17.2.3 AC97接口17.3 LinuxOSS音頻設(shè)備驅(qū)動17.3.1 OSS驅(qū)動的組成17.3.2 mixer接口17.3.3 dsp接口17.3.4 OSS用戶空間編程17.4 LinuxALSA音頻設(shè)備驅(qū)動17.4.1 ALSA的組成17.4.2 card和組件管理17.4.3 PCM設(shè)備17.4.4 控制接口17.4.5 AC97API接口17.4.6 ALSA用戶空間編程17.5 S3C2410+UDA1341OSS驅(qū)動實例17.5.1 S3C2410與UDA1341接口硬件描述17.5.2 注冊dsp和mixer接口17.5.3 mixer接口的I/O控制函數(shù)17.5.4 dsp接口音頻數(shù)據(jù)傳輸17.6 SA1100+UDA1341ALSA驅(qū)動實例17.6.1 card注冊與注銷17.6.2 PCM設(shè)備的實現(xiàn)17.6.3 控制接口的實現(xiàn)17.7 PXA255+AC97ALSA驅(qū)動實例17.8 總結(jié)第18章 LCD設(shè)備驅(qū)動18.1 LCD硬件原理18.2 幀緩沖18.2.1 幀緩沖的概念18.2.2 顯示緩沖區(qū)與顯示點18.2.3 Linux幀緩沖相關(guān)數(shù)據(jù)結(jié)構(gòu)與函數(shù)18.3 Linux幀緩沖設(shè)備驅(qū)動結(jié)構(gòu)18.4 幀緩沖設(shè)備驅(qū)動的模塊加載與卸載函數(shù)18.5 幀緩沖設(shè)備顯示緩沖區(qū)的申請與釋放18.6 幀緩沖設(shè)備的參數(shù)設(shè)置18.6.1 定時參數(shù)18.6.2 像素時鐘18.6.3 顏色位域18.6.4 固定參數(shù)18.7 幀緩沖設(shè)備驅(qū)動的fb_ops成員函數(shù)18.8 LCD設(shè)備驅(qū)動的讀寫、mmap和ioctl函數(shù)18.9 幀緩沖設(shè)備的用戶空間訪問18.10 Linux圖形用戶界面18.10.1 Qt-X11/QtEmbedded/Qtopia18.10.2 Microwindows/Nano-X18.10.3 MiniGUI18.11 實例:S3C2410LCD設(shè)備驅(qū)動18.11.1 S3C2410LCD控制器硬件描述18.11.2 S3C2410LCD驅(qū)動的模塊加載與卸載函數(shù)18.11.3 S3C2410LCD驅(qū)動的探測與移除函數(shù)18.11.4 S3C2410LCD驅(qū)動掛起與恢復(fù)函數(shù)18.11.5 S3C2410LCD驅(qū)動的fb_ops成員函數(shù)18.12 總結(jié)第19章 Flash設(shè)備驅(qū)動19.1 LinuxFlash驅(qū)動結(jié)構(gòu)19.1.1 LinuxMTD系統(tǒng)層次19.1.2 LinuxMTD系統(tǒng)接口19.1.3 MTD用戶空間編程19.2 NORFlash驅(qū)動19.3 NANDFlash驅(qū)動19.4 NORFlash驅(qū)動實例:S3C2410外圍的NORFlash驅(qū)動19.5 NANDFlash驅(qū)動實例:S3C2410外圍的NANDFlash驅(qū)動19.5.1 S3C2410NAND控制器硬件描述19.5.2 nand_chip初始化和成員函數(shù)19.5.3 NAND設(shè)備驅(qū)動初始化與釋放19.6 Flash文件系統(tǒng)的建立19.6.1 Flash轉(zhuǎn)換層19.6.2 CramFS19.6.3 JFFS/JFFS219.6.4 YAFFS/YAFFS219.7 總結(jié)第20章 USB主機(jī)與設(shè)備驅(qū)動20.1 LinuxUSB驅(qū)動層次20.1.1 主機(jī)側(cè)與設(shè)備側(cè)USB驅(qū)動20.1.2 設(shè)備、配置、接口、端點20.2 USB主機(jī)驅(qū)動20.2.1 USB主機(jī)驅(qū)動的整體結(jié)構(gòu)20.2.2 實例:S3C2410USB主機(jī)驅(qū)動20.3 USB設(shè)備驅(qū)動20.3.1 USB設(shè)備驅(qū)動整體結(jié)構(gòu)20.3.2 USB請求塊(URB)20.3.3 探測和斷開函數(shù)20.3.4 USB骨架程序20.4 USB設(shè)備驅(qū)動實例20.4.1 USB串口驅(qū)動20.4.2 USB鍵盤驅(qū)動20.5 總結(jié)第21章 PCI設(shè)備驅(qū)動21.1 PCI總線與配置空間21.1.1 PCI總線的Linux描述21.1.2 PCI設(shè)備的Linux描述21.1.3 PCI配置空間訪問21.2 PCI設(shè)備驅(qū)動結(jié)構(gòu)21.2.1 pci_driver結(jié)構(gòu)體21.2.2 PCI設(shè)備驅(qū)動的組成21.2.3 舊版內(nèi)核的PCI設(shè)備探測21.3 實例:Intel810主板聲卡驅(qū)動21.4 總結(jié)第4篇 Linux設(shè)備驅(qū)動測試、移植第22章 Linux設(shè)備驅(qū)動的調(diào)試22.1 Linux開發(fā)環(huán)境建設(shè)22.1.1 實驗室建設(shè)22.1.2 工具鏈22.1.3 串口工具22.2 GDB調(diào)試器用法22.2.1 GDB基本用法22.2.2 DDD圖形界面調(diào)試工具22.3 Linux內(nèi)核調(diào)試22.4 內(nèi)核打印信息-printk()22.5 使用/proc22.6 Oops22.7 監(jiān)視工具22.8 內(nèi)核調(diào)試器22.8.1 kcore22.8.2 KDB22.8.3 KGDB22.9 使用仿真器調(diào)試內(nèi)核22.10 應(yīng)用程序調(diào)試22.11 總結(jié)第23章 Linux設(shè)備驅(qū)動的移植23.1 編寫可移植的設(shè)備驅(qū)動23.1.1 可移植的數(shù)據(jù)類型23.1.2 結(jié)構(gòu)體對界23.1.3 LittleEndian與BigEndian23.1.4 內(nèi)存頁面大小23.2 巧用同類設(shè)備驅(qū)動23.2.1 巧用demo板驅(qū)動23.2.2 巧用類似芯片的驅(qū)動程序23.2.3 借用芯片廠商的范例程序23.3 從Linux2.4移植設(shè)備驅(qū)動到Linux2.623.4 Linux與其他操作系統(tǒng)之間的驅(qū)動移植23.5 總結(jié)參考文獻(xiàn)

編輯推薦

  業(yè)界權(quán)威機(jī)構(gòu)和專家強力推薦,多年培訓(xùn)、研發(fā)經(jīng)驗的總結(jié)?! ≡O(shè)備驅(qū)動程序是嵌入式操作系統(tǒng)的重要模塊,也是難點之一,Linux設(shè)備驅(qū)動程序更以復(fù)雜和繁多而著名,本書的作者集多年授課和開發(fā)的經(jīng)驗,以簡潔的語言和豐富的實例講述了這一技術(shù),深入淺出,值得一讀?! ”本溈颂┸浖夹g(shù)有限公司(BMR)董事長/電子產(chǎn)品世界雜志編委 何小慶  本書有個非常突出的特點——實用,全書以大量實例來引導(dǎo)讀者編寫以及移植Linux設(shè)備驅(qū)動,這些實例是作者多年Linux設(shè)備驅(qū)動開發(fā)從業(yè)經(jīng)驗的總結(jié),讀者一定會從中受益?! ≈袊浖袠I(yè)協(xié)會嵌入式系統(tǒng)分會秘書長郭淳學(xué)  在Linux系統(tǒng)廣泛應(yīng)用、嵌入式系統(tǒng)飛速發(fā)展的今天,Linux沒備驅(qū)動正在、發(fā)揮著越來越大的作用,這本書是學(xué)習(xí)Linux設(shè)備驅(qū)動很好的選擇。  信息產(chǎn)業(yè)部軟件與集成電路促進(jìn)中心(CSIP)教育培訓(xùn)部主任杜廣斌

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Linux設(shè)備驅(qū)動開發(fā)詳解 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7