国产精品一久久香蕉产线看/亚洲图区欧美/亚洲国产精品电影人久久网站/欧美日韩在线视频一区

歡迎光臨中圖網(wǎng) 請(qǐng) | 注冊(cè)
> >>
嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程

包郵 嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程

出版社:人民郵電出版社出版時(shí)間:2023-12-01
開本: 16開 頁數(shù): 364
中 圖 價(jià):¥64.8(7.2折) 定價(jià)  ¥89.8 登錄后可看到會(huì)員價(jià)
加入購物車 收藏
開年大促, 全場(chǎng)包郵
?新疆、西藏除外
本類五星書更多>

嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程 版權(quán)信息

嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程 本書特色

系統(tǒng)全面

條分縷析、由淺入深地講解ARM處理器內(nèi)核知識(shí)及周邊知識(shí)



精華原創(chuàng)

凝結(jié)作者多年研發(fā)及教學(xué)經(jīng)驗(yàn),幫助讀者深度掌握ARM處理器編程



可學(xué)習(xí)性

內(nèi)容豐富、編排合理,是為“萌新學(xué)員”準(zhǔn)備的豪華“工具包”

嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程 內(nèi)容簡(jiǎn)介

本書基于ARM Cortex-A8 內(nèi)核的三星 S5PV210 CPU,主要講解 ARM CPU 開發(fā)的全套相關(guān)技術(shù),包括ARM體系的背景知識(shí)、常規(guī)開發(fā)方式、ARM 體系結(jié)構(gòu)和匯編指令集。本書還基于 X210 開發(fā)板講解了開發(fā)板的原理圖、芯片的數(shù)據(jù)手冊(cè),以及開發(fā)板的刷機(jī)流程等,講解了 GPIO、LED、DDR、串口、定時(shí)器、看門狗、SD 卡、NAND Flash、iNAND、I2C 總線、LCD 屏、A/D 轉(zhuǎn)換器、電阻式和電容式觸摸屏等 ARM CPU 常見外設(shè)的原 理,并使用匯編和 C 語言編程進(jìn)行了外設(shè)及代碼重定位、時(shí)鐘體系等的原理和功能的編程實(shí)踐。本書*后還利用X210 平臺(tái)結(jié)合部分外設(shè)寫了一個(gè)裸機(jī)串口的 Shell 作為小項(xiàng)目,幫助讀者理解什么是交互式 Shell,為下一階段U-Boot 及 Linux 內(nèi)核的學(xué)習(xí)打好基礎(chǔ)。在具體講解過程中,本書引用了產(chǎn)品的一部分原始英文圖表,并有針對(duì)性地進(jìn)行了適當(dāng)?shù)恼f明。 本書適合從事 CPU 開發(fā)等相關(guān)工作的人員和相關(guān)專業(yè)的學(xué)生閱讀參考。

嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程 目錄

ARM那些你需要知道的事 01

1.1 ARM公司大事記 01

1.2 ARM公司的商業(yè)模式和生態(tài)系統(tǒng) 02

1.3 ARM處理器版本命名解析 03

1.3.1 如何描述ARM處理器的版本號(hào) 03

1.3.2 ARM處理器版本的發(fā)展歷程 04

1.4 CPU和SoC的區(qū)別及外圍設(shè)備的概念 05

1.4.1 CPU和SoC的區(qū)別 05

1.4.2 外圍設(shè)備 06

1.5 學(xué)習(xí)平臺(tái)的選擇 06

1.5.1 學(xué)習(xí)平臺(tái)的選擇要求 06

1.5.2 為什么選擇三星S5PV210 06

1.6 X210開發(fā)板介紹 07

1.7 基于單片機(jī)的嵌入式系統(tǒng)和基于復(fù)雜操作系統(tǒng)的

嵌入式系統(tǒng)的區(qū)別 07

1.7.1 芯片平臺(tái)對(duì)比 08

1.7.2 片上資源、價(jià)格、應(yīng)用領(lǐng)域上的對(duì)比 08

1.7.3 開發(fā)模式對(duì)比 08

1.7.4 技術(shù)特征對(duì)比 08

1.7.5 職業(yè)發(fā)展對(duì)比 09

1.8 嵌入式開發(fā)學(xué)習(xí)和編程語言、英語水平等的

關(guān)系 09

1.8.1 嵌入式開發(fā)學(xué)習(xí)和編程語言的關(guān)系 09

1.8.2 嵌入式開發(fā)學(xué)習(xí)和英語水平的關(guān)系 09

1.8.3 嵌入式開發(fā)學(xué)習(xí)和數(shù)電、模電的關(guān)系 09

1.8.4 嵌入式開發(fā)學(xué)習(xí)和專業(yè)的關(guān)系 09

1.8.5 嵌入式開發(fā)學(xué)習(xí)和個(gè)人性格的關(guān)系 10

1.9 嵌入式系統(tǒng)的構(gòu)成、特點(diǎn)和發(fā)展方向 10

1.9.1 嵌入式系統(tǒng)的構(gòu)成 10

1.9.2 嵌入式系統(tǒng)的特點(diǎn) 10

1.9.3 嵌入式系統(tǒng)的發(fā)展方向 11

1.10 交叉編譯 12

1.10.1 軟件開發(fā)的兩種模式 12

1.10.2 交叉編譯的特點(diǎn) 12

1.11 CPU的設(shè)計(jì)原理、地址總線/數(shù)據(jù)總線/控制

總線 13

1.11.1 CPU的設(shè)計(jì)原理 13

1.11.2 地址總線、數(shù)據(jù)總線和控制總線 13

1.12 嵌入式輔助開發(fā)工具 14

1.13 習(xí)題 14





ARM CPU的體系結(jié)構(gòu)與匯編指令 15

2.1 可編程器件的編程原理 15

2.2 指令集對(duì)CPU的意義 16

2.3 CISC和RISC 16

2.4 統(tǒng)一編址和獨(dú)立編址、馮·諾依曼結(jié)構(gòu)和哈佛

結(jié)構(gòu) 17

2.4.1 I/O與內(nèi)存的統(tǒng)一編址和獨(dú)立編址 17

2.4.2 馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu) 18

2.5 軟件編程控制硬件的關(guān)鍵——寄存器 19

2.5.1 寄存器的含義及查看方法 19

2.5.2 寄存器的分類 21

2.6 S5PV210的地址映射詳解 21

2.7 CPU的外存儲(chǔ)器和接口方式 24

2.7.1 SoC外存儲(chǔ)器分類與介紹 25

2.7.2 S5PV210支持的外存儲(chǔ)器 26

2.8 S5PV210的啟動(dòng)過程詳解 27

2.8.1 不同計(jì)算機(jī)系統(tǒng)內(nèi)存和外存配置的區(qū)別 27

2.8.2 S5PV210啟動(dòng)方式詳解 28

2.8.3 X210開發(fā)板啟動(dòng)方式選擇 30

2.9 ARM CPU的編程模式和7種工作模式 32

2.9.1 ARM CPU的編程模式 32

2.9.2 ARM CPU的7種工作模式 33

2.10 ARM CPU的37個(gè)寄存器詳解 34

2.11 ARM CPU的異常處理方式簡(jiǎn)介 37

2.12 ARM匯編指令集詳解 38

2.12.1 ARM匯編指令集總述 38

2.12.2 ARM匯編指令集中指令的分類及詳細(xì)講解 40

2.12.3 ARM匯編指令中的偽指令 46

2.13 習(xí)題 48





開發(fā)板、原理圖和數(shù)據(jù)手冊(cè) 49

3.1 開發(fā)板配置簡(jiǎn)介 49

3.2 資料導(dǎo)讀 50

3.2.1 開發(fā)板硬件手冊(cè)導(dǎo)讀 50

3.2.2 X210核心板、底板原理圖導(dǎo)讀 51

3.2.3 S5PV210數(shù)據(jù)手冊(cè) 55

3.3 開發(fā)板刷系統(tǒng) 56

3.3.1 刷機(jī)工具簡(jiǎn)介 56

3.3.2 開發(fā)板刷系統(tǒng)方法介紹 58

3.4 新開發(fā)板X210BV3S 65

3.5 習(xí)題 66





GPIO和LED 67

4.1 交叉編譯工具鏈 67

4.2 Makefile 70

4.3 mkv210_image.c 73

4.3.1 mkv210_image.c的作用 73

4.3.2 mkv210_image.c代碼解析 74

4.4 編寫點(diǎn)亮LED程序前的相關(guān)準(zhǔn)備工作 77

4.5 點(diǎn)亮LED 81

4.6 擴(kuò)展:反匯編工具objdump 87

4.7 習(xí)題 89

SDRAM和重定位 90

5.1 關(guān)閉看門狗 90

5.2 設(shè)置棧和調(diào)用C程序 92

5.3 用匯編語言編寫啟動(dòng)代碼之開/關(guān)iCache 95

5.4 重定位引入與編程實(shí)現(xiàn) 96

5.4.1 重定位引入和鏈接腳本 96

5.4.2 重定位代碼實(shí)現(xiàn) 99

5.5 SDRAM初始化 102

5.5.1 原理圖中SDRAM相關(guān)部分分析 103

5.5.2 數(shù)據(jù)手冊(cè)中SDRAM相關(guān)部分分析 104

5.5.3 代碼實(shí)戰(zhàn) 111

5.6 習(xí)題 117





時(shí)鐘系統(tǒng) 118

6.1 SoC時(shí)鐘系統(tǒng)簡(jiǎn)介 118

6.2 S5PV210的時(shí)鐘系統(tǒng) 119

6.3 時(shí)鐘設(shè)置的關(guān)鍵寄存器分析 126

6.4 實(shí)現(xiàn)時(shí)鐘設(shè)置代碼詳解 126

6.4.1 S5PV210時(shí)鐘設(shè)置的步驟分析 126

6.4.2 S5PV210時(shí)鐘設(shè)置匯編語言代碼分析 127

6.4.3 S5PV210時(shí)鐘設(shè)置C語言代碼分析 132

6.5 習(xí)題 134





串口通信 135

7.1 通信發(fā)展史及電子通信涉及的基礎(chǔ)概念 135

7.1.1 通信發(fā)展史 135

7.1.2 電子通信中涉及的概念 136

7.2 串口通信的基本概念 138

7.3 串口通信的基本原理 140

7.4 S5PV210串口通信詳解 142

7.4.1 原理框圖與自動(dòng)流控 142

7.4.2 3種擴(kuò)展模式 144

7.4.3 串口通信中的中斷與時(shí)鐘 145

7.5 S5PV210串口通信編程實(shí)戰(zhàn) 146

7.6 uart stdio的移植介紹 156

7.7 習(xí)題 164





按鍵和CPU中斷系統(tǒng) 165

8.1 按鍵 165

8.2 S5PV210的中斷體系介紹 167

8.3 異常向量表的編程處理 168

8.3.1 訪問異常向量表 169

8.3.2 中斷處理過程中匯編代碼的使用 169

8.4 S5PV210中斷處理的主要寄存器 170

8.5 中斷處理的代碼實(shí)現(xiàn)步驟 172

8.6 按鍵與外部中斷 175

8.6.1 外部中斷寄存器配置 175

8.6.2 外部中斷實(shí)現(xiàn)按鍵 175

8.7 習(xí)題 176





定時(shí)器、看門狗和實(shí)時(shí)時(shí)鐘等 177

9.1 定時(shí)器 177

9.2 S5PV210中的PWM定時(shí)器介紹 178

9.2.1 S5PV210的PWM定時(shí)器原理圖簡(jiǎn)介 179

9.2.2 預(yù)分頻器與分頻器 180

9.2.3 TCNT、TCNTB、TCON和TCNTO寄存器

功能介紹 181

9.2.4 自動(dòng)重載和雙緩沖 183

9.3 PWM波形介紹 183

9.3.1 什么是PWM 183

9.3.2 PWM波形的生成原理 184

9.3.3 輸出電平翻轉(zhuǎn)器 185

9.3.4 死區(qū)生成器 185

9.4 蜂鳴器和PWM定時(shí)器編程實(shí)戰(zhàn) 186

9.4.1 蜂鳴器的工作原理 186

9.4.2 原理圖和硬件信息 187

9.4.3 驅(qū)動(dòng)蜂鳴器的PWM定時(shí)器代碼編寫 188

9.4.4 編寫C語言主函數(shù)、子函數(shù) 190

9.4.5 修改Makefile 191

9.5 看門狗 192

9.5.1 什么是看門狗及看門狗的作用 193

9.5.2 S5PV210看門狗的結(jié)構(gòu)原理圖 193

9.5.3 看門狗的主要寄存器 193

9.6 看門狗的編程實(shí)戰(zhàn) 194

9.6.1 看門狗產(chǎn)生中斷信號(hào)功能代碼編寫 194

9.6.2 看門狗產(chǎn)生復(fù)位信號(hào)功能代碼編寫 198

9.7 實(shí)時(shí)時(shí)鐘介紹 200

9.7.1 S5PV210實(shí)時(shí)時(shí)鐘的結(jié)構(gòu)框圖 200

9.7.2 S5PV210 RTC的主要寄存器 201

9.7.3 BCD碼介紹 201

9.8 RTC編程實(shí)戰(zhàn) 201

9.8.1 編程注意事項(xiàng) 201

9.8.2 實(shí)戰(zhàn)步驟詳解 202

9.8.3 示例程序詳解 204

9.9 習(xí)題 208





SD卡啟動(dòng) 209

10.1 SD卡的特點(diǎn)和背景知識(shí) 209

10.2 SD卡的編程接口 210

10.2.1 物理接口 210

10.2.2 SD協(xié)議與SPI協(xié)議 210

10.3 S5PV210的SD卡啟動(dòng)詳解 211

10.3.1 SoC為何要支持SD卡啟動(dòng) 211

10.3.2 SD卡啟動(dòng)的難點(diǎn)在哪里 211

10.3.3 SD卡啟動(dòng)流程 212

10.3.4 SoC支持SD卡啟動(dòng)的秘密 212

10.3.5 扇區(qū)和塊的概念 213

10.3.6 用函數(shù)指針方式調(diào)用device copy

function 213

10.4 S5PV210的SD卡啟動(dòng)實(shí)戰(zhàn) 214

10.4.1 任務(wù):大于16KB的.bin文件使用SD卡

啟動(dòng) 214

10.4.2 代碼劃分為兩部分(BL1和BL2)編寫 214

10.4.3 BL1中的重定位 216

10.4.4 BL2遠(yuǎn)跳轉(zhuǎn) 217

10.5 區(qū)別于將代碼分為兩部分的另一種啟動(dòng)方式 217

10.5.1 代碼分為兩部分啟動(dòng)的缺陷 217

10.5.2 U-Boot的SD卡啟動(dòng) 218

10.5.3 分析U-Boot的SD卡啟動(dòng)細(xì)節(jié) 218

10.6 習(xí)題 218





外存芯片NAND Flash和iNAND 219

11.1 NAND Flash的型號(hào)和命名 219

11.1.1 NAND Flash的數(shù)據(jù)位 219

11.1.2 NAND Flash的功能框圖 219

11.2 NAND Flash的單元組織:Block和Page 221

11.2.1 帶內(nèi)數(shù)據(jù)和帶外數(shù)據(jù) 221

11.2.2 NAND Flash的地址時(shí)序和命令碼 222

11.3 NAND Flash的壞塊檢查 222

11.3.1 NAND Flash的頁寫操作 223

11.3.2 NAND Flash的擦除和頁讀操作 224

11.4 SoC的NAND Flash控制器 224

11.5 NAND Flash操作代碼解析 225

11.6 iNAND介紹 228

11.7 SD卡/iNAND硬件接口 228

11.7.1 SD卡命令相應(yīng)的操作模式 229

11.7.2 SD卡體系結(jié)構(gòu)、內(nèi)部寄存器 229

11.8 SD/iNAND代碼分析 230

11.8.1 Hsmmc.h頭文件CMD×和ACMD×命令碼

分析 230

11.8.2 Hsmmc.c文件分析 233





I2C通信 238

12.1 I2C通信介紹 238

12.2 I2C通信的時(shí)序 239

12.2.1 I2C的空閑態(tài)/忙態(tài)、起始位/結(jié)束位 239

12.2.2 I2C數(shù)據(jù)傳輸格式(數(shù)據(jù)位和ACK) 240

12.2.3 數(shù)據(jù)在總線上的傳輸協(xié)議 240

12.3 S5PV210的I2C控制器 241

12.4 X210開發(fā)板的板載重力傳感器介紹 243

12.4.1 原理圖 243

12.4.2 重力傳感器簡(jiǎn)介 244

12.4.3 I2C從設(shè)備地址 244

12.4.4 I2C從設(shè)備的通信速率 245

12.5 I2C的通信流程 245

12.5.1 I2C的通信流程寄存器分析 245

12.5.2 重力傳感器讀/寫寄存器流程分析 247

12.6 I2C通信代碼分析 248

12.7 習(xí)題 250





A/D轉(zhuǎn)換器 251

13.1 A/D轉(zhuǎn)換器的引入 251

13.1.1 模擬量和數(shù)字量 251

13.1.2 什么是A/D轉(zhuǎn)換器 252

13.1.3 有A/D轉(zhuǎn)換器自然就有D/A轉(zhuǎn)換器 252

13.2 A/D轉(zhuǎn)換器的主要相關(guān)概念 252

13.2.1 量程 252

13.2.2 精度 252

13.2.3 轉(zhuǎn)換速率 253

13.2.4 A/D轉(zhuǎn)換器的工作時(shí)鐘框圖 253

13.2.5 A/D轉(zhuǎn)換器的通道數(shù) 254

13.2.6 A/D轉(zhuǎn)換器和電阻式觸摸屏的關(guān)系 255

13.3 S5PV210的A/D轉(zhuǎn)換控制器 255

13.4 硬件設(shè)計(jì)分析 258

13.5 軟件設(shè)計(jì) 258

13.6 程序燒錄與調(diào)試 260

13.7 習(xí)題 262





LCD屏 263

14.1 LCD簡(jiǎn)介 263

14.1.1 什么是LCD 263

14.1.2 LCD的顯示原理和特點(diǎn) 263

14.1.3 LCD屏的種類 264

14.1.4 其他類型的顯示屏 264

14.2 LCD設(shè)備的接口技術(shù) 265

14.2.1 LCD設(shè)備通信接口中的電平轉(zhuǎn)換 265

14.2.2 RGB接口詳解 266

14.3 LCD的顯像原理和相關(guān)概念 267

14.3.1 像素及相關(guān)概念 267

14.3.2 掃描 268

14.3.3 驅(qū)動(dòng)器和控制器 269

14.3.4 顯示內(nèi)存(顯存) 269

14.3.5 LCD屏的6個(gè)主要時(shí)序參數(shù) 270

14.4 顏色在計(jì)算機(jī)中的表示 272

14.4.1 計(jì)算機(jī)中的顏色是離散的 272

14.4.2 常見像素深度 272

14.5 S5PV210的LCD控制器 273

14.5.1 虛擬屏幕疊加 274

14.5.2 虛擬顯示 275

14.6 LCD編程實(shí)戰(zhàn) 276

14.6.1 LCD控制器初始化 276

14.6.2 顯示像素、刷背景、橫線豎線和畫圓功能的

實(shí)現(xiàn) 287

14.6.3 寫英文和中文字符 290

14.6.4 畫圖 292

14.7 習(xí)題 295





觸摸屏 296

15.1 輸入設(shè)備簡(jiǎn)介及觸摸屏介紹 296

15.1.1 觸摸屏的特點(diǎn) 296

15.1.2 觸摸屏和顯示屏的聯(lián)系與區(qū)別 296

15.2 電阻式觸摸屏的原理 297

15.3 S5PV210的電阻式觸摸屏控制器 298

15.3.1 控制器框圖介紹 298

15.3.2 控制器部件的工作模式選擇 299

15.3.3 控制器的主要寄存器 300

15.4 電容式觸摸屏的原理 301

15.4.1 人體感知電流 301

15.4.2 專用電路計(jì)算坐標(biāo) 301

15.4.3 多個(gè)區(qū)塊支持多點(diǎn)觸摸 302

15.4.4 對(duì)外提供I2C的訪問接口 302

15.5 FT5x06電容觸摸IC簡(jiǎn)介 302

15.6 習(xí)題 303





Shell原理和問答機(jī)制引入 304

16.1 理解Shell 304

16.1.1 什么是Shell 304

16.1.2 Shell的運(yùn)行原理 305

16.1.3 Shell應(yīng)用舉例 305

16.2 從零寫*簡(jiǎn)單的Shell 306

16.2.1 使用printf和scanf函數(shù)做輸入回顯 306

16.2.2 定義簡(jiǎn)單命令集 306

16.3 將簡(jiǎn)易Shell移植到開發(fā)板中 308

16.3.1 工程選定、文件復(fù)制、Makefile編寫 308

16.3.2 printf和scanf函數(shù)的移植 314

16.3.3 main.c和其余文件 317

16.3.4 編譯下載和調(diào)試驗(yàn)證 319

16.4 定義標(biāo)準(zhǔn)命令集及解析 320

16.4.1 添加cmd_parser和cmd_exec函數(shù) 321

16.4.2 自己動(dòng)手寫strcmp和strcpy函數(shù) 322

16.4.3 定義命令集、添加shell.h頭文件 322

16.4.4 修改代碼 323

16.4.5 燒錄與測(cè)試 324

16.5 添加第 一個(gè)命令 326

16.5.1 命令任務(wù)分析 326

16.5.2 命令解析與命令執(zhí)行 327

16.5.3 修改代碼 330

16.5.4 第 一個(gè)命令的測(cè)試 331

16.6 添加其他命令 332

16.6.1 添加pwm.c文件 332

16.6.2 添加adc.c命令文件 333

16.6.3 移植printf函數(shù) 334

16.6.4 添加lcd.c文件 335

16.6.5 修改代碼 339

16.6.6 編譯測(cè)試 345

16.7 實(shí)現(xiàn)開機(jī)倒計(jì)時(shí)自動(dòng)執(zhí)行命令 346

16.7.1 添加計(jì)時(shí)功能 347

16.7.2 修改代碼 349

16.7.3 測(cè)試運(yùn)行 352

16.7.4 構(gòu)建BL1和BL2燒錄 352

16.8 初步實(shí)現(xiàn)環(huán)境變量 354

16.8.1 添加env.c文件對(duì)環(huán)境變量進(jìn)行設(shè)置、

修改 355

16.8.2 修改代碼 357

16.8.3 測(cè)試代碼 363

16.9 習(xí)題 364
展開全部

嵌入式LINUX與物聯(lián)網(wǎng)軟件開發(fā):ARM處理器開發(fā)自學(xué)教程 作者簡(jiǎn)介

朱有鵬,先后從事電子工程師、單片機(jī)軟件工程師、嵌入式Linux軟件工程師、物聯(lián)網(wǎng)軟件工程師、架構(gòu)師等工作,“朱老師物聯(lián)網(wǎng)大講堂”創(chuàng)始人。擅長(zhǎng)U-Boot、Linux內(nèi)核等嵌入式底層和系統(tǒng)層開發(fā)、架構(gòu)設(shè)計(jì)。擅長(zhǎng)匯編、C/C 、Java、C#等常用開發(fā)語言,2015年起錄制的在線視頻課程“朱有鵬老師嵌入式Linux核心課程”累計(jì)學(xué)習(xí)人數(shù)超300萬。

商品評(píng)論(0條)
暫無評(píng)論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服