發表於2024-12-14
Linux驅動開發入門與實戰(第2版) pdf epub mobi txt 電子書 下載
備受推崇的Linux經典圖書全麵升級,ChinaUnix社區鼎力推薦
全麵、係統介紹Linux驅動開發的基礎與核心技術,注重實戰,重點闡述8種典型的設備驅動的開發方法
內容新穎:基於當前流行的Linux2.6.34內核,講解新的驅動設計方法
內容全麵:涵蓋Linux驅動開發的基礎知識、核心技術與典型應用
講解詳細:結閤典型開發實例與案例講解各個知識點,並力求詳盡和透徹
注重實戰:介紹瞭看門狗、LCD、觸摸屏等8種典型設備的驅動開發方法
技巧性強:講解時融入瞭作者多年的項目開發經驗和實戰技巧
“Linux典藏大係”自2010年陸續齣版以來,因其內容豐富、講解細膩、通俗易懂和實用性強等特色而深受廣大讀者的喜愛,長期位居同類圖書銷售排行榜的前列,纍計銷量近10萬冊。叢書中部分圖書榮獲51CTO讀書頻道“受讀者喜愛的原創IT技術圖書奬”,還有多種圖書的中文繁體字版權輸齣到瞭中國颱灣地區齣版發行。叢書中的多個品種被國內幾十所培訓機構和大中專院校選為教材。叢書的齣版還得到瞭國內Linux領域知名的技術社區ChinaUnix的大力支持。讀者在ChinaUnix社區的論壇上與社區中的Linux愛好者進行瞭廣泛的交流,取得瞭良好的學習效果。2014年2月“Linux典藏大係“全新升級版(第2版)正式齣版,第2版圖書迎閤瞭Linux技術的發展,全部采用當前流行和穩定的Linux發行版或者相關工具,是Linux愛好者學習Linux的好幫手。
《Linux典藏大係:Linux驅動開發入門與實戰(第2版)》是獲得瞭大量讀者好評的“Linux典藏大係”中的《Linux驅動開發入門與實戰》的第2版。本.書由淺入深,全麵、係統地介紹瞭Linux驅動開發技術,並提供瞭大量實例供讀者實戰演練。另外,作者在實例講解中詳細分析瞭各種重要的理論知識,讓讀者能夠舉一反三。
《Linux典藏大係:Linux驅動開發入門與實戰(第2版)》共分3篇。第1篇介紹瞭Linux驅動開發概述、嵌入式處理器和開發闆簡介、構建嵌入式驅動程序開發環境、構建嵌入式Linux操作係統、構建一個驅動程序、簡單的字符設備驅動程序等內容;第2篇介紹瞭設備驅動中的並發控製、設備驅動中的阻塞和同步機製、中斷與時鍾機製、內外存訪問等內容;第3篇介紹瞭設備驅動模型、RTC實時時鍾驅動程序、看門狗驅動程序、IIC設備驅動程序、LCD設備驅動程序、觸摸屏設備驅動程序、輸入子係統設計、塊設備驅動程序、USB設備驅動程序等內容。
《Linux典藏大係:Linux驅動開發入門與實戰(第2版)》重點突齣,涉及麵廣,實用性強,從基本知識到核心原理,再到實例開發,幾乎涉及Linux驅動開發的所有重要知識。《Linux典藏大係:Linux驅動開發入門與實戰(第2版)》適閤所有想學習Linux驅動開發的入門人員閱讀,也適閤作為驅動工程師的參考書,對於Linux驅動開發的專業開發人員也有很高的參考價值。
鄭強,畢業於西南大學,獲碩士學位。長期從事嵌入式係統開發和設計。現任職於某公司的項目主管,先後開發過十幾個大中型項目,涉及GPS定位係統、刷卡係統、指紋識彆和手機等産品。工作之餘,熱心於Flash遊戲引擎開發和2D遊戲開發。
第1篇 Linux驅動開發基礎
第1章 Linux驅動開發概述
1.1 Linux設備驅動的基本概念
1.1.1 設備驅動程序概述
1.1.2 設備驅動程序的作用
1.1.3 設備驅動的分類
1.2 Linux操作係統與驅動的關係
1.3 Linux驅動程序開發
1.3.1 用戶態和內核態
1.3.2 模塊機製
1.3.3 編寫設備驅動程序需要瞭解的知識
1.4 編寫設備驅動程序的注意事項
1.4.1 應用程序開發與驅動程序開發的差異
1.4.2 GUNC開發驅動程序
1.4.3 不能使用C庫開發驅動程序
1.4.4 沒有內存保護機製
1.4.5 小內核棧
1.4.6 重視可移植性
1.5 Linux驅動的發展趨勢
1.5.1 Linux驅動的發展
1.5.2 驅動的應用
1.5.3 相關學習資源
1.6 小結
第2章 嵌入式處理器和開發闆簡介
2.1 處理器的選擇
2.1.1 處理器簡述
2.1.2 處理器的種類
2.2 ARM處理器
2.2.1 ARM處理器簡介
2.2.2 ARM處理器係列
2.2.3 ARM處理器的應用
2.2.4 ARM處理器的選型
2.2.5 ARM處理器選型舉例
2.3 S3C2440開發闆
2.3.1 S3C2440開發闆簡介
2.3.2 S3C2440開發闆的特性
2.3.3 其他開發闆
2.4 小結
第3章 構建嵌入式驅動程序開發環境
3.1 虛擬機和Linux安裝
3.1.1 在Windows上安裝虛擬機
3.1.2 在虛擬機上安裝Linux
3.1.3 設置共享目錄
3.2 代碼閱讀工具SourceInsight
3.2.1 Sourcelnsight簡介
3.2.2 閱讀源代碼
3.3 小結
第4章 構建嵌入式Linux操作係統
4.1 Linux操作係統的介紹
4.1.1 Linux操作係統
4.1.2 Linux操作係統的優點
4.2 Linux內核子係統
4.2.1 進程管理
4.2.2 內存管理
4.2.3 文件係統
4.2.4 設備管理
4.2.5 網絡功能
4.3 Linux源代碼結構分析
4.3.1 arch目錄
4.3.2 drivers目錄
4.3.3 fs目錄
4.3.4 其他目錄
4.4 內核配置選項
4.4.1 配置編譯過程
4.4.2 常規配置
4.4.3 模塊配置
4.4.4 塊設備層配置
4.4.5 CPU類型和特性配置
4.4.6 電源管理配置
4.4.7 總綫配置
4.4.8 網絡配置
4.4.9 設備驅動配置
4.4.10 文件係統配置
4.5 嵌入式文件係統基礎知識
4.5.1 嵌入式文件係統
4.5.2 嵌入式係統的存儲介質
4.5.3 JFFS文件係統
4.5.4 YAFFS文件係統
4.6 構建根文件係統
4.6.1 根文件係統概述
4.6.2 Linux根文件係統目錄結構
4.6.3 BusyBox構建根文件係統
4.7 小結
第5章 構建第一個驅動程序
5.1 開發環境配置之內核升級
5.1.1 為什麼升級內核
5.1.2 內核升級
5.1.3 make menconfig的注意事項
5.2 Hello World驅動程序
5.2.1 驅動模塊的組成
5.2.2 Hello World模塊
5.2.3 編譯Hello World模塊
5.2.4 模塊的操作
5.2.5 Hello World模塊加載後文件係統的變化
5.3 模塊參數和模塊之間通信
5.3.1 模塊參數
5.3.2 模塊的文件格式ELF
5.3.3 模塊之間的通信
5.3.4 模塊之間的通信實例
5.4 將模塊加入內核
5.4.1 嚮內核添加模塊
5.4.2 Kconfig
5.4.3 Kconfig的語法
5.4.4 應用實例:在內核中新增加add_sub模塊
5.4.5 對add_sub模塊進行配置
5.5 小結
第6章 簡單的字符設備驅動程序
6.1 字符設備驅動程序框架
6.1.1 字符設備和塊設備
6.1.2 主設備號和次設備號
6.1.3 申請和釋放設備號
6.2 初識cdev結構
6.2.1 cdev結構體
6.2.2 file_operations結構體
6.2.3 cdev和file_operations結構體的關係
6.2.4 inode結構體 102
6.3 字符設備驅動的組成 103
6.3.1 字符設備加載和卸載函數 103
6.3.2 file_operations結構體和其成員函數
6.3.3 驅動程序與應用程序的數據交換
6.3.4 字符設備驅動程序組成小結
6.4 VirtualDisk字符設備驅動
6.4.1 VirtualDisk的頭文件、宏和設備結構體
6.4.2 加載和卸載驅動程序
6.4.3 cdev的初始化和注冊
6.4.4 打開和釋放函數
6.4.5 讀寫函數
6.4.6 seek()函數
6.4.7 ioctl()函數
6.5 小結
第2篇 Linux驅動開發核心技術
第7章 設備驅動中的並發控製
7.1 並發與競爭
7.2 原子變量操作
7.2.1 原子變量操作
7.2.2 原子整型操作
7.2.3 原子位操作
7.3 自鏇鎖
7.3.1 自鏇鎖概述
7.3.2 自鏇鎖的使用
7.3.3 自鏇鎖的使用注意事項
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.6 小結
第8章 設備驅動中的阻塞和同步機製
8.1 阻塞和非阻塞
8.2 等待隊列
8.2.1 等待隊列概述
8.2.2 等待隊列的實現
8.2.3 等待隊列的使用
8.3 同步機製實驗
8.3.1 同步機製設計
8.3.2 實驗驗證
8.4 小結
第9章 中斷與時鍾機製
9.1 中斷簡述
9.1.1 中斷的概念
9.1.2 中斷的宏觀分類
9.1.3 中斷産生的位置分類
9.1.4 同步和異步中斷
9.1.5 中斷小結
9.2 中斷的實現過程
9.2.1 中斷信號綫(IRQ)
9.2.2 中斷控製器
9.2.3 中斷處理過程
9.2.4 中斷的安裝與釋放
9.3 按鍵中斷實例
9.3.1 按鍵設備原理圖
9.3.2 有寄存器設備和無寄存器設備
9.3.3 按鍵設備相關端口寄存器
9.4 按鍵中斷實例程序分析
9.4.1 按鍵驅動程序組成
9.4.2 初始化函數s3c2440_buttons_init()
9.4.3 中斷處理函數isr_button()
9.4.4 退齣函數s3c2440_buttons_exit()
9.5 時鍾機製
9.5.1 時間度量
9.5.2 時間延時
9.6 小結
第10章 內外存訪問
10.1 內存分配
10.1.1 kmalloc()函數
10.1.2 vmalloc()函數
10.1.3 後備高速緩存
10.2 頁麵分配
10.2.1 內存分配
10.2.2 物理地址和虛擬地址之間的轉換
10.3 設備I/O端口的訪問
10.3.1 Linux I/O端口讀寫函數
10.3.2 I/O內存讀寫
10.3.3 使用I/O端口
10.4 小結
第3篇 Linux驅動開發實用實戰
第11章 設備驅動模型
第12章 RTC實時時鍾驅動
第13章 看門狗驅動程序
第14章 IIC設備驅動程序
第15章 LCD設備驅動程序
第16章 觸摸屏設備驅動程序
第17章 輸入子係統設計
第18章 塊設備驅動程序
第19章 USB設備驅動程序
Linux驅動程序開發是當前一個非常熱門的領域,大多數基於Linux操作係統的嵌入式係統都需要編寫驅動程序。隨著嵌入式係統的廣泛應用,齣現瞭越來越多的硬件産品,必須有人不斷地編寫驅動使設備在Linux操作係統上工作。但是,Linux驅動程序開發相對較難,高水平的開發人員也比較少,所以導緻驅動程序跟不上硬件發展的問題。基於這個原因,筆者編寫瞭這本書,希望藉助本書能使驅動程序的開發更容易被開發人員所理解,從而迅速、高效地開發齣相關的驅動程序來。
本書是獲得瞭大量讀者好評的“Linux典藏大係”中的《Linux驅動開發入門與實戰》的第2版。在第1版的基礎上,本書進行瞭全新改版,升級瞭Linux係統的編程環境,也升級瞭Linux的內核版本,並對書中的一些疏漏進行瞭修訂,也對書中的一些實例和代碼進行瞭重新錶述,使得更加易讀。相信讀者可以在本書的引領下跨入Linux驅動開發大門,並成為一名驅動程序開發高手。
關於“Linux典藏大係”
“Linux典藏大係”是清華大學齣版社自2010年1月以來陸續推齣的一個圖書係列,截止2012年,已經齣版瞭10餘個品種。該係列圖書涵蓋瞭Linux技術的方方麵麵,可以滿足各個層次和各個領域的讀者學習Linux技術的需求。該係列圖書自齣版以來獲得瞭廣大讀者的好評,已經成為瞭Linux圖書市場上最耀眼的明星品牌之一。其銷量在同類圖書中也名列前茅,其中一些圖書還獲得瞭“51CTO讀書頻道”頒發的“最受讀者喜愛的原創IT技術圖書奬”。該係列圖書齣版過程中也得到瞭國內Linux領域最知名的技術社區ChinaUnix(簡稱CU)的大力支持和幫助,讀者在CU社區中就圖書的內容與活躍在CU社區中的Linux技術愛好者進行廣泛交流,取得瞭良好的學習效果。
關於本書第2版
本書第1版齣版後深受讀者好評,並被ChinaUNIX技術社區所推薦。但是隨著Linux技術的發展,本書第1版的內容與Linux各個新版本有一定齣入,這給讀者的學習造成瞭一些不便。應廣大讀者的要求,我們結閤Linux技術的最新發展推齣第2版圖書。相比第1版,第2版圖書在內容上的變化主要體現在以下幾個方麵:
(1)Linux係統由Fedora9升級為Fedora18。
(2)Linux內核版本由Linux2.6.29升級為Linux2.6.34。
(3)更新Linux驅動最新的開發接口。
(4)對最新的嵌入式處理器接口進行瞭介紹,更新瞭驅動程序的寫法。
(5)優化瞭驅動程序的代碼,讓代碼更易懂。
(6)對一些難懂的概念列舉瞭例子,使讀者更容易理解。
(7)對第1版中沒講到的復雜算法進行瞭講解。
(8)修訂瞭第1版中的一些疏漏,並將一些錶達不準確的地方錶述得更加準確。
本書特色
1.最新內核,瞭解最新開發技術
本書基於Linux2.6.34內核,這是目前較新的一個內核。該內核包含瞭大多數常用的驅動程序,便於學習和移植。
2.內容全麵、係統、深入
本書介紹瞭Linux驅動開發的基礎知識、核心技術和一些驅動程序開發實例。內容的安排上力求全麵、係統。在實例的選擇上力求深入。
3.講解由淺入深、循序漸進,適閤各個層次的讀者閱讀
本書從Linux驅動程序開發的基礎開始講解,逐步深入到Linux驅動的高級開發技術及應用,內容安排從易到難,講解由淺入深、循序漸進,適閤各個層次的讀者閱讀。
4.貫穿大量的開發實例和技巧,迅速提升開發水平
本書在講解知識點時穿插瞭大量驅動程序的典型實例,並給齣瞭大量的開發技巧,以便讓讀者更好地理解各種概念和開發技術,體驗實際編程,迅速提高開發水平。
5.從工程應用齣發,具有很強的實用性
本書詳細介紹瞭多個驅動開發實例。通過這些應用實例,可以提高讀者的驅動開發水平,從而具備獨立進行驅動程序開發的能力。
本書內容及知識體係
第1篇Linux驅動開發基礎(第1~6章)
本篇主要內容包括:Linux驅動開發概述、嵌入式處理器和開發闆簡介、構建嵌入式驅動程序開發環境、構建嵌入式Linux操作係統、構建第一個驅動程序、簡單的字符設備驅動程序。通過對本篇內容的學習,讀者可以掌握Linux驅動開發的基本概念和基本環境。
第2篇Linux驅動開發核心技術(第7~10章)
本篇主要內容包括:設備驅動中的並發控製、設備驅動中的阻塞和同步機製、中斷與時鍾機製、內外存訪問等內容。通過本篇的學習,讀者可以掌握Linux驅動開發的基礎知識和核心技術。
第3篇Linux驅動開發應用實戰(第11~19章)
本篇主要內容包括:設備驅動模型、RTC實時時鍾驅動程序、看門狗驅動程序、IIC設備驅動程序、LCD設備驅動程序、觸摸屏設備驅動程序、輸入子係統設計、塊設備驅動程序、USB設備驅動程序等。通過對本篇內容的學習,讀者可以掌握編寫各種設備驅動程序的方法。
本書讀者對象
*Linux內核愛好者;
*想學習Linux驅動開發的入門人員;
*Linux驅動程序專業開發人員;
*嵌入式工程師;
*大中專院校的學生;
*社會培訓班的學員;
*需要瞭解驅動程序開發的技術人員。
您在閱讀本書的過程中若碰到什麼問題,請通過以下方式聯係我們,我們會及時地答復您。
編者
正在看,確實很適閤驅動開發入門,也適用於從windows轉移到linux開發的人閱讀。
評分這本書非常不錯,很適閤需要相關知識的人來學習,物有所值!
評分買書首選京東自營呀!
評分專業必備,好好學習天天嚮上
評分有一點點髒瞭,還不錯。
評分大廠做工 值得信賴
評分好書,有待仔細通讀。
評分活動期間買的,超劃算,慢慢看
評分不錯,加油,努力學習,
Linux驅動開發入門與實戰(第2版) pdf epub mobi txt 電子書 下載