注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)嵌入式Linux開發(fā)教程

嵌入式Linux開發(fā)教程

嵌入式Linux開發(fā)教程

定 價(jià):¥59.80

作 者: 宋娟,馬華杰 著
出版社: 人民郵電出版社
叢編項(xiàng): Linux創(chuàng)新人才培養(yǎng)系列
標(biāo) 簽: 操作系統(tǒng)/系統(tǒng)開發(fā) 計(jì)算機(jī)?網(wǎng)絡(luò)

ISBN: 9787115447012 出版時(shí)間: 2017-07-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 330 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  第1篇為嵌入式基礎(chǔ),介紹了嵌入式系統(tǒng)入門、嵌入式軟硬件系統(tǒng)、嵌入式Linux、軟件開發(fā)環(huán)境建立和嵌入式開發(fā)的C語(yǔ)言基礎(chǔ);第2篇是嵌入式系統(tǒng)基礎(chǔ),介紹了ARM的內(nèi)部資源、ARM處理器、ADS集成開發(fā)環(huán)境等;第3篇是嵌入式設(shè)備驅(qū)動(dòng)與移植,介紹了Linux設(shè)備驅(qū)動(dòng)、各類驅(qū)動(dòng)設(shè)計(jì)和引導(dǎo)程序、內(nèi)核移植等相關(guān)知識(shí)點(diǎn);最后一篇通過(guò)一個(gè)真正的嵌入式B超程序案例詳解嵌入式開發(fā)的完整過(guò)程,以此提高讀者的實(shí)戰(zhàn)水平。

作者簡(jiǎn)介

  作者技術(shù)涉獵廣泛,熟悉Intel IXA架構(gòu)網(wǎng)絡(luò)處理器、ARM體系結(jié)構(gòu)、MIPS體系結(jié)構(gòu)和TCP/IP網(wǎng)絡(luò)協(xié)議棧等。目前擔(dān)任嵌入式軟件研發(fā)工程師和軟件研發(fā)工程師,從事某公司骨干網(wǎng)P2P流量管理設(shè)備的研發(fā)。

圖書目錄

第1篇 嵌入式開發(fā)基礎(chǔ)
第1章 嵌入式系統(tǒng)基礎(chǔ) 1
1.1 嵌入式處理器簡(jiǎn)介 1
1.1.1 嵌入式微處理器 2
1.1.2 嵌入式微控制器 2
1.1.3 嵌入式數(shù)字信號(hào)處理器 2
1.1.4 嵌入式片上系統(tǒng) 3
1.2 ARM微處理器簡(jiǎn)介 3
1.3 嵌入式操作系統(tǒng)概述 4
1.4 搭建嵌入式開發(fā)環(huán)境 5
1.4.1 Ubuntu16.04的安裝 5
1.4.2 Minicom的安裝配置 8
1.4.3 Tftp服務(wù)的安裝配置 9
1.4.4 NFS的安裝配置 10
1.4.5 建立交叉工具鏈 12
1.5 啟動(dòng)目標(biāo)板系統(tǒng) 16
1.5.1 Boot Loader和Kernel 16
1.5.2 根文件系統(tǒng) 18
1.6 小結(jié) 19
1.7 習(xí)題 19
第2章 嵌入式C語(yǔ)言開發(fā)流程 20
2.1 命令行下的開發(fā)流程 20
2.1.1 編寫代碼 20
2.1.2 編譯程序 21
2.1.3 運(yùn)行程序 22
2.1.4 交叉編譯 22
2.1.5 編寫Makefile 23
2.2 基于Eclipse的開發(fā)流程 24
2.2.1 下載和安裝Eclipse 24
2.2.2 新建工程 25
2.2.3 編寫代碼 26
2.2.4 編譯工程 26
2.2.5 運(yùn)行程序 28
2.3 小結(jié) 28
2.4 習(xí)題 28
第3章 Linux操作基礎(chǔ) 29
3.1 Linux的基本概念 29
3.1.1 文件 29
3.1.2 目錄 29
3.1.3 分區(qū) 31
3.1.4 掛載 31
3.1.5 用戶系統(tǒng) 31
3.1.6 用戶權(quán)限 32
3.1.7 shell 32
3.1.8 環(huán)境變量 33
3.2 Linux的命令行 33
3.2.1 執(zhí)行命令 34
3.2.2 參數(shù) 34
3.2.3 重定向符號(hào) 34
3.2.4 獲取幫助 35
3.3 Linux的常用命令 36
3.3.1 文件管理 36
3.3.2 內(nèi)容管理 39
3.3.3 權(quán)限管理 40
3.3.4 備份壓縮 41
3.3.5 系統(tǒng)設(shè)置 43
3.3.6 進(jìn)程控制 45
3.3.7 網(wǎng)絡(luò)設(shè)置 47
3.4 小結(jié) 48
3.5 習(xí)題 49
第4章 嵌入式C編程基礎(chǔ) 50
4.1 C語(yǔ)言概述 50
4.1.1 C語(yǔ)言程序的結(jié)構(gòu) 50
4.1.2 C語(yǔ)言的語(yǔ)句 51
4.1.3 C語(yǔ)言的關(guān)鍵字 51
4.1.4 C語(yǔ)言程序設(shè)計(jì)步驟 51
4.2 數(shù)據(jù)類型 52
4.2.1 常量與變量 52
4.2.2 整型數(shù)據(jù)、實(shí)型數(shù)據(jù) 52
4.2.3 字符型數(shù)據(jù) 53
4.3 運(yùn)算符和表達(dá)式 53
4.3.1 算術(shù)運(yùn)算符 53
4.3.2 關(guān)系和邏輯運(yùn)算符 53
4.3.3 位操作符 54
4.3.4?。坎僮鞣?5
4.3.5 表達(dá)式的優(yōu)先級(jí) 55
4.4 流程控制 55
4.4.1 順序程序設(shè)計(jì) 55
4.4.2 選擇結(jié)構(gòu)設(shè)計(jì) 56
4.4.3 循環(huán)結(jié)構(gòu)設(shè)計(jì) 57
4.5 函數(shù) 58
4.5.1 函數(shù)定義的一般形式 58
4.5.2 函數(shù)的參數(shù)和函數(shù)的值 59
4.5.3 函數(shù)的調(diào)用 59
4.5.4 局部變量和全局變量 60
4.6 數(shù)組、指針 61
4.6.1 數(shù)組 61
4.6.2 指針的基本概念 62
4.6.3 指針與數(shù)組 64
4.6.4 指針與字符串 66
4.6.5 指針與函數(shù) 67
4.6.6 指針其他用法 68
4.6.7 動(dòng)態(tài)內(nèi)存管理 68
4.7 小結(jié) 69
4.8 習(xí)題 69
第2篇 嵌入式系統(tǒng)基礎(chǔ)
第5章 S3C2440的內(nèi)部資源 70
5.1 S3C2440微處理器 70
5.1.1 主要結(jié)構(gòu) 70
5.1.2 片內(nèi)資源 70
5.1.3 體系結(jié)構(gòu) 71
5.2 S3C2440存儲(chǔ)器映射 71
5.2.1 bank0總線寬度 72
5.2.2 nWAIT引腳的作用 73
5.2.3 nXBREQ/nXBACK引腳操作 73
5.3 S3C2440內(nèi)部資源詳解 73
5.3.1 Cache高速緩存 74
5.3.2 時(shí)鐘和電源管理 74
5.3.3 中斷控制器 75
5.3.4 脈沖帶寬調(diào)制(PWM)定時(shí)器 76
5.3.5 實(shí)時(shí)時(shí)鐘(RTC) 77
5.3.6 通用I/O端口 77
5.3.7 LCD控制器 77
5.3.8 UART控制器 78
5.3.9 A/D轉(zhuǎn)換和觸摸屏接口 79
5.3.10 看門狗定時(shí)器 79
5.3.11 IIC總線接口 79
5.3.12 AC97音頻解碼器接口 80
5.3.13 USB設(shè)備控制器 80
5.3.14 SD接口 81
5.3.15 SPI接口 81
5.3.16 相機(jī)接口 82
5.3.17 工作電壓 82
5.4 小結(jié) 82
5.5 習(xí)題 82
第6章 ARM微處理器 84
6.1 ARM微處理器的結(jié)構(gòu) 84
6.1.1 體系結(jié)構(gòu) 84
6.1.2 寄存器結(jié)構(gòu) 85
6.1.3 指令結(jié)構(gòu) 85
6.2 ARM微處理器的選擇 85
6.2.1 內(nèi)核的選擇 85
6.2.2 工作頻率的選擇 85
6.2.3 芯片內(nèi)存儲(chǔ)器的選擇 86
6.2.4 片內(nèi)外圍電路的選擇 86
6.3 ARM微處理器的指令集 86
6.3.1 ARM微處理器的指令分類和
格式 86
6.3.2 指令的條件域 87
6.3.3 跳轉(zhuǎn)指令 88
6.3.4 數(shù)據(jù)處理指令 88
6.3.5 乘法指令與乘加指令 92
6.3.6 程序狀態(tài)寄存器訪問(wèn)指令 94
6.3.7 加載/存儲(chǔ)指令 95
6.3.8 批量數(shù)據(jù)加載/存儲(chǔ)指令 97
6.3.9 數(shù)據(jù)交換指令 97
6.3.10 移位指令 98
6.3.11 協(xié)處理器指令 99
6.3.12 異常產(chǎn)生指令 100
6.4 ARM微處理器指令的尋址方式 101
6.4.1 立即尋址 101
6.4.2 寄存器尋址 101
6.4.3 寄存器間接尋址 101
6.4.4 基址變址尋址 102
6.4.5 多寄存器尋址 102
6.4.6 相對(duì)尋址 102
6.4.7 堆棧尋址 102
6.5 小結(jié) 103
6.6 習(xí)題 103
第7章 ADS集成開發(fā)環(huán)境 104
7.1 命令行開發(fā)工具 104
7.1.1 使用armcc 104
7.1.2 使用armlink 106
7.1.3 ARM運(yùn)行時(shí)庫(kù) 106
7.1.4 CodeWarrior集成開發(fā)環(huán)境 107
7.1.5 ADS調(diào)試器 109
7.2 使用ADS創(chuàng)建工程 109
7.2.1 創(chuàng)建新工程 109
7.2.2 編譯和鏈接工程 112
7.2.3 ARM fromELF工具 114
7.2.4 在命令行下編譯工程 115
7.3 使用AXD調(diào)試代碼 116
7.3.1 打開調(diào)試文件 116
7.3.2 查看存儲(chǔ)器內(nèi)容 117
7.3.3 設(shè)置斷點(diǎn) 118
7.3.4 查看變量值 118
7.4 小結(jié) 119
7.5 習(xí)題 119
第8章 S3C2440的外部電路 120
8.1 核心板電路 120
8.1.1 晶振電路 120
8.1.2 復(fù)位電路 120
8.1.3 啟動(dòng)配置電路 120
8.1.4 FLASH存儲(chǔ)器(內(nèi)存) 121
8.1.5 SDRAM存儲(chǔ)器(閃存) 123
8.2 底板電路 124
8.2.1 電源電路 125
8.2.2 串口電路 125
8.2.3 USB接口 126
8.2.4 以太網(wǎng)接口 127
8.2.5 JTAG調(diào)試接口 127
8.2.6 音頻接口 128
8.2.7 LCD接口 129
8.2.8 SD卡接口 129
8.3 小結(jié) 130
8.4 習(xí)題 130
第9章 嵌入式Linux文件系統(tǒng) 131
9.1 嵌入式文件系統(tǒng)基礎(chǔ) 131
9.1.1 NOR FLASH存儲(chǔ)器 131
9.1.2 NAND FLASH存儲(chǔ)器 132
9.1.3 MTD簡(jiǎn)介 132
9.1.4 日志型文件系統(tǒng) 133
9.1.5 BusyBox 134
9.2 CramFS文件系統(tǒng) 136
9.2.1 CramFS文件系統(tǒng)的特性 136
9.2.2 CramFS文件系統(tǒng)映像文件的
結(jié)構(gòu) 137
9.2.3 CramFS文件系統(tǒng)的工作原理 137
9.2.4 CramFS文件系統(tǒng)的初始化
過(guò)程 138
9.2.5 CramFS文件系統(tǒng)的制作 139
9.2.6 CramFS文件系統(tǒng)的掛載流程 141
9.3 基于RAM的文件系統(tǒng) 142
9.3.1 Ramdisk文件系統(tǒng) 142
9.3.2 RamFS/TmpFS文件系統(tǒng) 143
9.4 嵌入式文件系統(tǒng)的設(shè)計(jì) 145
9.4.1 文件系統(tǒng)格式選擇的基本策略 145
9.4.2 混合型文件系統(tǒng)格式設(shè)計(jì)方法 145
9.5 小結(jié) 146
9.6 習(xí)題 146
第10章 內(nèi)存和信號(hào)量 148
10.1 共享內(nèi)存 148
10.1.1 共享內(nèi)存的定義 148
10.1.2 涉及的系統(tǒng)調(diào)用 148
10.1.3 共享內(nèi)存舉例 150
10.2 System V共享內(nèi)存 152
10.2.1 System V共享內(nèi)存的定義 152
10.2.2 System V涉及的系統(tǒng)調(diào)用 152
10.2.3 System V共享內(nèi)存舉例 153
10.3 消息隊(duì)列 154
10.3.1 消息隊(duì)列的定義 154
10.3.2 消息隊(duì)列涉及的系統(tǒng)調(diào)用 154
10.3.3 消息隊(duì)列舉例 156
10.4 System V信號(hào)量 158
10.4.1 System V信號(hào)量的定義 158
10.4.2 System V信號(hào)量涉及的系統(tǒng)
調(diào)用 159
10.4.3 System V信號(hào)量舉例 160
10.5 POSIX信號(hào)量 163
10.5.1 POSIX信號(hào)量的定義 163
10.5.2 POSIX信號(hào)量涉及的系統(tǒng)
調(diào)用 163
10.5.3 POSIX信號(hào)量舉例 164
10.6 小結(jié) 165
10.7 習(xí)題 166
第3篇 嵌入式設(shè)備驅(qū)動(dòng)與移植
第11章 設(shè)備驅(qū)動(dòng)開發(fā)基礎(chǔ) 167
11.1 Linux設(shè)備管理和驅(qū)動(dòng)概述 167
11.1.1 Linux設(shè)備的分類 167
11.1.2 設(shè)備驅(qū)動(dòng)程序的作用 167
11.1.3 訪問(wèn)設(shè)備的實(shí)現(xiàn) 168
11.1.4 Linux設(shè)備控制方式 168
11.2 Linux設(shè)備驅(qū)動(dòng)開發(fā)流程 169
11.2.1 構(gòu)造和運(yùn)行模塊 170
11.2.2 字符設(shè)備驅(qū)動(dòng)編寫 171
11.2.3 字符設(shè)備驅(qū)動(dòng)示例 172
11.2.4 并發(fā)控制 174
11.2.5 阻塞與非阻塞 180
11.2.6 select和poll 183
11.2.7 中斷處理 185
11.2.8 內(nèi)存與I/O操作 187
11.3 塊設(shè)備驅(qū)動(dòng)編寫 191
11.3.1 塊設(shè)備的I/O操作特點(diǎn) 191
11.3.2 block_device_operations
結(jié)構(gòu)體 191
11.3.3 gendisk結(jié)構(gòu)體 192
11.3.4 request結(jié)構(gòu)體 193
11.3.5 request操作函數(shù) 196
11.3.6 bio結(jié)構(gòu)體 197
11.3.7 注冊(cè)與注銷 199
11.3.8 加載與卸載 199
11.3.9 打開與釋放 201
11.3.10 ioctl函數(shù) 202
11.3.11 I/O請(qǐng)求處理 202
11.4 小結(jié) 206
11.5 習(xí)題 206
第12章 MiniGUI圖形界面設(shè)計(jì) 207
12.1 MiniGUI概述 207
12.1.1 MiniGUI的特點(diǎn) 207
12.1.2 MiniGUI運(yùn)行模式 208
12.2 MiniGUI的安裝和使用 208
12.2.1 安裝MiniGUI庫(kù) 208
12.2.2 安裝MiniGUI的資源 209
12.2.3 配置MiniGUI 210
12.2.4 編譯應(yīng)用程序例子 210
12.2.5 交叉編譯MiniGUI庫(kù) 210
12.2.6 交叉編譯例程 211
12.2.7 QVFB圖形引擎 211
12.2.8 FrameBuffer圖形引擎 212
12.3 利用Eclipse編寫MiniGUI程序 213
12.3.1 建立vacs工程 213
12.3.2 配置編譯選項(xiàng) 214
12.3.3 配置外部工具QVFB 214
12.3.4 運(yùn)行vacs 215
12.3.5 調(diào)試vacs 215
12.4 MiniGUI的編程基礎(chǔ) 215
12.4.1 頭文件 217
12.4.2 程序入口 217
12.4.3 創(chuàng)建和顯示主窗口 217
12.4.4 進(jìn)入消息循環(huán) 218
12.4.5 窗口過(guò)程函數(shù) 219
12.4.6 屏幕輸出 219
12.4.7 程序的退出 219
12.5 消息循環(huán)和窗口過(guò)程 220
12.5.1 消息處理函數(shù) 220
12.5.2 重要的消息 221
12.5.3 窗口及窗口過(guò)程 221
12.6 對(duì)話框和控件編程 223
12.6.1 控件的概念 223
12.6.2 預(yù)定義控件 223
12.6.3 自定義控件 225
12.6.4 控件子類化 226
12.6.5 對(duì)話框和對(duì)話框模板 227
12.6.6 模態(tài)和非模態(tài)對(duì)話框 230
12.7 圖形設(shè)備接口 230
12.7.1 圖形設(shè)備上下文 230
12.7.2 矩形操作和區(qū)域操作 231
12.7.3 像素值和調(diào)色板 233
12.7.4 位圖操作函數(shù) 233
12.7.5 字體和文本輸出 234
12.7.6 繪制圖形 236
12.8 實(shí)例——MiniQQ界面設(shè)計(jì) 238
12.8.1 登錄窗口 239
12.8.2 好友列表窗口 242
12.8.3 聊天窗口 246
12.8.4 其他 248
12.9 小結(jié) 248
12.10 習(xí)題 249
第13章 各類驅(qū)動(dòng)設(shè)計(jì)和
引導(dǎo)程序 250
13.1 CAN總線和SJA1000介紹 250
13.1.1 SJA1000寄存器介紹 250
13.1.2 SJA1000與S3C2440連接 254
13.1.3 SJA1000的驅(qū)動(dòng)程序 256
13.2 SD卡驅(qū)動(dòng) 266
13.2.1 塊設(shè)備驅(qū)動(dòng)設(shè)計(jì) 266
13.2.2 SD卡驅(qū)動(dòng)程序分析 266
13.2.3 SD卡驅(qū)動(dòng)程序設(shè)計(jì) 266
13.3 網(wǎng)絡(luò)驅(qū)動(dòng) 269
13.3.1 DM9000芯片介紹 269
13.3.2 重要數(shù)據(jù)結(jié)構(gòu) 269
13.3.3 網(wǎng)絡(luò)設(shè)備初始化 271
13.3.4 激活和關(guān)閉網(wǎng)絡(luò)設(shè)備 274
13.3.5 中斷控制的實(shí)現(xiàn) 274
13.3.6 發(fā)送過(guò)程的實(shí)現(xiàn) 276
13.3.7 接收過(guò)程的實(shí)現(xiàn) 278
13.4 引導(dǎo)程序 280
13.4.1 Boot Loader 281
13.4.2 vivi簡(jiǎn)介 281
13.4.3 U-Boot簡(jiǎn)介 290
13.5 小結(jié) 295
13.6 習(xí)題 295
第14章 內(nèi)核移植 296
14.1 Linux內(nèi)核結(jié)構(gòu) 296
14.2 Linux源碼結(jié)構(gòu) 298
14.2.1 arch目錄 298
14.2.2 drivers目錄 298
14.2.3 fs目錄 299
14.2.4 其他目錄 300
14.3 內(nèi)核編譯 302
14.3.1 編譯準(zhǔn)備 302
14.3.2 設(shè)置Flash分區(qū) 302
14.3.3 配置內(nèi)核 305
14.4 內(nèi)核配置選項(xiàng) 307
14.4.1 常規(guī)設(shè)置 307
14.4.2 模塊和塊設(shè)備層 309
14.5 下載內(nèi)核 309
14.6 內(nèi)核調(diào)試 310
14.6.1 內(nèi)核調(diào)試步驟 310
14.6.2 常見內(nèi)核問(wèn)題 311
14.7 小結(jié) 312
14.8 習(xí)題 312
第4篇 嵌入式開發(fā)實(shí)戰(zhàn)
第15章 綜合案例—
嵌入式B超 313
15.1 系統(tǒng)終端的結(jié)構(gòu)設(shè)計(jì) 313
15.1.1 總體結(jié)構(gòu) 313
15.1.2 顯示控制芯片選型 314
15.2 系統(tǒng)終端的軟件設(shè)計(jì) 314
15.2.1 U-Boot 314
15.2.2 嵌入式Linux移植 315
15.2.3 MiniGUI移植 315
15.3 FPGA與ARM接口設(shè)計(jì) 318
15.3.1 硬件連接 318
15.3.2 FPGA驅(qū)動(dòng)程序設(shè)計(jì) 318
15.4 顯示芯片的連接與控制 319
15.4.1 選擇SM501的原因 320
15.4.2 SM501驅(qū)動(dòng)程序設(shè)計(jì) 320
15.5 超聲動(dòng)態(tài)圖像的實(shí)時(shí)顯示 321
15.5.1 圖像動(dòng)態(tài)顯示 322
15.5.2 坐標(biāo)轉(zhuǎn)換和灰度插值 322
15.6 圖形界面的結(jié)構(gòu) 323
15.6.1 需求分析 323
15.6.2 總體結(jié)構(gòu) 324
15.6.3 網(wǎng)絡(luò)通信 324
15.6.4 多線程編程 325
15.7 操作界面設(shè)計(jì) 326
15.7.1 區(qū)域分配 326
15.7.2 鍵盤響應(yīng) 326
15.7.3 控件設(shè)計(jì) 327
15.8 測(cè)量模塊設(shè)計(jì) 328
15.8.1 橢圓的畫法 328
15.8.2 橢圓測(cè)量周長(zhǎng)和面積 329
15.8.3 軌跡法測(cè)量面積 329
15.9 小結(jié) 330
15.10 習(xí)題 330

本目錄推薦

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