注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書人文社科法律法律法規(guī)經(jīng)濟法ARM嵌入式Linux系統(tǒng)構建與驅動開發(fā)范例

ARM嵌入式Linux系統(tǒng)構建與驅動開發(fā)范例

ARM嵌入式Linux系統(tǒng)構建與驅動開發(fā)范例

定 價:¥38.00

作 者: 周立功等編著
出版社: 北京航空航天大學出版社
叢編項: 周立功公司策劃系列叢書
標 簽: 微處理器 ARM

ISBN: 9787810777490 出版時間: 2006-02-01 包裝: 平裝
開本: 16開 頁數(shù): 384 字數(shù):  

內(nèi)容簡介

  《ARM嵌入式Linux系統(tǒng)構建與驅動開發(fā)范例》介紹μClinux內(nèi)核編程的一個方面,使用內(nèi)核模塊編寫設備驅動程序。主要內(nèi)容包括:介紹如何建立基于ARM7的交叉開發(fā)環(huán)境以及如何向ARM7芯片上移植μClinux;分析μClinux上一個已在ARM7上成功運行的最簡單的內(nèi)核模塊;介紹μClinux的字符設備驅動程序、塊設備驅動程序和網(wǎng)絡設備驅動程序的編寫、編譯及使用,這些范例均在ARM7平臺編譯和使用,但可以方便地移植到其他平臺。《ARM嵌入式Linux系統(tǒng)構建與驅動開發(fā)范例》通俗易懂,是一本面向初學者的μClinux內(nèi)核編程圖書,對資深μClinux內(nèi)核編程人員也有參考價值??勺鳛楦叩仍盒O嚓P專業(yè)師生以及從事嵌入式系統(tǒng)應用開發(fā)工程師的參考資料。

作者簡介

  作者:周立功周立功,男,1964年3月出生,畢業(yè)于東華大學自動化及計算機系,高級工程師,中國單片機學會理事,中國海洋大學講座教授,碩士生導師,主要研究方向為嵌入式系統(tǒng)與現(xiàn)場總線,目前正在從事80C51、ARM與NiosII等軟核SoC的研究與開發(fā)。1981年6月參加工作,先后在大型國有企業(yè)擔任過工段長、車間主任、團委書記、廠長、黨委書記,先后被評為省及國家級勞動模范與新長征突擊手,長期從事微機、單片機與嵌入式系統(tǒng)應用推廣、開發(fā)工作。早期主要從事6502、Z80、8080及其5G14500(一位機)微機應用開發(fā)及工業(yè)低溫輻射遠紅外節(jié)電技術應用與研究等工作,在1987年就出版過《工業(yè)低溫輻射遠紅外節(jié)電技術》專著。從1994年11月開始創(chuàng)辦了廣州周立功單片機發(fā)展有限公司、廣州致遠電子有限公司除擔任董事長與總經(jīng)理之外,還繼續(xù)從事實際的技術開發(fā)工作并任首席系統(tǒng)設計師和軟件架構師,致力于單片機與嵌入式系統(tǒng)技術的推廣及其產(chǎn)業(yè)化工作。深入淺出ARM7:LPC213x/214x(下冊)>>更多作品

圖書目錄

第1章 μClinux內(nèi)核簡介
1.1 μClinux簡介1
1.2 μClinux內(nèi)核與傳統(tǒng)Linux內(nèi)核的比較2
1.3 μClinux運行條件5
1.4 μClinux的目錄結構5
1.5 μClinux的開發(fā)流程6
1.5.1 編譯μClinux內(nèi)核6
1.5.2 創(chuàng)建文件系統(tǒng)8
本章小結10
第2章 使用GNU Tools建立μClinux開發(fā)環(huán)境
2.1 GNU Tools簡介11
2.2 GCC編譯器13
2.2.1 GCC使用示例14
2.2.2 編譯內(nèi)核時使用的編譯選項20
2.3 binutils二進制工具集21
2.3.1 ar軟件22
2.3.2 nm軟件24
2.3.3 objcopy軟件27
2.3.4 objdump軟件29
2.3.5 readelf軟件32
2.4 ld鏈接器33
2.4.1 ld選項34
2.4.2 鏈接描述文件介紹35
2.4.3 鏈接描述文件的語法36
2.4.4 鏈接描述文件例子39
2.5 make介紹42
2.5.1 GNU make簡介42
2.5.2 Makefile及其語法43
2.5.3 μClinuxdist2.4中的Makefile分析52
2.6 GDB調試器58
2.6.1 GDB簡介58
2.6.2 GDB調試程序示例59
2.6.3 gdbserver介紹62
2.7 GNU Tools的制作和安裝63
2.7.1 從源碼制作交叉編譯環(huán)境63
2.7.2 安裝二進制的交叉工具鏈armelf工具63
2.8 使用GNU Tools編譯μClinux內(nèi)核和應用程序64
2.8.1 使用GNU Tools編譯μClinux內(nèi)核64
2.8.2 使用GNU Tools在μClinux中編譯應用程序68
本章小結70
第3章 移植μClinux到LPC2200實例
3.1 選擇開發(fā)環(huán)境71
3.2 移植內(nèi)核71
3.2.1 增加體系架構和機型相關的代碼72
3.2.2 添加中斷系統(tǒng)74
3.2.3 增加其他代碼83
3.2.4 修改Makefile和配置菜單95
3.3 移植驅動程序98
3.3.1 時鐘驅動程序的移植98
3.3.2 串口驅動程序的移植100
本章小結101
第4章 μClinux設備驅動程序概述
4.1 設備驅動程序基礎知識102
4.1.1 驅動程序分類102
4.1.2 加載和刪除驅動程序103
4.2 最簡單的內(nèi)核模塊104
4.2.1 內(nèi)核模塊的概念104
4.2.2 編寫內(nèi)核模塊104
4.2.3 關于內(nèi)核模塊初始化(加載)函數(shù)106
4.2.4 關于內(nèi)核模塊清除(卸載)函數(shù)106
4.2.5 關于printk()函數(shù)106
4.3 編寫Makefile文件107
4.3.1 Makefile文件整體介紹107
4.3.2 Makefile文件中的變量108
4.3.3 Makefile文件中的規(guī)則109
本章小結111
第5章 字符設備驅動程序初步
5.1 幾個概念112
5.1.1 關于主設備號和從設備號112
5.1.2 關于設備節(jié)點、節(jié)點文件和設備文件112
5.2 最簡單的字符設備驅動程序113
5.2.1 驅動程序代碼113
5.2.2 驅動程序的初始化函數(shù)116
5.2.3 驅動程序的清除函數(shù)116
5.2.4 保存設備信息的結構體117
5.2.5 關于file結構122
5.2.6 內(nèi)核空間與用戶空間交換數(shù)據(jù)125
5.2.7 內(nèi)核空間與I/O空間交換數(shù)據(jù)126
5.2.8 ioctl()方法的編寫127
5.2.9 一些宏定義130
5.2.10 關于頭文件130
5.2.11 其他說明131
5.3 使用字符設備驅動程序131
5.3.1 建立設備文件131
5.3.2 加載驅動程序131
5.3.3 接口函數(shù)131
5.3.4 示例代碼137
5.3.5 編寫Makefile文件138
本章小結139
第6章 GPIO(字符設備)驅動程序編寫范例
6.1 在應用程序中使用GPIO驅動程序140
6.1.1 建立設備文件140
6.1.2 可使用的函數(shù)140
6.1.3 提供給應用程序的頭文件141
6.1.4 設置GPIO口數(shù)據(jù)傳輸方向142
6.1.5 讓GPIO口輸出指定電平144
6.1.6 讀GPIO口輸出電平146
6.1.7 讀GPIO口引腳上的電平147
6.2 編譯148
6.3 源碼分析149
6.3.1 初始化函數(shù)149
6.3.2 清除函數(shù)150
6.3.3 open()方法150
6.3.4 release()方法151
6.3.5 ioctl()方法151
6.3.6 其他說明158
本章小結159
第7章 PWM(字符設備)驅動程序編寫范例
7.1 在應用程序中使用PWM驅動程序160
7.1.1 建立設備文件160
7.1.2 可使用的函數(shù)161
7.1.3 提供給應用程序的頭文件161
7.1.4 PWM總體控制163
7.1.5 允許某路PWM輸出164
7.1.6 禁止某路PWM輸出164
7.1.7 設置某路PWM高電平寬度165
7.2 編譯166
7.3 源碼分析167
7.3.1 為驅動程序增加中斷服務程序167
7.3.2 關于臨界區(qū)169
7.3.3 初始化函數(shù)170
7.3.4清除函數(shù)170
7.3.5 open()方法及中斷處理171
7.3.6 release()方法172
7.3.7 ioctl()方法173
7.3.8 其他說明179
本章小結179
第8章 A/D(字符設備)驅動程序編寫范例
8.1 在應用程序中使用A/D驅動程序180
8.1.1 建立設備文件180
8.1.2可使用的函數(shù)181
8.1.3 提供給應用程序的頭文件181
8.1.4 設置A/D工作頻率182
8.1.5 設置A/D轉換精度182
8.1.6 讀取A/D轉換結果183
8.2 編譯183
8.3 源碼分析184
8.3.1 初始化函數(shù)184
8.3.2 清除函數(shù)185
8.3.3 open()方法186
8.3.4 release()方法187
8.3.5 ioctl()方法188
8.3.6 read()方法189
8.3.7 其他說明191
本章小結191
第9章 SPI(字符設備)驅動程序編寫范例
9.1 在應用程序中使用SPI驅動程序192
9.1.1 建立設備文件192
9.1.2 使用SPI的特殊注意點193
9.1.3 可使用的函數(shù)193
9.1.4 提供給應用程序的頭文件194
9.1.5 設置SPI分頻值195
9.1.6 SPI時鐘相位控制195
9.1.7 SPI時鐘極性控制196
9.1.8 SPI數(shù)據(jù)傳輸順序控制197
9.1.9 開始和結束SPI操作198
9.1.10 發(fā)送同時接收一字節(jié)數(shù)據(jù)198
9.1.11 寫數(shù)據(jù)到SPI從器件199
9.1.12 從SPI從器件讀數(shù)據(jù)199
9.2 編譯200
9.3 源碼分析201
9.3.1 初始化函數(shù)201
9.3.2 清除函數(shù)201
9.3.3 open()方法202
9.3.4 release()方法204
9.3.5 ioctl()方法205
9.3.6 write()方法209
9.3.7 read()方法211
9.3.8 其他說明212
本章小結212
第10章 I2C(字符設備)驅動程序編寫范例
10.1 在應用程序中使用I2C總線驅動程序213
10.1.1 建立設備文件213
10.1.2 可使用的函數(shù)214
10.1.3 提供給應用程序的頭文件214
10.1.4 設置I2C總線頻率215
10.1.5 寫數(shù)據(jù)到I2C從器件215
10.1.6 從I2C從器件讀數(shù)據(jù)216
10.2 編譯216
10.3 源碼分析217
10.3.1 初始化函數(shù)217
10.3.2 清除函數(shù)218
10.3.3 open()方法218
10.3.4 release()方法220
10.3.5 I2C中斷處理220
10.3.6 ioctl()方法223
10.3.7 write()方法225
10.3.8 read()方法226
10.3.9 其他說明227
本章小結227
第11章 塊設備驅動程序初步
11.1 幾個概念228
11.1.1 關于主設備號和從設備號228
11.1.2 關于設備節(jié)點、節(jié)點文件和設備文件228
11.2 最簡單的塊設備驅動程序229
11.2.1 驅動程序代碼229
11.2.2 注冊初始化函數(shù)和清除函數(shù)231
11.2.3 驅動程序的初始化函數(shù)232
11.2.4 驅動程序的清除函數(shù)232
11.2.5 保存設備信息的結構體233
11.2.6 一些宏定義238
11.2.7 關于頭文件238
11.2.8 其他說明239
11.3 使用塊設備239
11.3.1 建立設備文件239
11.3.2 加載驅動程序239
11.3.3 把塊設備(的某個分區(qū))映射到指定的目錄240
11.3.4 取消目錄映射240
11.3.5 卸載驅動程序240
本章小結240
第12章 簡單的塊設備編寫范例
12.1 使用范例241
12.1.1 范例簡介241
12.1.2 編譯驅動程序241
12.1.3 使用驅動程序242
12.2 范例程序源碼分析244
12.2.1 關于主設備號244
12.2.2 幾個數(shù)據(jù)結構246
12.2.3 驅動程序的初始化函數(shù)246
12.2.4 驅動程序的清除函數(shù)247
12.2.5 open()方法248
12.2.6 release()方法250
12.2.7 ioctl()方法251
12.2.8 check_media_change()方法253
12.2.9 revalidate()方法253
12.2.10 關于數(shù)據(jù)傳輸254
12.2.11 其他說明260
本章小結260
第13章 基于ZLG/FS驅動程序的通用塊設備驅動程序
13.1 背景知識261
13.1.1 驅動程序簡介261
13.1.2 ZLG/FS簡介261
13.2 ZLG/FS V1.10驅動程序使用指南263
13.2.1 接口函數(shù)263
13.2.2 參數(shù)263
13.3 使用范例266
13.3.1 編譯驅動程序266
13.3.2 使用驅動程序267
13.4 范例程序源碼分析269
13.4.1 塊設備信息結構體270
13.4.2 注冊ZLG/FS V1.10驅動程序271
13.4.3 注銷ZLG/FS V1.10驅動程序271
13.4.4 關于分區(qū)設備272
13.4.5 檢測分區(qū)273
13.4.6 驅動程序的初始化函數(shù)276

13.4.7 驅動程序的清除函數(shù)277
13.4.8 open()方法278
13.4.9 release()方法280
13.4.10 ioctl()方法282
13.4.11 check_media_change()方法284
13.4.12 revalidate()方法285
13.4.13 數(shù)據(jù)傳輸286
13.4.14 其他說明290
本章小結290
第14章 轉換ZLG/FS V1.10驅動為μClinux驅動

14.1 轉換步驟291
14.2 轉換實例之CF卡驅動295
14.3 轉換實例之SD卡驅動297
14.4 轉換實例之ZLG/FFS驅動299
14.5 模板源碼分析302
14.5.1 驅動程序的初始化函數(shù)302
14.5.2 驅動程序的清除函數(shù)303
14.5.3 open()方法303
14.5.4 release()方法304
14.5.5 get_info()方法304
14.5.6 其他說明306
本章小結306
第15章 網(wǎng)絡設備驅動程序初步
15.1 最簡單的網(wǎng)絡設備驅動程序307
15.1.1 驅動程序代碼307
15.1.2 驅動程序的初始化函數(shù)310
15.1.3 驅動程序的清除函數(shù)311
15.1.4 保存設備信息的結構體311
15.1.5 數(shù)據(jù)接收與中斷服務程序319
15.1.6 關于頭文件321
15.1.7 其他說明321
15.2 使用網(wǎng)絡設備驅動程序321
本章小結322
第16章 RTL8019驅動程序編寫范例
16.1 硬件原理323
16.2 使用源代碼325
16.3 源碼分析326
16.3.1 初始化函數(shù)326
16.3.2清除函數(shù)327
16.3.3 init()方法327
16.3.4 open()方法329
16.3.5 stop()方法332
16.3.6 set_config()方法333
16.3.7 hard_start_xmit()方法333
16.3.8 set_mac_address()方法335
16.3.9 中斷服務程序336
本章小結340
第17章 DM9000驅動程序編寫范例
17.1 硬件原理341
17.2 使用源代碼341
17.3 源碼分析344
17.3.1 頭文件DM9000.h344
17.3.2 底層硬件操作函數(shù)346
17.3.3 初始化函數(shù)348
17.3.4 清除函數(shù)349
17.3.5 init()方法349
17.3.6 open()方法351
17.3.7 stop()方法354
17.3.8 set_config()方法355
17.3.9 hard_start_xmit()方法356
17.3.10 set_mac_address()方法357
17.3.11 中斷服務程序358
本章小結360
附錄A 版權聲明及許可協(xié)議
附錄B SmartARM2200教學實驗開發(fā)平臺
B.1 產(chǎn)品概述363
B.2 產(chǎn)品目標364
B.3 產(chǎn)品特點364
B.4 產(chǎn)品組成368
B.5 硬件結構說明369
B.6 應用環(huán)境369
B.7 產(chǎn)品部件規(guī)格描述369
附錄C MagicARM2200教學實驗開發(fā)平臺
C.1 產(chǎn)品概述370
C.2 產(chǎn)品目標371
C.3 產(chǎn)品特點371
C.4 產(chǎn)品組成376
C.5 硬件結構說明377
C.6 應用環(huán)境377
C.7 產(chǎn)品部件規(guī)格描述377
附錄D MagicARM2200S教學實驗開發(fā)平臺
D.1 產(chǎn)品概述378
D.2 產(chǎn)品目標379
D.3 產(chǎn)品特點379
D.4 產(chǎn)品組成382
D.5 硬件結構說明384
D.6 應用環(huán)境384
D.7產(chǎn)品部件規(guī)格描述384
參考文獻  

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號