注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)從ARM9到Linux系統(tǒng)設(shè)計與開發(fā)直通車

從ARM9到Linux系統(tǒng)設(shè)計與開發(fā)直通車

從ARM9到Linux系統(tǒng)設(shè)計與開發(fā)直通車

定 價:¥88.00

作 者: 趙健雄 著
出版社: 電子工業(yè)出版社
叢編項: 嵌入式開發(fā)直通車
標 簽: LINUX 操作系統(tǒng)/系統(tǒng)開發(fā) 計算機/網(wǎng)絡(luò)

ISBN: 9787121238390 出版時間: 2014-08-01 包裝: 平裝
開本: 16開 頁數(shù): 588 字數(shù):  

內(nèi)容簡介

  本書由淺入深、全面、系統(tǒng)地介紹了ARM技術(shù)與嵌入式Linux的系統(tǒng)設(shè)計與開發(fā)。全書共18章,講解了ARM微處理器的片上資源、ARM的指令集、Windows的最常用的嵌入式集成開發(fā)環(huán)境ADS、上位機嵌入式系統(tǒng)的構(gòu)建、Boot-Loader的介紹和使用、對Linux內(nèi)核的移植、嵌入式文件系統(tǒng)移植、Linux的多任務(wù)程序開發(fā)、設(shè)備的驅(qū)動開發(fā)等內(nèi)容。書中的每章都提供了大量有針對性的實例,對每個知識點也給出了較詳細的解釋。

作者簡介

  趙健雄,嵌入式設(shè)計工程師,活躍于嵌入式開發(fā)相關(guān)論壇,任技術(shù)開發(fā)版版主,發(fā)表嵌入式開發(fā)入門、實例類文章,點擊率非常高,贏得了網(wǎng)友的一致好評

圖書目錄

第1篇 ARM微處理器講解篇
第1章 走進嵌入式系統(tǒng)世界 1
1.1 讓我們一起來認識嵌入式系統(tǒng) 1
1.1.1 嵌入式硬件系統(tǒng)的發(fā)展進程 2
1.1.2 嵌入式系統(tǒng)的發(fā)展趨勢 3
1.1.3 嵌入式系統(tǒng)的主要特征 4
1.2 嵌入式處理器的簡單概述 6
1.2.1 嵌入式微處理器簡介 6
1.2.2 嵌入式微控制器簡介 7
1.2.3 數(shù)字信號處理器(DSP)簡介 7
1.2.4 嵌入式片上系統(tǒng)(SoC)簡介 8
1.3 嵌入式軟件系統(tǒng)的簡單概述 9
1.3.1 嵌入式軟件系統(tǒng)簡介 9
1.3.2 嵌入式軟件開發(fā)簡介 10
1.4 嵌入式目標平臺的介紹 11
1.4.1 嵌入式硬件平臺簡介 11
1.4.2 如何構(gòu)建嵌入式系統(tǒng)開發(fā)平臺 12
1.4.3 如何向嵌入式硬件平臺上燒寫映像 14
1.5 本章小結(jié) 17
第2章 ARM體系微處理器的基礎(chǔ)介紹 18
2.1 ARM體系微處理器簡介 18
2.2 ARM體系微處理器的類型 18
2.3 實際項目中對ARM微處理器的選擇 21
2.3.1 ARM微處理器應(yīng)用方案的成熟度考慮 21
2.3.2 ARM內(nèi)核的選擇 21
2.3.3 ARM微處理器的性能考慮 22
2.3.4 ARM微處理器的片內(nèi)資源考慮 22
2.4 ARM微處理器的工作體系 22
2.4.1 工作模式介紹 23
2.4.2 寄存器體系 23
2.4.3 指令體系 24
2.5 ARM微處理器的基礎(chǔ)架構(gòu)介紹 24
2.5.1 計算機體系結(jié)構(gòu)的介紹 25
2.5.2 ARM微處理器的技術(shù)特征 26
2.6 本章小結(jié) 29
第3章 S3C2410的內(nèi)部結(jié)構(gòu)及外圍電路 30
3.1 S3C2410整體資源簡介 30
3.1.1 性能介紹 30
3.1.2 資源模塊介紹 31
3.1.3 內(nèi)部結(jié)構(gòu) 31
3.1.4 五大體系結(jié)構(gòu) 34
3.1.5 存儲系統(tǒng) 34
3.2 S3C2410內(nèi)部資源功能介紹 38
3.2.1 時鐘與電源管理 38
3.2.2 中斷控制器 41
3.2.3 LCD控制器 42
3.2.4 Nand Flash控制器 43
3.2.5 UART控制器 44
3.2.6 DMA控制器 44
3.2.7 TIMER控制器 44
3.2.8 I/O接口 45
3.2.9 RTC控制器 46
3.2.10 觸摸控制器 46
3.2.11 IIC控制器 47
3.2.12 IIS控制器 47
3.2.13 看門狗定時器 47
3.2.14 USB控制器 47
3.2.15 SPI接口 48
3.2.16 SD接口 48
3.2.17 ADC控制器 49
3.3 S3C2410微處理器的外圍電路設(shè)計 49
3.3.1 時鐘電路 50
3.3.2 復(fù)位電路 50
3.3.3 啟動電路 51
3.3.4 電源電路 51
3.3.5 Flash電路 52
3.3.6 SDRAM電路 54
3.3.7 UART電路 57
3.3.8 IrDA電路 58
3.3.9 USB電路 58
3.3.10 以太網(wǎng)電路 59
3.3.11 音頻電路 61
3.3.12 SD/MMC電路 62
3.3.13 LCD電路 62
3.4 本章小結(jié) 63
第4章 ARM微處理器的尋址方式及指令集介紹 64
4.1 ARM指令集概述及尋址方式 64
4.1.1 指令結(jié)構(gòu)簡介 64
4.1.2 指令分類 65
4.1.3 指令格式與條件域 66
4.1.4 尋址方式 67
4.2 ARM微處理器的指令集介紹 73
4.2.1 跳轉(zhuǎn)指令 73
4.2.2 數(shù)據(jù)處理指令 74
4.2.3 乘法指令與乘加指令 79
4.2.4 程序狀態(tài)寄存器訪問指令 81
4.2.5 加載/存儲指令 82
4.2.6 批量數(shù)據(jù)加載/存儲指令 84
4.2.7 數(shù)據(jù)交換指令 85
4.2.8 移位指令 86
4.2.9 協(xié)處理器指令 87
4.2.10 異常產(chǎn)生指令 89
4.3 本章小結(jié) 90
第5章 ADS集成開發(fā)環(huán)境的應(yīng)用基礎(chǔ) 91
5.1 ADS1.2集成開發(fā)環(huán)境簡介 91
5.1.1 ADS軟件中的ARM運行時庫 92
5.1.2 CodeWarrior集成開發(fā)環(huán)境介紹 93
5.1.3 ADS集成開發(fā)軟件的調(diào)試器介紹 94
5.1.4 ADS集成開發(fā)環(huán)境中的實用工具 94
5.2 ADS軟件的命令行下的開發(fā)方式 95
5.2.1 ADS軟件中的命令行工具介紹 95
5.2.2 編譯器與鏈接器的使用 97
5.3 ADS軟件的圖形界面下的開發(fā)方式 100
5.3.1 如何創(chuàng)建ADS工程 100
5.3.2 工程源代碼的編寫實現(xiàn) 104
5.3.3 對工程進行編譯和鏈接操作 106
5.4 使用AXD調(diào)試工具進行代碼調(diào)試 110
5.4.1 AXD軟件加載可執(zhí)行文件 110
5.4.2 AXD軟件中運行映像文件 110
5.4.3 代碼調(diào)試時添加斷點 110
5.4.4 代碼調(diào)試時的存儲器操作 111
5.4.5 代碼調(diào)試時的寄存器操作 111
5.4.6 代碼調(diào)試時的變量操作 112
5.5 本章小結(jié) 112
第6章 基于ADS平臺的實驗開發(fā) 113
6.1 匯編之LED燈實驗 113
6.2 Hello World之串口實驗 115
6.2.1 S3C2410的UART介紹 115
6.2.2 UART的數(shù)據(jù)發(fā)送操作 115
6.2.3 UART的數(shù)據(jù)接收操作 115
6.2.4 UART的波特率發(fā)生器 116
6.2.5 UART與PC通信編程實現(xiàn) 116
6.3 外部中斷編程操作 118
6.3.1 中斷響應(yīng)過程和返回過程 118
6.3.2 外部中斷編程實現(xiàn) 118
6.4 看門狗測試代碼的編寫 120
6.4.1 看門狗的工作原理 120
6.4.2 S3C2410微處理器的看門狗 121
6.4.3 S3C2410微處理器的看門狗編程實現(xiàn) 121
6.5 利用定時器產(chǎn)生PWM編程實驗 123
6.6 S3C2410微處理器的啟動代碼實驗 124
6.7 S3C2410微處理器的RTC編程實驗 134
6.7.1 RTC的簡單介紹 134
6.7.2 RTC的相關(guān)功能 134
6.7.3 RTC編程實現(xiàn) 135
6.8 S3C2410微處理器的IIC總線實驗 136
6.8.1 IIC總線實現(xiàn)原理 137
6.8.2 IIC總線編程實現(xiàn) 137
6.9 Nor Flash驅(qū)動編程實現(xiàn) 140
6.9.1 SST39VF160的操作原理 141
6.9.2 SST39VF160編程實現(xiàn) 143
6.10 Nand Flash驅(qū)動編程實現(xiàn) 145
6.10.1 K9F1208U0M的指令 145
6.10.2 K9F1208U0M的工作原理 145
6.10.3 Nand Flash編程實現(xiàn) 146
6.11 本章小結(jié) 149
第2篇 嵌入式Linux系統(tǒng)講解篇
第7章 嵌入式操作系統(tǒng)的整體介紹 150
7.1 嵌入式操作系統(tǒng)簡介 150
7.1.1 嵌入式操作系統(tǒng)的發(fā)展階段 150
7.1.2 嵌入式操作系統(tǒng)的優(yōu)勢 151
7.1.3 嵌入式操作系統(tǒng)的分類 151
7.2 常見的嵌入式操作系統(tǒng) 152
7.2.1 VxWorks嵌入式操作系統(tǒng) 152
7.2.2 pSOS嵌入式操作系統(tǒng) 153
7.2.3 Palm OS嵌入式操作系統(tǒng) 153
7.2.4 QNX嵌入式操作系統(tǒng) 154
7.2.5 Windows CE嵌入式操作系統(tǒng) 154
7.2.6 uC/OS-II嵌入式操作系統(tǒng) 155
7.2.7 Linux嵌入式操作系統(tǒng) 155
7.3 嵌入式操作系統(tǒng)的結(jié)構(gòu) 157
7.4 嵌入式操作系統(tǒng)的功能 158
7.4.1 進程管理功能 158
7.4.2 內(nèi)存管理功能 160
7.4.3 文件管理功能 162
7.4.4 設(shè)備管理功能 163
7.5 本章小結(jié) 164
第8章 走進Linux操作系統(tǒng) 165
8.1 Ubuntu操作系統(tǒng)的安裝 165
8.1.1 Ubuntu系統(tǒng)的簡介 165
8.1.2 虛擬機向?qū)У呐渲?165
8.1.3 Ubuntu系統(tǒng)的安裝 169
8.2 Ubuntu操作系統(tǒng)的相關(guān)操作命令 172
8.2.1 Ubuntu系統(tǒng)的root用戶 172
8.2.2 Ubuntu系統(tǒng)的常用命令 173
8.3 本章小結(jié) 203
第9章 Linux系統(tǒng)中構(gòu)建交叉開發(fā)環(huán)境 204
9.1 交叉開發(fā)環(huán)境簡介 204
9.1.1 交叉開發(fā)環(huán)境模型 204
9.1.2 上位機與下位機的連接方式 205
9.2 交叉開發(fā)環(huán)境的搭建 207
9.2.1 Linux系統(tǒng)的網(wǎng)絡(luò)配置 207
9.2.2 關(guān)于apt-get工具軟件的介紹 209
9.2.3 Minicom的安裝與配置 209
9.2.4 FTP服務(wù)的安裝、配置與啟動 213
9.2.5 SSH服務(wù)的安裝、配置與啟動 213
9.2.6 NFS服務(wù)的安裝、配置與啟動 214
9.2.7 交叉工具鏈的安裝與配置 215
9.3 Windows系統(tǒng)的實用軟件介紹 220
9.3.1 遠程登錄Linux系統(tǒng)工具SecureCRT 220
9.3.2 Windows與Linux之間的文件傳輸軟件CuteFTP 222
9.3.3 Windows系統(tǒng)的代碼閱讀/編輯工具SI 223
9.3.4 Windows系統(tǒng)的TFTP服務(wù)器軟件TFTP32 226
9.3.5 Windows系統(tǒng)的DNW軟件 226
9.4 Linux系統(tǒng)的實用軟件介紹 228
9.4.1 VI編輯器 228
9.4.2 gedit編輯器 230
9.4.3 Eclipse軟件的安裝 230
9.4.4 Eclipse CDT開發(fā)C程序 232
9.5 本章小結(jié) 234
第10章 Linux系統(tǒng)的裸機程序開發(fā) 235
10.1 Linux系統(tǒng)的裸機程序開發(fā)簡介 235
10.1.1 代碼的編譯方式 235
10.1.2 make工程管理器簡介 235
10.2 Linux系統(tǒng)的編譯器 236
10.2.1 gcc與arm-linux-gcc簡介 236
10.2.2 gcc工具的實例操作 237
10.2.3 gcc工具的編譯細節(jié)分析 240
10.2.4 arm-linux-gcc及相關(guān)工具的應(yīng)用 241
10.3 Makefile工程文件的應(yīng)用 246
10.3.1 Makefile文件的簡單介紹 246
10.3.2 如何編寫Makefile文件 247
10.3.3 如何執(zhí)行Makefile文件 250
10.4 Linux系統(tǒng)的裸機程序開發(fā)示例 251
10.5 本章小結(jié) 257
第11章 Bootloader的移植 258
11.1 Bootloader的簡單介紹 258
11.1.1 Bootloader的認識 258
11.1.2 Bootloader的通信方式 259
11.1.3 Bootloader的結(jié)構(gòu)介紹 259
11.1.4 常見的Bootloader 267
11.2 Vivi進行Linux引導(dǎo) 267
11.2.1 Vivi的結(jié)構(gòu)介紹 268
11.2.2 Vivi的工作流程 269
11.2.3 Vivi的移植操作 280
11.2.4 Vivi的常用操作命令 284
11.3 U-Boot源代碼分析與移植操作 286
11.3.1 U-Boot的特性介紹 286
11.3.2 U-Boot的源代碼結(jié)構(gòu)分析 287
11.3.3 U-Boot的啟動過程 288
11.3.4 U-Boot的移植 295
11.3.5 U-Boot的編譯操作 308
11.3.6 U-Boot的命令操作 312
11.4 本章小結(jié) 315
第12章 Linux內(nèi)核的裁剪與移植 316
12.1 Linux內(nèi)核的版本號與內(nèi)核結(jié)構(gòu) 316
12.1.1 Linux內(nèi)核的版本號 316
12.1.2 Linux內(nèi)核結(jié)構(gòu) 317
12.2 Linux2.6內(nèi)核的特點 318
12.3 Linux2.6內(nèi)核的源代碼結(jié)構(gòu) 318
12.3.1 Linux源代碼的準備工作 319
12.3.2 Linux源代碼結(jié)構(gòu)的分析 319
12.3.3 Linux源代碼中的Makefile文件 320
12.4 Linux2.6內(nèi)核的移植 328
12.4.1 Linux內(nèi)核的啟動過程 329
12.4.2 Linux內(nèi)核啟動代碼的分析 330
12.4.3 Linux內(nèi)核源代碼的修改 342
12.4.4 Linux內(nèi)核的配置 346
12.4.5 Linux內(nèi)核的編譯、燒寫與啟動 357
12.5 YAFFS文件系統(tǒng)的移植 358
12.6 本章小結(jié) 361
第13章 Linux內(nèi)核調(diào)試技術(shù)的實現(xiàn) 362
13.1 內(nèi)核態(tài)下的打印函數(shù)printk() 362
13.1.1 printk()函數(shù)的簡介及使用方法 362
13.1.2 printk()函數(shù)的源代碼分析 364
13.1.3 控制臺的相關(guān)源代碼分析 367
13.1.4 命令行參數(shù) 368
13.2 利用printk()打印信息調(diào)試內(nèi)核 369
13.3 利用Linux的/proc文件系統(tǒng)調(diào)試內(nèi)核 371
13.4 利用Oops消息調(diào)試內(nèi)核 375
13.4.1 Oops消息的內(nèi)容 375
13.4.2 ?;厮菪畔⒌闹庇^顯示 376
13.4.3 對Linux內(nèi)核進行調(diào)試 377
13.4.4 Oops消息中的棧信息分析 380
13.5 利用KGDB遠程調(diào)試內(nèi)核 382
13.5.1 KGDB的介紹 382
13.5.2 向內(nèi)核中增加KGDB調(diào)試器 384
13.5.3 在開發(fā)機上利用DDD與GDB調(diào)試內(nèi)核 388
13.6 本章小結(jié) 391
第14章 Linux系統(tǒng)的文件系統(tǒng) 392
14.1 Nand/Nor Flash存儲設(shè)備 392
14.1.1 Nand Flash存儲設(shè)備 392
14.1.2 Nor Flash存儲設(shè)備 394
14.1.3 Nand Flash和Nor Flash的區(qū)別 394
14.1.4 MTD技術(shù)簡介 395
14.2 Linux系統(tǒng)的文件系統(tǒng)概述及分類 395
14.2.1 文件系統(tǒng)概述 396
14.2.2 文件系統(tǒng)分類 396
14.3 Linux系統(tǒng)的根文件系統(tǒng) 406
14.3.1 根文件系統(tǒng)的目錄結(jié)構(gòu)概述 406
14.3.2 文件屬性分析 411
14.4 Busybox的移植操作 413
14.4.1 Busybox的簡單概述 413
14.4.2 內(nèi)核和Busybox的init進程 413
14.4.3 Busybox的配置 417
14.4.4 Busybox的編譯與安裝 422
14.5 構(gòu)建Linux系統(tǒng)的根文件系統(tǒng) 422
14.5.1 glibc庫文件的安裝 423
14.5.2 完善根文件系統(tǒng)的構(gòu)建 423
14.5.3 根文件系統(tǒng)其他目錄的構(gòu)建 426
14.5.4 YAFFS文件系統(tǒng)的制作 426
14.5.5 JFFS2文件系統(tǒng)的制作 430
14.6 本章小結(jié) 431
第15章 Linux系統(tǒng)的系統(tǒng)管理 432
15.1 存儲系統(tǒng)管理 432
15.1.1 進程的虛擬內(nèi)存空間 432
15.1.2 虛擬內(nèi)存空間的映射與地址轉(zhuǎn)換實現(xiàn) 434
15.1.3 虛擬內(nèi)存空間的管理方式與Zone區(qū)域 435
15.1.4 分配/回收內(nèi)存頁面與slab分配器 438
15.1.5 申請/釋放虛擬內(nèi)存 438
15.2 中斷與系統(tǒng)調(diào)用 439
15.2.1 中斷與系統(tǒng)調(diào)用概述 440
15.2.2 tasklet機制的介紹 441
15.2.3 系統(tǒng)調(diào)用機制的實現(xiàn) 447
15.2.4 fork()系統(tǒng)調(diào)用介紹 449
15.3 文件系統(tǒng)管理 451
15.3.1 文件與目錄簡單概述 452
15.3.2 虛擬文件系統(tǒng) 453
15.3.3 VFS的4個主要數(shù)據(jù)結(jié)構(gòu) 454
15.4 設(shè)備管理 463
15.4.1 設(shè)備與設(shè)備的管理功能 463
15.4.2 I/O設(shè)備管理 464
15.5 本章小結(jié) 470
第16章 Linux系統(tǒng)的Shell編程實現(xiàn) 471
16.1 Linux系統(tǒng)的Shell編程規(guī)則簡介 471
16.2 Linux系統(tǒng)的Shell編程實現(xiàn) 472
16.2.1 Shell程序中的變量賦值和引用 472
16.2.2 Shell程序中的鍵盤輸入實現(xiàn) 474
16.2.3 使用VI編輯器編寫Shell腳本 476
16.2.4 如何修改腳本文件的訪問權(quán)限 477
16.2.5 Shell腳本程序的執(zhí)行方式 477
16.3 Shell腳本程序中的參數(shù)及函數(shù) 478
16.3.1 位置參數(shù) 478
16.3.2 內(nèi)部參數(shù) 479
16.3.3 特殊符號 480
16.3.4 幫助命令 481
16.4 Shell腳本程序中的表達式 482
16.4.1 字符串操作符 483
16.4.2 數(shù)字的比較 484
16.4.3 邏輯操作符 484
16.4.4 文件操作符 485
16.5 Shell腳本程序中的循環(huán)結(jié)構(gòu) 486
16.5.1 for循環(huán)語句的使用 486
16.5.2 while循環(huán)語句的使用 487
16.5.3 until循環(huán)語句的使用 488
16.6 Shell腳本程序中的條件結(jié)構(gòu) 488
16.6.1 if條件語句的使用 488
16.6.2 case條件語句的使用 489
16.7 Shell程序中函數(shù)與腳本的調(diào)用 490
16.7.1 函數(shù)的編寫與調(diào)用 490
16.7.2 腳本的調(diào)用 491
16.8 本章小結(jié) 491
第3篇 Linux系統(tǒng)的實驗篇
第17章 Linux系統(tǒng)的設(shè)備驅(qū)動開發(fā)基礎(chǔ) 492
17.1 Linux系統(tǒng)的驅(qū)動程序概述 492
17.1.1 驅(qū)動程序的調(diào)用關(guān)系 492
17.1.2 驅(qū)動程序的分類及作用 493
17.1.3 硬件設(shè)備的識別與驅(qū)動代碼的開發(fā)流程 494
17.1.4 硬件設(shè)備的控制方式 495
17.2 Linux系統(tǒng)的硬件設(shè)備驅(qū)動開發(fā)流程及示例 495
17.2.1 構(gòu)建一個簡單的驅(qū)動代碼模塊 495
17.2.2 虛擬字符設(shè)備驅(qū)動的測試 498
17.2.3 LED驅(qū)動開發(fā) 504
17.3 Linux系統(tǒng)的硬件設(shè)備驅(qū)動開發(fā)相關(guān)技術(shù) 510
17.3.1 并發(fā)控制原理 510
17.3.2 并發(fā)控制的相關(guān)函數(shù) 510
17.3.3 并發(fā)控制示例 513
17.3.4 設(shè)備驅(qū)動程序中的阻塞與非阻塞 516
17.3.5 設(shè)備驅(qū)動程序中的poll函數(shù)應(yīng)用 520
17.3.6 設(shè)備驅(qū)動程序中的中斷處理應(yīng)用 522
17.3.7 設(shè)備驅(qū)動代碼中關(guān)于內(nèi)存與I/O操作的應(yīng)用 524
17.4 Linux系統(tǒng)的塊設(shè)備的驅(qū)動程序編寫 529
17.4.1 塊設(shè)備的I/O操作 529
17.4.2 與塊設(shè)備相關(guān)的結(jié)構(gòu)體及函數(shù) 530
17.4.3 塊設(shè)備驅(qū)動代碼編寫的相關(guān)技術(shù) 535
17.5 本章小結(jié) 541
第18章 Linux系統(tǒng)的硬件設(shè)備驅(qū)動編寫實驗 542
18.1 按鍵設(shè)備的驅(qū)動開發(fā) 542
18.2 虛擬塊設(shè)備的驅(qū)動開發(fā) 550
18.3 網(wǎng)口設(shè)備的驅(qū)動開發(fā) 560
18.4 LCD設(shè)備的驅(qū)動開發(fā) 565
18.5 SD卡設(shè)備的驅(qū)動開發(fā) 568
18.6 USB設(shè)備的驅(qū)動開發(fā) 570
18.7 本章小結(jié) 572

本目錄推薦

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