中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

超值優惠券
¥50
滿100可用 有效期2天

全場圖書通用(淘書團除外)

不再提示
關閉
歡迎光臨中圖網 請 | 注冊
> >>
嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程

包郵 嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程

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

嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程 版權信息

嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程 本書特色

系統全面

條分縷析、由淺入深地講解ARM處理器內核知識及周邊知識



精華原創

凝結作者多年研發及教學經驗,幫助讀者深度掌握ARM處理器編程



可學習性

內容豐富、編排合理,是為“萌新學員”準備的豪華“工具包”

嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程 內容簡介

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

嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程 目錄

ARM那些你需要知道的事 01

1.1 ARM公司大事記 01

1.2 ARM公司的商業模式和生態系統 02

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

1.3.1 如何描述ARM處理器的版本號 03

1.3.2 ARM處理器版本的發展歷程 04

1.4 CPU和SoC的區別及外圍設備的概念 05

1.4.1 CPU和SoC的區別 05

1.4.2 外圍設備 06

1.5 學習平臺的選擇 06

1.5.1 學習平臺的選擇要求 06

1.5.2 為什么選擇三星S5PV210 06

1.6 X210開發板介紹 07

1.7 基于單片機的嵌入式系統和基于復雜操作系統的

嵌入式系統的區別 07

1.7.1 芯片平臺對比 08

1.7.2 片上資源、價格、應用領域上的對比 08

1.7.3 開發模式對比 08

1.7.4 技術特征對比 08

1.7.5 職業發展對比 09

1.8 嵌入式開發學習和編程語言、英語水平等的

關系 09

1.8.1 嵌入式開發學習和編程語言的關系 09

1.8.2 嵌入式開發學習和英語水平的關系 09

1.8.3 嵌入式開發學習和數電、模電的關系 09

1.8.4 嵌入式開發學習和專業的關系 09

1.8.5 嵌入式開發學習和個人性格的關系 10

1.9 嵌入式系統的構成、特點和發展方向 10

1.9.1 嵌入式系統的構成 10

1.9.2 嵌入式系統的特點 10

1.9.3 嵌入式系統的發展方向 11

1.10 交叉編譯 12

1.10.1 軟件開發的兩種模式 12

1.10.2 交叉編譯的特點 12

1.11 CPU的設計原理、地址總線/數據總線/控制

總線 13

1.11.1 CPU的設計原理 13

1.11.2 地址總線、數據總線和控制總線 13

1.12 嵌入式輔助開發工具 14

1.13 習題 14





ARM CPU的體系結構與匯編指令 15

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

2.2 指令集對CPU的意義 16

2.3 CISC和RISC 16

2.4 統一編址和獨立編址、馮·諾依曼結構和哈佛

結構 17

2.4.1 I/O與內存的統一編址和獨立編址 17

2.4.2 馮·諾依曼結構和哈佛結構 18

2.5 軟件編程控制硬件的關鍵——寄存器 19

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

2.5.2 寄存器的分類 21

2.6 S5PV210的地址映射詳解 21

2.7 CPU的外存儲器和接口方式 24

2.7.1 SoC外存儲器分類與介紹 25

2.7.2 S5PV210支持的外存儲器 26

2.8 S5PV210的啟動過程詳解 27

2.8.1 不同計算機系統內存和外存配置的區別 27

2.8.2 S5PV210啟動方式詳解 28

2.8.3 X210開發板啟動方式選擇 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個寄存器詳解 34

2.11 ARM CPU的異常處理方式簡介 37

2.12 ARM匯編指令集詳解 38

2.12.1 ARM匯編指令集總述 38

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

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

2.13 習題 48





開發板、原理圖和數據手冊 49

3.1 開發板配置簡介 49

3.2 資料導讀 50

3.2.1 開發板硬件手冊導讀 50

3.2.2 X210核心板、底板原理圖導讀 51

3.2.3 S5PV210數據手冊 55

3.3 開發板刷系統 56

3.3.1 刷機工具簡介 56

3.3.2 開發板刷系統方法介紹 58

3.4 新開發板X210BV3S 65

3.5 習題 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 編寫點亮LED程序前的相關準備工作 77

4.5 點亮LED 81

4.6 擴展:反匯編工具objdump 87

4.7 習題 89

SDRAM和重定位 90

5.1 關閉看門狗 90

5.2 設置棧和調用C程序 92

5.3 用匯編語言編寫啟動代碼之開/關iCache 95

5.4 重定位引入與編程實現 96

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

5.4.2 重定位代碼實現 99

5.5 SDRAM初始化 102

5.5.1 原理圖中SDRAM相關部分分析 103

5.5.2 數據手冊中SDRAM相關部分分析 104

5.5.3 代碼實戰 111

5.6 習題 117





時鐘系統 118

6.1 SoC時鐘系統簡介 118

6.2 S5PV210的時鐘系統 119

6.3 時鐘設置的關鍵寄存器分析 126

6.4 實現時鐘設置代碼詳解 126

6.4.1 S5PV210時鐘設置的步驟分析 126

6.4.2 S5PV210時鐘設置匯編語言代碼分析 127

6.4.3 S5PV210時鐘設置C語言代碼分析 132

6.5 習題 134





串口通信 135

7.1 通信發展史及電子通信涉及的基礎概念 135

7.1.1 通信發展史 135

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

7.2 串口通信的基本概念 138

7.3 串口通信的基本原理 140

7.4 S5PV210串口通信詳解 142

7.4.1 原理框圖與自動流控 142

7.4.2 3種擴展模式 144

7.4.3 串口通信中的中斷與時鐘 145

7.5 S5PV210串口通信編程實戰 146

7.6 uart stdio的移植介紹 156

7.7 習題 164





按鍵和CPU中斷系統 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 中斷處理的代碼實現步驟 172

8.6 按鍵與外部中斷 175

8.6.1 外部中斷寄存器配置 175

8.6.2 外部中斷實現按鍵 175

8.7 習題 176





定時器、看門狗和實時時鐘等 177

9.1 定時器 177

9.2 S5PV210中的PWM定時器介紹 178

9.2.1 S5PV210的PWM定時器原理圖簡介 179

9.2.2 預分頻器與分頻器 180

9.2.3 TCNT、TCNTB、TCON和TCNTO寄存器

功能介紹 181

9.2.4 自動重載和雙緩沖 183

9.3 PWM波形介紹 183

9.3.1 什么是PWM 183

9.3.2 PWM波形的生成原理 184

9.3.3 輸出電平翻轉器 185

9.3.4 死區生成器 185

9.4 蜂鳴器和PWM定時器編程實戰 186

9.4.1 蜂鳴器的工作原理 186

9.4.2 原理圖和硬件信息 187

9.4.3 驅動蜂鳴器的PWM定時器代碼編寫 188

9.4.4 編寫C語言主函數、子函數 190

9.4.5 修改Makefile 191

9.5 看門狗 192

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

9.5.2 S5PV210看門狗的結構原理圖 193

9.5.3 看門狗的主要寄存器 193

9.6 看門狗的編程實戰 194

9.6.1 看門狗產生中斷信號功能代碼編寫 194

9.6.2 看門狗產生復位信號功能代碼編寫 198

9.7 實時時鐘介紹 200

9.7.1 S5PV210實時時鐘的結構框圖 200

9.7.2 S5PV210 RTC的主要寄存器 201

9.7.3 BCD碼介紹 201

9.8 RTC編程實戰 201

9.8.1 編程注意事項 201

9.8.2 實戰步驟詳解 202

9.8.3 示例程序詳解 204

9.9 習題 208





SD卡啟動 209

10.1 SD卡的特點和背景知識 209

10.2 SD卡的編程接口 210

10.2.1 物理接口 210

10.2.2 SD協議與SPI協議 210

10.3 S5PV210的SD卡啟動詳解 211

10.3.1 SoC為何要支持SD卡啟動 211

10.3.2 SD卡啟動的難點在哪里 211

10.3.3 SD卡啟動流程 212

10.3.4 SoC支持SD卡啟動的秘密 212

10.3.5 扇區和塊的概念 213

10.3.6 用函數指針方式調用device copy

function 213

10.4 S5PV210的SD卡啟動實戰 214

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

啟動 214

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

10.4.3 BL1中的重定位 216

10.4.4 BL2遠跳轉 217

10.5 區別于將代碼分為兩部分的另一種啟動方式 217

10.5.1 代碼分為兩部分啟動的缺陷 217

10.5.2 U-Boot的SD卡啟動 218

10.5.3 分析U-Boot的SD卡啟動細節 218

10.6 習題 218





外存芯片NAND Flash和iNAND 219

11.1 NAND Flash的型號和命名 219

11.1.1 NAND Flash的數據位 219

11.1.2 NAND Flash的功能框圖 219

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

11.2.1 帶內數據和帶外數據 221

11.2.2 NAND Flash的地址時序和命令碼 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卡命令相應的操作模式 229

11.7.2 SD卡體系結構、內部寄存器 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通信的時序 239

12.2.1 I2C的空閑態/忙態、起始位/結束位 239

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

12.2.3 數據在總線上的傳輸協議 240

12.3 S5PV210的I2C控制器 241

12.4 X210開發板的板載重力傳感器介紹 243

12.4.1 原理圖 243

12.4.2 重力傳感器簡介 244

12.4.3 I2C從設備地址 244

12.4.4 I2C從設備的通信速率 245

12.5 I2C的通信流程 245

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

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

12.6 I2C通信代碼分析 248

12.7 習題 250





A/D轉換器 251

13.1 A/D轉換器的引入 251

13.1.1 模擬量和數字量 251

13.1.2 什么是A/D轉換器 252

13.1.3 有A/D轉換器自然就有D/A轉換器 252

13.2 A/D轉換器的主要相關概念 252

13.2.1 量程 252

13.2.2 精度 252

13.2.3 轉換速率 253

13.2.4 A/D轉換器的工作時鐘框圖 253

13.2.5 A/D轉換器的通道數 254

13.2.6 A/D轉換器和電阻式觸摸屏的關系 255

13.3 S5PV210的A/D轉換控制器 255

13.4 硬件設計分析 258

13.5 軟件設計 258

13.6 程序燒錄與調試 260

13.7 習題 262





LCD屏 263

14.1 LCD簡介 263

14.1.1 什么是LCD 263

14.1.2 LCD的顯示原理和特點 263

14.1.3 LCD屏的種類 264

14.1.4 其他類型的顯示屏 264

14.2 LCD設備的接口技術 265

14.2.1 LCD設備通信接口中的電平轉換 265

14.2.2 RGB接口詳解 266

14.3 LCD的顯像原理和相關概念 267

14.3.1 像素及相關概念 267

14.3.2 掃描 268

14.3.3 驅動器和控制器 269

14.3.4 顯示內存(顯存) 269

14.3.5 LCD屏的6個主要時序參數 270

14.4 顏色在計算機中的表示 272

14.4.1 計算機中的顏色是離散的 272

14.4.2 常見像素深度 272

14.5 S5PV210的LCD控制器 273

14.5.1 虛擬屏幕疊加 274

14.5.2 虛擬顯示 275

14.6 LCD編程實戰 276

14.6.1 LCD控制器初始化 276

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

實現 287

14.6.3 寫英文和中文字符 290

14.6.4 畫圖 292

14.7 習題 295





觸摸屏 296

15.1 輸入設備簡介及觸摸屏介紹 296

15.1.1 觸摸屏的特點 296

15.1.2 觸摸屏和顯示屏的聯系與區別 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 專用電路計算坐標 301

15.4.3 多個區塊支持多點觸摸 302

15.4.4 對外提供I2C的訪問接口 302

15.5 FT5x06電容觸摸IC簡介 302

15.6 習題 303





Shell原理和問答機制引入 304

16.1 理解Shell 304

16.1.1 什么是Shell 304

16.1.2 Shell的運行原理 305

16.1.3 Shell應用舉例 305

16.2 從零寫*簡單的Shell 306

16.2.1 使用printf和scanf函數做輸入回顯 306

16.2.2 定義簡單命令集 306

16.3 將簡易Shell移植到開發板中 308

16.3.1 工程選定、文件復制、Makefile編寫 308

16.3.2 printf和scanf函數的移植 314

16.3.3 main.c和其余文件 317

16.3.4 編譯下載和調試驗證 319

16.4 定義標準命令集及解析 320

16.4.1 添加cmd_parser和cmd_exec函數 321

16.4.2 自己動手寫strcmp和strcpy函數 322

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

16.4.4 修改代碼 323

16.4.5 燒錄與測試 324

16.5 添加第 一個命令 326

16.5.1 命令任務分析 326

16.5.2 命令解析與命令執行 327

16.5.3 修改代碼 330

16.5.4 第 一個命令的測試 331

16.6 添加其他命令 332

16.6.1 添加pwm.c文件 332

16.6.2 添加adc.c命令文件 333

16.6.3 移植printf函數 334

16.6.4 添加lcd.c文件 335

16.6.5 修改代碼 339

16.6.6 編譯測試 345

16.7 實現開機倒計時自動執行命令 346

16.7.1 添加計時功能 347

16.7.2 修改代碼 349

16.7.3 測試運行 352

16.7.4 構建BL1和BL2燒錄 352

16.8 初步實現環境變量 354

16.8.1 添加env.c文件對環境變量進行設置、

修改 355

16.8.2 修改代碼 357

16.8.3 測試代碼 363

16.9 習題 364
展開全部

嵌入式LINUX與物聯網軟件開發:ARM處理器開發自學教程 作者簡介

朱有鵬,先后從事電子工程師、單片機軟件工程師、嵌入式Linux軟件工程師、物聯網軟件工程師、架構師等工作,“朱老師物聯網大講堂”創始人。擅長U-Boot、Linux內核等嵌入式底層和系統層開發、架構設計。擅長匯編、C/C 、Java、C#等常用開發語言,2015年起錄制的在線視頻課程“朱有鵬老師嵌入式Linux核心課程”累計學習人數超300萬。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 民用音响-拉杆音响-家用音响-ktv专用音响-万昌科技 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 连栋温室大棚建造厂家-智能玻璃温室-薄膜温室_青州市亿诚农业科技 | 台式核磁共振仪,玻璃软化点测定仪,旋转高温粘度计,测温锥和测温块-上海麟文仪器 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团| 中山市派格家具有限公司【官网】 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 浙江自考_浙江自学考试网 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 路面机械厂家| 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 |