嵌入式Linux套用開發菜鳥進階

嵌入式Linux套用開發菜鳥進階

本書詳細介紹了嵌入式Linux系統的方方面面,從嵌入式系統的發展、環境的搭建、相關的理論基礎知識,再到深入地講解嵌入式系統的開發,由易到難詳細講解了嵌入式系統開發的流程。本書分為4篇。第1篇是嵌入式Linux系統基礎篇,主要介紹了嵌入式系統的發展,搭建嵌入式Linux系統環境,Linux程式開發基礎和嵌入式Linux設備驅動開發基礎等知識。第2篇是嵌入式Linux設備驅動核心理論篇,講解了Linux設備驅動的一些基本理論知識,有並發競態、阻塞非阻塞、驅動延遲操作、記憶體分配中斷處理以及工程開發等相關知識。第3篇是字元設備驅動篇,主要講解Linux字元設備驅動的相關內容,如基於記憶體的字元設備、按鍵控制led字元驅動、溫度感測器、MP3播放器和動態圖像系統開發。第4篇是塊設備驅動篇,內容包括塊設備驅動程式的開發、基於ramdisk的虛擬塊設備驅動以及SD卡塊設備驅動。

基本介紹

  • 書名:嵌入式Linux套用開發菜鳥進階
  • 出版社:電子工業出版社
  • 頁數:286頁
  • 開本:16
  • 品牌:電子工業出版社
  • 作者:梁旭輝
  • 出版日期:2013年9月1日
  • 語種:簡體中文
  • ISBN:7121211874
基本介紹,內容簡介,作者簡介,圖書目錄,

基本介紹

內容簡介

本書是一本面向嵌入式Linux初學者的一本書,全書基於一塊經典開發板——友善之臂的mini2440,在最新版本的Linux核心代碼中都可以找到這塊開發板的支持代碼,是初學者學習嵌入式Linux入門的經典開發板。本書編者也是從這塊開發板一步一步學習至今的。整本書是以一個初學者的心態來進行學習的,同時又以一個剛剛進階的開發者來敘述,書中總結了編學習嵌入式Linux的點點滴滴,其中有筆者對嵌入式Linux的學習見解和曾經做過的項目。

作者簡介

梁旭輝,嵌入式驅動開發工程師,具有豐富的實戰經驗!

圖書目錄

第1章嵌入式Linux系統簡介1
1.1嵌入式與Linux系統概述1
1.1.1Linux作業系統及其發展1
1.1.2Linux發行版本2
1.2Windows與Linux檔案系統的異同4
1.2.1Linux檔案系統類型4
1.2.2Windows與Linux檔案系統的相同點5
1.2.3Windows與Linux檔案系統的不同點5
1.3Linux檔案類型與屬性7
1.3.1Linux檔案類型7
1.3.2Linux檔案屬性7
1.4嵌入式Linux常用命令及工具8
1.4.1Linux常用命令8
1.4.2嵌入式Linux常用工具9
小結10
第2章搭建嵌入式Linux學習環境12
2.1硬體開發平台12
2.1.1mini2440開發板硬體資源12
2.1.2外圍設備14
2.2軟體開發平台搭建14
2.2.1tftp伺服器與nfs伺服器搭建15
2.2.2交叉編譯工具16
2.2.3uboot的移植17
2.2.4Linux核心移植18
2.2.5Linux根檔案系統移植19
小結23
第3章Linux應用程式學習24
3.1Linuxshell腳本24
3.1.1語法24
3.1.2變數25
3.1.3shell腳本語句26
3.1.4注釋27
3.2Linux下makefile的編寫27
3.3Linux檔案編程28
3.3.1檔案與目錄29
3.3.2系統調用30
3.3.3標準I/O庫32
3.4執行緒34
3.4.1執行緒優點34
3.4.2執行緒分類35
3.4.3執行緒實現35
3.5網路編程37
3.5.1TCP/IP協定37
3.5.2TCP和UDP38
3.5.3套接字39
小結40
第4章嵌入式Linux設備驅動開發基礎41
4.1嵌入式Linux設備驅動的概述41
4.1.1Linux設備驅動的作用41
4.1.2Linux設備驅動的分類及特點42
4.2處理器與儲存器42
4.2.1處理器42
4.2.2存儲器43
4.3接口45
4.3.1串口46
4.3.2I2C46
4.3.3USB47
4.3.4乙太網接口48
4.4Linux核心模組49
小結50
第5章Linux設備驅動之並發與競態51
5.1並發及其管理51
5.2自旋鎖52
5.2.1自旋鎖API52
5.2.2自旋鎖基本使用模式53
5.2.3其他自旋鎖函式54
5.2.4讀者/寫者自旋鎖55
5.2.5Linux核心自旋鎖55
5.3信號量與互斥體57
5.3.1信號量57
5.3.2互斥體62
5.4原子操作64
5.4.1原子整數操作64
5.4.2原子位操作65
5.5中斷禁止65
小結66
第6章Linux設備驅動中的阻塞與非阻塞I/O67
6.1阻塞與非阻塞I/O67
6.1.1休眠68
6.1.2等待佇列68
6.1.3阻塞和非阻塞操作70
6.2輪詢操作70
6.2.1輪詢概述71
6.2.2Linux應用程式中的輪詢編程——select()71
6.2.3Linux設備驅動中的輪詢編程——poll()73
小結75
第7章Linux設備驅動之時間、延遲及延緩操作76
7.1Linux核心時間76
7.1.1處理器特定的暫存器76
7.1.2延遲操作77
7.2核心定時器78
7.3tasklet80
7.4工作佇列82
小結84
第8章Linux設備驅動之記憶體分配與I/O訪問85
8.1記憶體空間與I/O空間85
8.2記憶體管理85
8.3記憶體分配88
8.3.1kmalloc與vmalloc88
8.3.2get_free_page和相關函式89
8.4設備I/O連線埠和I/O記憶體的訪問90
8.4.1I/O暫存器和常規記憶體90
8.4.2操作I/O連線埠(申請,訪問,釋放)91
8.4.3操作I/O記憶體(申請,映射,訪問,釋放)92
8.4.4像I/O記憶體一樣訪問連線埠93
8.4.5ARM體系的I/O操作接口94
8.5I/O記憶體的靜態映射94
小結96
第9章Linux設備驅動之中斷處理97
9.1Linux中斷處理程式框架97
9.1.1中斷處理過程97
9.1.2Linux中斷處理程式的上半部與下半部機制99
9.2Linux中斷編程100
9.3中斷共享103
9.4中斷驅動的I/O104
小結104
第10章Linux設備驅動工程開發技術105
10.1自創建設備檔案105
10.2混雜設備驅動107
10.3Linux設備模型109
10.3.1kobject和kset數據結構110
10.3.2sysfs檔案系統113
10.3.3匯流排、設備和驅動程式114
10.4設備驅動分層思想120
小結121
第11章Linux字元設備驅動122
11.1字元設備驅動結構122
11.1.1主次設備號122
11.1.2字元設備驅動的重要數據結構124
11.2字元設備的註冊和釋放128
11.2.1字元設備的註冊129
11.2.2字元設備的釋放131
11.3字元設備驅動的一些小技巧131
小結133
第12章基於記憶體的簡單字元設備134
12.1簡單字元驅動的數據結構134
12.1.1定義字元設備驅動的設備數據結構134
12.1.2定義file_operation結構和掛接相應的系統調用函式135
12.2簡單字元驅動設計136
12.2.1字元設備驅動的載入與卸載137
12.2.2字元設備驅動的打開與關閉139
12.2.3字元設備驅動的讀寫函式140
12.2.4字元設備驅動的llseek函式141
12.3應用程式測試142
12.3.1應用程式設計原理142
12.3.2程式代碼142
12.4簡單字元設備驅動運行效果143
12.4.1makefile程式的編寫143
12.4.2字元設備驅動運行效果144
小結145
第13章按鍵控制LED字元驅動146
13.1按鍵和LED設備硬體接口和暫存器146
13.2按鍵控制LED驅動原理147
13.3按鍵控制LED驅動程式分析148
13.3.1按鍵與LED集成在一個驅動中148
13.3.2按鍵與LED驅動的實現156
13.4按鍵控制LED驅動測試171
13.5驅動程式的運行效果171
小結173
第14章基於18B20感測器的驅動開發174
14.1DS18B20溫度感測器簡介174
14.1.1溫度感測器的工作特點175
14.1.2DS18B20的外部結構175
14.1.3DS18B20的內部結構176
14.1.4DS18B20的套用電路結構178
14.1.5DS18B20的工作原理178
14.2DS18B20溫度感測器程式設計實現180
14.2.1復位程式180
14.2.2寫1位元組子程式182
14.2.3讀1位元組子程式183
14.2.4確定溫度感測器的頭檔案和相應的數據結構185
14.2.5確定驅動要實現的功能函式和file_operation結構的掛接186
14.2.6編寫載入和卸載函式186
14.2.7編寫要實現的功能函式187
14.3應用程式設計195
14.4驅動運行效果197
14.4.1makefile檔案的編寫197
14.4.2應用程式運行效果圖197
小結198
第15章MP3播放器199
15.1MP3播發器簡介199
15.2按鍵播放MP3的原理199
15.2.1MP3播放器系統框架199
15.2.2MP3音頻驅動的移植201
15.3MP3程式設計203
15.3.1按鍵驅動程式設計203
15.3.2MP3應用程式設計208
15.3.3最終的程式代碼215
15.4MP3播放器的測試223
小結224
第16章基於motion的動態圖像檢測系統開發225
16.1動態圖像檢測系統簡介225
16.2系統框圖和流程圖225
16.2.1系統框圖226
16.2.2系統設計技術227
16.3動態監測系統程式分析228
16.3.1motion動態圖像採集系統移植228
16.3.2溫度採集系統231
16.3.3動態圖像控制系統231
16.3.4遠程監控服務系統239
16.3.5SD卡存儲系統248
16.4系統測試運行效果圖248
小結250
第17章塊設備驅動程式251
17.1字元設備驅動與塊設備驅動251
17.2塊設備驅動基本框架252
17.3塊設備在Linux系統中各層的調用關係252
17.4塊設備驅動的重要數據結構253
17.4.1block_device_operations結構體254
17.4.2gendisk結構體255
17.4.3request與request_queue結構體255
17.4.4塊I/O256
17.4.5塊設備中各結構體之間的關係258
17.5塊設備驅動程式分析259
小結261
第18章基於ramdisk的虛擬磁碟塊設備驅動262
18.1塊設備驅動程式設計262
18.2基於I/O調度器的塊設備驅動程式設計262
18.3沒有I/O調度器的塊設備驅動程式設計265
小結267
第19章SD卡塊設備驅動268
19.1SD卡概述268
19.1.1SD卡簡介268
19.1.2SD卡的引腳269
19.1.3SD卡的記憶體組織270
19.2SD卡暫存器271
19.2.1CID暫存器271
19.2.2SD匯流排協定272
19.2.3SD卡指令和命令272
19.2.4塊讀寫操作274
19.3SD卡設備驅動程式分析275
19.3.1SD卡驅動程式的重要數據結構276
19.3.2SD設備驅動分析278
19.3.3SD卡驅動在mini2440開發板的開發與移植281
19.4測試SD卡驅動程式283
19.4.1系統設計思路與步驟283
19.4.2系統測試結果285
小結286
  

相關詞條

熱門詞條

聯絡我們