出版時間:2011-1 出版社:清華大學(xué)出版社 作者:鄭強(qiáng) 頁數(shù):441
Tag標(biāo)簽:無
前言
Linux驅(qū)動程序開發(fā)是當(dāng)前一個非常熱門的領(lǐng)域,大多數(shù)基于Linux操作系統(tǒng)的嵌入式系統(tǒng)都需要編寫驅(qū)動程序。隨著嵌入式系統(tǒng)的廣泛應(yīng)用,出現(xiàn)了越來越多的硬件產(chǎn)品,必須有人不斷地編寫驅(qū)動使設(shè)備在Linux操作系統(tǒng)上工作。但是,Linux驅(qū)動程序開發(fā)相對較難,高水平的開發(fā)人員也比較少,所以導(dǎo)致驅(qū)動程序跟不上硬件發(fā)展的問題。基于這個原因,筆者編寫了本書,希望借助本書能使驅(qū)動程序的開發(fā)更容易被開發(fā)人員所理解,從而迅速高效地開發(fā)出相關(guān)的驅(qū)動程序來。筆者結(jié)合自己多年的Linux驅(qū)動程序開發(fā)經(jīng)驗(yàn)和心得體會,花費(fèi)了一年多的時間寫作本書。希望各位讀者能在本書的引領(lǐng)下跨入Linux驅(qū)動開發(fā)大門,并成為一名驅(qū)動程序丌發(fā)高手。本書結(jié)合大量基礎(chǔ)知識,全面、系統(tǒng)、深入地介紹了Linux驅(qū)動程序開發(fā)技術(shù),并以大量實(shí)例貫穿于全書的講解之中,使讀者對驅(qū)動開發(fā)有一個深入的了解。學(xué)習(xí)完本書后,讀者應(yīng)該可以具備獨(dú)立進(jìn)行驅(qū)動程序開發(fā)的能力。
內(nèi)容概要
本書由淺入深,全面、系統(tǒng)地介紹了Linux驅(qū)動開發(fā)技術(shù),提供了大量實(shí)例供讀者實(shí)戰(zhàn)演練。另外,作者在實(shí)例講解中詳細(xì)分析了各種重要的理論知識,讓讀者能夠舉一反三。本書共分3篇。第1篇介紹了Linux驅(qū)動開發(fā)概述、嵌入式處理器和開發(fā)板、構(gòu)建嵌入式驅(qū)動程序開發(fā)環(huán)境、構(gòu)建嵌入式Linux操作系統(tǒng)、第一個驅(qū)動程序、簡單的字符設(shè)備驅(qū)動程序等內(nèi)容;第2篇介紹了設(shè)備驅(qū)動中的并發(fā)控制、阻塞和同步機(jī)制、中斷與時鐘機(jī)制、內(nèi)存訪問等內(nèi)容;第3篇介紹了設(shè)備驅(qū)動模型、RTC實(shí)時時鐘驅(qū)動程序、看門狗驅(qū)動程序、IIC設(shè)備驅(qū)動程序、LCD設(shè)備驅(qū)動程序、觸摸屏設(shè)備驅(qū)動程序、輸入子系統(tǒng)驅(qū)動程序、塊設(shè)備驅(qū)動程序、LISB設(shè)備驅(qū)動程序等內(nèi)容?! ∽髡邔iT為本書重點(diǎn)內(nèi)容錄制了教學(xué)視頻,以提高讀者的學(xué)習(xí)效率。另外,本書還贈送了大量的Linux拓展學(xué)習(xí)視頻。這些視頻和本書源代碼需要讀者自行下載,下載地址見封面提示。 本書重點(diǎn)突出,涉及面廣,實(shí)用性強(qiáng),從基本知識到核心原理,再到實(shí)例開發(fā),幾乎涉及Linux驅(qū)動開發(fā)的所有重要知識。本書適合所有想學(xué)習(xí)Linux驅(qū)動開發(fā)的入門人員閱讀,也適合作為驅(qū)動工程師的參考書,對于Linux驅(qū)動開發(fā)的專業(yè)開發(fā)人員也有很高的參考價值。
作者簡介
鄭強(qiáng),畢業(yè)于西南大學(xué),獲碩士學(xué)位?,F(xiàn)任公司項(xiàng)目主管,長期從事嵌入式系統(tǒng)開發(fā)和設(shè)計。先后開發(fā)過十幾個大中型項(xiàng)目,涉及GPS定位系統(tǒng)、刷卡系統(tǒng)、指紋識別、手機(jī)等產(chǎn)品。工作之余,熱心于Flash游戲引擎開發(fā)和2D游戲開發(fā)。
書籍目錄
第1篇 Linux驅(qū)動開發(fā)基礎(chǔ) 第1章 Linux驅(qū)動開發(fā)概述 1.1 Linux設(shè)備驅(qū)動的基本概念 1.1.1 設(shè)備驅(qū)動程序概述 1.1.2 設(shè)備驅(qū)動程序的作用 1.1.3 設(shè)備驅(qū)動的分類 1.2 Linux操作系統(tǒng)與驅(qū)動的關(guān)系 1.3 Linux驅(qū)動程序開發(fā) 1.3.1 用戶態(tài)和內(nèi)核態(tài) 1.3.2 模塊機(jī)制 1.3.3 編寫設(shè)備驅(qū)動程序需要了解的知識 1.4 編寫設(shè)備驅(qū)動程序的注意事項(xiàng) 1.4.1 應(yīng)用程序開發(fā)與驅(qū)動程序開發(fā)的差異 1.4.2 GUNC開發(fā)驅(qū)動程序 1.4.3 不能使用C庫開發(fā)驅(qū)動程序 1.4.4 沒有內(nèi)存保護(hù)機(jī)制 1.4.5 小內(nèi)核棧 1.4.6 重視可移植性 1.5 Linux驅(qū)動的發(fā)展趨勢 1.5.1 Linux驅(qū)動的發(fā)展 1.5.2 驅(qū)動的應(yīng)用 1.5.3 相關(guān)學(xué)習(xí)資源 1.6 小結(jié) 第2章 嵌入式處理器和開發(fā)板簡介 2.1 處理器的選擇 2.1.1 處理器簡述 2.1.2 處理器的種類 2.2 ARM處理器 2.2.1 A剛處理器簡介 2.2.2 ARM處理器系列 2.2.3 ARM處理器的應(yīng)用 2.2.4 ARM處理器的選型 2.2.5 ARM處理器選型舉例 2.3 S3C2440開發(fā)板 2.3.1 S3C2440開發(fā)板簡介 2.3.2 S32440開發(fā)板的特性 2.4 小結(jié) 第3章 構(gòu)建嵌入式驅(qū)動程序開發(fā)環(huán)境 3.1 虛擬機(jī)和Linux安裝 3.1.1 在windows上安裝虛擬機(jī) 3.1.2 在虛擬機(jī)上安裝Linux 3.1.3 設(shè)置共享目錄 3.2 代碼閱讀工具Sorece Insight 3.2.1 Source Insighl簡介 3.2.2 閱讀源代碼 3.3 小結(jié) 第4章 構(gòu)建嵌入式Linux操作系統(tǒng) 第5章 構(gòu)建第一個驅(qū)動程序 第6章 簡單的字符設(shè)備驅(qū)動程序第2篇 Linux驅(qū)動開發(fā)核心技術(shù)第3篇 Linux驅(qū)動開發(fā)實(shí)用實(shí)戰(zhàn)
章節(jié)摘錄
插圖:Linux操作系統(tǒng)分為用戶態(tài)和內(nèi)核態(tài)。用戶態(tài)處理上層的軟件工作。內(nèi)核態(tài)用來管理用戶態(tài)的程序,完成用戶態(tài)請求的工作。驅(qū)動程序與底層的硬件交互,所以工作在內(nèi)核態(tài)。Linux操作系統(tǒng)分為兩個狀態(tài)的原因主要是,為應(yīng)用程序提供一個統(tǒng)一的計算機(jī)硬件抽象。工作在用戶態(tài)的應(yīng)用程序完全可以不考慮底層的硬件操作,這些操作南內(nèi)核態(tài)程序來完成。這些內(nèi)核態(tài)程序大部分是設(shè)備驅(qū)動程序。一個好的操作系統(tǒng)的驅(qū)動程序?qū)τ脩魬B(tài)應(yīng)用程序應(yīng)該是透明的,也就是說,應(yīng)用程序可以在不了解硬件工作原理的情況下,很好地操作硬件設(shè)備,同時不會使硬件設(shè)備進(jìn)入非法狀態(tài)。Linux操作系統(tǒng)很好的做到了這一點(diǎn)。一個值得注意的問題是:工作在用戶態(tài)的應(yīng)用程序不能因?yàn)橐恍╁e誤而破壞內(nèi)核態(tài)的程序?,F(xiàn)代處理器已經(jīng)充分考慮了這個問題。處理器提供了一些指令,分為特權(quán)指令和普通指令。特權(quán)指令只有在內(nèi)核態(tài)下才能使用;普通指令既可以在內(nèi)核態(tài)使用,也可以在用戶態(tài)使用。通過這種限制,用戶態(tài)程序就不能執(zhí)行只有在用戶態(tài)才能執(zhí)行的程序了,從而起到保護(hù)的作用。另一個值得注意的問題是:用戶態(tài)和內(nèi)核態(tài)是可以互相轉(zhuǎn)換的。每當(dāng)應(yīng)用程序執(zhí)行系統(tǒng)調(diào)用或者被硬件中斷掛起時,Linux操作系統(tǒng)都會從用戶態(tài)切換到內(nèi)核態(tài)。當(dāng)系統(tǒng)調(diào)用完成或者中斷處理完成后,操作系統(tǒng)會從內(nèi)核態(tài)返回用戶態(tài),繼續(xù)執(zhí)行應(yīng)用程序。
編輯推薦
《Linux驅(qū)動開發(fā)入門與實(shí)戰(zhàn)》結(jié)合多媒體語音教學(xué)視頻,全面、系統(tǒng)地介紹了Linux.備驅(qū)動開發(fā)從入門到應(yīng)用實(shí)戰(zhàn)的方方面面知識。內(nèi)容涵蓋Linux設(shè)備驅(qū)動開發(fā)的基礎(chǔ)知識、核心技術(shù)及RTC實(shí)時時鐘驅(qū)動、看門狗驅(qū)動、IIC設(shè)備驅(qū)動、LCD設(shè)備驅(qū)動、觸摸屏設(shè)備驅(qū)動、輸入子系統(tǒng)驅(qū)動、塊設(shè)備驅(qū)動、USB設(shè)備驅(qū)動的開發(fā)過程、通過閱讀《Linux驅(qū)動開發(fā)入門與實(shí)戰(zhàn)》,可以系統(tǒng)地掌握Linux設(shè)備驅(qū)動程序的開發(fā)方法。ChinaUnix.net技術(shù)社區(qū)對本系列圖書的支持!ChinaUnix.net是一個以討論操作系統(tǒng)、軟件開發(fā)、數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)技術(shù)及服務(wù)器存儲等技術(shù)為主的大型IT技術(shù)社區(qū)網(wǎng)站,ChinaUnix.net的宗旨是。給所有愛好IT技術(shù)、開源技術(shù)的朋友提供一個自由、開放和免費(fèi)的交流空間。ChinaUnix.net的目標(biāo)是建成中國最好的開源技術(shù)共享社區(qū),為宣傳和推動開源技術(shù)及自由軟件在中國的應(yīng)用發(fā)展做出貢獻(xiàn)。由淺入深,全面、系統(tǒng)地介紹Linux驅(qū)動開發(fā)的基礎(chǔ)與核心技術(shù)注重實(shí)戰(zhàn),重點(diǎn)闡述8種典型的Linux設(shè)備驅(qū)動程序的開發(fā)方法內(nèi)容新穎:基于最新的Linux26.29內(nèi)核,講解最新的驅(qū)動設(shè)計方法內(nèi)容全面:覆蓋Linux驅(qū)動開發(fā)的基礎(chǔ)知識、核心技術(shù)與典型應(yīng)用分析深入:深入分析了Linux驅(qū)動的實(shí)現(xiàn)原理,提高讀者的綜合能力注重實(shí)戰(zhàn):介紹了看門狗、LCD、觸摸屏等8種設(shè)備的驅(qū)動開發(fā)方法技巧性強(qiáng):講解時融入了作者多年的項(xiàng)目開發(fā)經(jīng)驗(yàn)和開發(fā)技
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Linux驅(qū)動開發(fā)入門與實(shí)戰(zhàn) PDF格式下載