出版時(shí)間:2010-11 出版社:人民郵電 作者:宋寶華 頁(yè)數(shù):632
Tag標(biāo)簽:無(wú)
前言
本書第l版在2008年初出版以后,受到廣大讀者的支持和厚愛(ài),從幾年的市場(chǎng)和讀者反饋看,在第1版中還存在一些不足,主要是以下幾方面。沒(méi)有現(xiàn)成的開(kāi)發(fā)環(huán)境,讀者需要從頭到尾構(gòu)建,而構(gòu)建需要花費(fèi)很長(zhǎng)的時(shí)間,許多時(shí)候會(huì)不成功,加之配套光盤中的實(shí)例沒(méi)有。Makefile,更加大了操作的難度。沒(méi)有配套的開(kāi)發(fā)板,大量的基于S3C2410的實(shí)例讀者身邊如果沒(méi)有可以直接運(yùn)行的平臺(tái),就無(wú)法親身體驗(yàn)這些驅(qū)動(dòng)。個(gè)別內(nèi)容實(shí)用性不強(qiáng)或過(guò)于陳舊,也有個(gè)別知識(shí)點(diǎn)的講解語(yǔ)言晦澀,讀者不易理解,如platform驅(qū)動(dòng)。一些知識(shí)點(diǎn)內(nèi)容不夠完整,如input驅(qū)動(dòng)、USB UDC和gadget驅(qū)動(dòng)、SPI驅(qū)動(dòng)、ASOC驅(qū)動(dòng)等。鑒于此,作者針對(duì)以上問(wèn)題對(duì)第1版內(nèi)容進(jìn)行修訂,推出了第2版。新版中對(duì)全書超過(guò)40%的內(nèi)容進(jìn)行了修訂。這些修訂,一些是對(duì)過(guò)時(shí)內(nèi)容的刪除,一些是對(duì)講解不清的知識(shí)點(diǎn)的修正,一些是對(duì)重點(diǎn)內(nèi)容的增強(qiáng),一些則是有用知識(shí)點(diǎn)的增加,其目的是為讀者提供一套更加準(zhǔn)確和完整的全方位、立體式IAnux設(shè)備驅(qū)動(dòng)學(xué)習(xí)平臺(tái)。第2版相對(duì)第l版的主要改動(dòng)如下。
內(nèi)容概要
本書是一本介紹linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)理論、框架與實(shí)例的書,本書基于ldd6410開(kāi)發(fā)板,以linux 2.6版本內(nèi)核為藍(lán)本,詳細(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ù)架構(gòu)和函數(shù)的關(guān)系,并講解了linux驅(qū)動(dòng)開(kāi)發(fā)的大量實(shí)例,使讀者能夠獨(dú)立開(kāi)發(fā)各類linux設(shè)備驅(qū)動(dòng)。 本書內(nèi)容全面,實(shí)例豐富,操作性強(qiáng),語(yǔ)言通俗易懂,適合廣大linux開(kāi)發(fā)人員、嵌入式工程師參考使用。
書籍目錄
第1篇 Linux設(shè)備驅(qū)動(dòng)入門 第1章 Linux設(shè)備驅(qū)動(dòng)概述及開(kāi)發(fā)環(huán)境構(gòu)建 1.1 設(shè)備驅(qū)動(dòng)的作用輔 1.2 無(wú)操作系統(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)開(kāi)發(fā)環(huán)境構(gòu)建 1.5.1 PC上的Linux環(huán)境 1.5.2 LDD6410開(kāi)發(fā)板 1.5.3 工具鏈安裝 1.5.4 主機(jī)端nfs和trip服務(wù)安裝 1.5.5 源代碼閱讀和編輯 1.6 設(shè)備驅(qū)動(dòng)Hello World:LED驅(qū)動(dòng) 1.6.1 無(wú)操作系統(tǒng)時(shí)的LED驅(qū)動(dòng) 1.6.2 Linux下的LED驅(qū)動(dòng) 1.7 全書結(jié)構(gòu) 第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 12C 2.3.3 USB 2.3.4 以太網(wǎng)接口 2.3.5 ISA 2.3.6 PCI和cPCI 2.4 CPLD和FPGA 2.5 原理圖分析 2.5.1 原理圖分析的內(nèi)容 2.5.2 原理圖的分析方法 2.6 硬件時(shí)序分析 2.6.1 時(shí)序分析的概念 2.6.2 典型硬件時(shí)序 2.7 芯片手冊(cè)閱讀方法 2.8 儀器儀表使用 2.8.1 萬(wàn)用表 2.8.2 示波器 2.8.3 邏輯分析儀 2.9 總結(jié) 第3章 Unttx內(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 Kconfi9和Makefile 3.4.3 Linux內(nèi)核的引導(dǎo) 3.5 Linux下的C編程特點(diǎn) 3.5.1 Linux編碼風(fēng)格 3.5.2 GNUC與ANSIC 3.5.3 do{}while(O) ……第2篇 Linux設(shè)備驅(qū)動(dòng)核心理論第3篇 Linux設(shè)備驅(qū)動(dòng)實(shí)例第4篇 Linux設(shè)備驅(qū)動(dòng)調(diào)試、移植參考文獻(xiàn)
章節(jié)摘錄
插圖:任何一個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)轉(zhuǎn)都是系統(tǒng)中軟硬件共同作用的結(jié)果,沒(méi)有硬件的軟件是空中樓閣,而沒(méi)有軟件的硬件則只是一堆廢鐵。硬件是底層基礎(chǔ),是所有軟件得以運(yùn)行的平臺(tái),代碼最終會(huì)落實(shí)為硬件上的組合邏輯與時(shí)序邏輯。軟件則實(shí)現(xiàn)了具體應(yīng)用,它按照各種不同的業(yè)務(wù)需求而設(shè)計(jì),完成了用戶的最終訴求。硬件較固定,軟件則很靈活,可以適應(yīng)各種復(fù)雜多變的應(yīng)用??梢哉f(shuō),計(jì)算機(jī)系統(tǒng)的軟硬件互相成就了對(duì)方。但是,軟硬件之間同樣存在著悖論,那就是軟件和硬件不應(yīng)該互相滲透入對(duì)方的領(lǐng)地。為盡可能快速地完成設(shè)計(jì),應(yīng)用軟件工程師不想也不必關(guān)心硬件,而硬件工程師也難有足夠的閑暇和能力來(lái)顧及軟件。譬如,應(yīng)用軟件工程師在調(diào)用套接字發(fā)送和接收數(shù)據(jù)包的時(shí)候,不必關(guān)心網(wǎng)卡上的中斷、寄存器、存儲(chǔ)空間、I/0端口、片選以及其他任何硬件詞匯。在使用Printfo函數(shù)輸出信息的時(shí)候,他不用知道底層究竟是怎樣把相應(yīng)的信息輸出到屏幕或者串口。也就是說(shuō),應(yīng)用軟件工程師需要看到一個(gè)沒(méi)有硬件的純粹的軟件世界,硬件必須被透明地呈現(xiàn)給他。誰(shuí)來(lái)實(shí)現(xiàn)硬件對(duì)應(yīng)用軟件工程師的隱形?這個(gè)光榮而艱巨的任務(wù)就落在了驅(qū)動(dòng)工程師的頭上。對(duì)設(shè)備驅(qū)動(dòng)最通俗的解釋就是“驅(qū)使硬件設(shè)備行動(dòng)”。驅(qū)動(dòng)與底層硬件直接打交道,按照硬件設(shè)備的具體工作方式,讀寫設(shè)備的寄存器,完成設(shè)備的輪詢、中斷處理、DMA通信,進(jìn)行物理內(nèi)存向虛擬內(nèi)存的映射等,最終讓通信設(shè)備能收發(fā)數(shù)據(jù),讓顯示設(shè)備能顯示文字和畫面,讓存儲(chǔ)設(shè)備能記錄文件和數(shù)據(jù)。
媒體關(guān)注與評(píng)論
設(shè)備驅(qū)動(dòng)程序是嵌入式操作系統(tǒng)的重要模塊,也是難點(diǎn)之一,Linux設(shè)備驅(qū)動(dòng)程序更以復(fù)雜和繁多而著名,本書的作者集多年授課和開(kāi)發(fā)的經(jīng)驗(yàn),以簡(jiǎn)潔的語(yǔ)言和豐富的實(shí)例講述了這一技術(shù),深入淺出,值得一讀?! 涡c(北京麥克泰軟件技術(shù)有限公司董事長(zhǎng))“點(diǎn)亮LED”,寥寥幾行代碼,你可以做到。本書從簡(jiǎn)單入手,循序漸進(jìn)。那些難以觸及的理淪,如并發(fā)控制、中斷、內(nèi)存映射等,在階梯式的代碼疊加中被你逐步掌握。熟悉硬件規(guī)范后,你只需一步步按框架實(shí)踐,便可開(kāi)發(fā)出一個(gè)USB沒(méi)備驅(qū)動(dòng)。 ——陳莉君(西安郵電學(xué)院教授)本書系統(tǒng)講述了Linux內(nèi)核驅(qū)動(dòng)的支撐技術(shù),涉及內(nèi)核編程方式、內(nèi)核模塊、設(shè)備文件系統(tǒng)、同步互斥機(jī)制等。本書針對(duì)具體硬件的真實(shí)外沒(méi),結(jié)合實(shí)際外設(shè)的硬件邏輯,講解了常見(jiàn)類型驅(qū)動(dòng)程序的編寫方法和實(shí)現(xiàn)細(xì)節(jié)。對(duì)廣大Linux愛(ài)好者而言,是一本值得推薦的好書?! 愑澹ㄇ迦A大學(xué)副教授)本書有一個(gè)非常突出的特點(diǎn)——實(shí)用,全書以大量實(shí)例來(lái)引導(dǎo)讀者編寫以及移植Linux沒(méi)備驅(qū)動(dòng),這些實(shí)例是作者多年Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)從業(yè)經(jīng)驗(yàn)的總結(jié),讀者一定會(huì)從中受益?! 緦W(xué)(中國(guó)軟件行業(yè)學(xué)會(huì)嵌入式系統(tǒng)分會(huì)副理事長(zhǎng)兼秘書長(zhǎng))在Linux內(nèi)核源代碼樹的各個(gè)子系統(tǒng)中,設(shè)備驅(qū)動(dòng)是最大的一個(gè)子樹分支,目前最新的Linux內(nèi)核支持70多種沒(méi)備驅(qū)動(dòng)家族。Linux下的驅(qū)動(dòng)編程…一直被認(rèn)為是一門藝術(shù),本書是通往Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)殿堂的鑰匙。 ——史應(yīng)生(紅帽專家服務(wù)團(tuán)隊(duì)資深咨詢顧問(wèn),RHCA、RHCSS中國(guó)第一人)設(shè)備驅(qū)動(dòng)是操作系統(tǒng)最具多樣性和復(fù)雜性的部分。回想嵌入式系統(tǒng)教學(xué)之初,我?guī)缀踬I遍了市面上的0inux圖書也沒(méi)有找到一一個(gè)模塊化驅(qū)動(dòng)的開(kāi)發(fā)實(shí)例。本書語(yǔ)言通俗易懂,結(jié)構(gòu)清晰,作者有豐富的培訓(xùn)和開(kāi)發(fā)經(jīng)驗(yàn),是國(guó)內(nèi)少有的驅(qū)動(dòng)程序開(kāi)發(fā)專著。馬忠梅(北京理工大學(xué)副教授)如果說(shuō)硬件是系統(tǒng)的軀體,軟件是系統(tǒng)的靈魂,驅(qū)動(dòng)就是連接軀體和靈魂的紐帶,是系統(tǒng)運(yùn)轉(zhuǎn)的樞紐。本書旨在引導(dǎo)讀者,消除讀者對(duì)驅(qū)動(dòng)開(kāi)發(fā)的神秘感,同時(shí)也指出了老手常見(jiàn)的盲點(diǎn)與誤區(qū)。更難得的是,本書通過(guò)大蔚開(kāi)發(fā)實(shí)例生動(dòng)、系統(tǒng)地講解了Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的方方面面?! 蜣r(nóng)(電子工程世界總編)
編輯推薦
《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解(第2版)》:暢銷3年,內(nèi)容全面升級(jí)、業(yè)界權(quán)威機(jī)構(gòu)和專家強(qiáng)力推薦、多年培訓(xùn)、研發(fā)經(jīng)驗(yàn)的總結(jié)。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解 PDF格式下載