本書是依托中南大學國家級特色專業(yè)(物聯(lián)網(wǎng)工程)的建設(shè),結(jié)合國內(nèi)嵌入式系統(tǒng)教學情況編寫。本書主要介紹嵌入式系統(tǒng)開發(fā),以S3C2440A、STM32F74xx位硬件,以Keil μVision5.0為開發(fā)工具,詳細介紹了ARM9、Cortex的體系結(jié)構(gòu)、硬件組成,指令系統(tǒng)和程序設(shè)計、存儲器接口、I/O、中斷、DMA、定時器、串行通信、嵌入式Linux、C/OS-Ⅲ操作系統(tǒng)應(yīng)用、LWIP編程,最后給出了在物聯(lián)網(wǎng)應(yīng)用中常用的嵌入式系統(tǒng)開發(fā)實例。
目 錄
第1章 概述 (1)
1.1 單片機概念及特點 (1)
1.2 單片機的發(fā)展及種類 (1)
1.2.1 單片機發(fā)展 (1)
1.2.2 嵌入式處理器種類 (3)
1.3 CISC與RISC (5)
1.3.1 CISC與RISC簡介 (5)
1.3.2 流水線 (6)
1.4 ARM處理器系列 (6)
1.4.1 ARM版本 (6)
1.4.2 常用ARM系列簡介 (10)
1.4.3 ARM v8 (18)
1.5 ARM的軟件開發(fā)工具 (18)
思考與習題 (23)
第2章 ARM基礎(chǔ)與指令系統(tǒng) (24)
2.1 ARM處理器基礎(chǔ) (24)
2.1.1 ARM處理器特點 (24)
2.1.2 存儲器大小端方式 (24)
2.1.3 ARM處理器狀態(tài)、ARM處理器模式及ARM模式下寄存器 (25)
2.1.4 Thumb狀態(tài)下寄存器 (28)
2.2 ARM尋址方式 (29)
2.2.1 指令格式 (29)
2.2.2 尋址方式 (30)
2.2.3 ARM指令的條件執(zhí)行 (32)
2.3 ARM指令 (33)
2.3.1 ARM常用指令 (33)
2.3.2 ARM v6/7版專有指令 (40)
2.4 Thumb指令 (42)
2.5 ARM偽操作與偽指令 (43)
2.5.1 符號定義與變量賦值偽操作 (43)
2.5.2 數(shù)據(jù)定義偽操作 (43)
2.5.3 匯編控制偽操作 (45)
2.5.4 信息報告?zhèn)尾僮?(47)
2.5.5 指令集選擇偽操作 (47)
2.5.6 雜項偽操作 (47)
2.5.7 ADR、ADRL、LDR偽指令 (48)
2.5.8 NOP偽指令 (50)
思考與習題 (50)
第3章 ARM內(nèi)存映射與存儲器接口 (52)
3.1 ARM9存儲器接口 (52)
3.1.1 S3C2440A存儲器控制器 (52)
3.1.2 NAND Flash控制器 (53)
3.2 Cortex-M4存儲器接口 (59)
3.2.1 Cortex-M4結(jié)構(gòu)與內(nèi)存映射 (59)
3.2.2 多層AHB總線矩陣 (60)
3.2.3 Cortex-M4外部存儲器控制器 (64)
3.3 半導(dǎo)體存儲器種類、NOR Flash與NAND Flash存儲器簡介 (66)
思考與習題 (68)
第4章 ARM I/O口、Cortex事件路由及GIMA (69)
4.1 ARM I/O端口原理 (69)
4.1.1 ARM9的I/O端口 (69)
4.1.2 Cortex-M4的系統(tǒng)控制單元I/O與GPIO (71)
4.1.3 Cortex-M7 GPIO (89)
4.2 Cortex-M4的事件路由器 (99)
4.3 LPC43XX全局輸入多路復(fù)用器陣列GIMA (101)
思考與習題 (103)
第5章 ARM9、Cortex-M4/M7中斷、LCD、A/D與觸摸屏 (105)
5.1 ARM9中斷系統(tǒng)原理 (105)
5.2 Cortex-M4 NVIC中斷原理 (114)
5.2.1 中斷原理 (114)
5.2.2 與中斷有關(guān)的寄存器 (117)
5.3 Cortex-M7 NVIC中斷原理 (120)
5.4 LCD (131)
5.4.1 LCD原理 (131)
5.4.2 OLED (132)
5.4.3 ARM9 LCD接口 (135)
5.5 A/D與觸摸屏 (146)
5.5.1 A/D轉(zhuǎn)換 (146)
5.5.2 觸摸屏工作原理及種類 (148)
5.5.3 ARM9 ADC轉(zhuǎn)換器和觸摸屏接口 (149)
5.5.4 Cortex-M4/M7 A/D (153)
思考與習題 (153)
第6章 ARM9、Cortex-M4/M7 DMA與定時器 (154)
6.1 ARM9 DMA原理 (154)
6.1.1 DMA請求源 (154)
6.1.2 DMA工作過程 (155)
6.1.3 基本DMA時序 (155)
6.1.4 DMA傳輸大小 (156)
6.1.5 DMA專用寄存器 (156)
6.2 Cortex-M4/M7 DMA原理 (162)
6.2.1 Cortex-M4 DMA主要功能特點 (162)
6.2.2 DMA系統(tǒng)連接 (163)
6.2.3 DMA寄存器描述 (169)
6.3 ARM9定時器 (180)
6.4 Cortex-M4/M7定時器種類及功能原理 (183)
6.4.1 狀態(tài)可配置的定時器 (183)
6.4.2 Timer0~3定時器 (189)
6.4.3 電機控制PWM (191)
6.4.4 正交編碼器接口 (194)
思考與習題 (196)
第7章 串行總線 (197)
7.1 串行通信概述與RS-232C (197)
7.2 ARM9的UART接口 (203)
7.3 SPI、I2C、I2S、SD卡總線 (206)
7.3.1 SPI總線接口 (206)
7.3.2 I2C總線接口 (207)
7.3.3 I2S總線接口 (216)
7.3.4 SD卡 (224)
7.5 現(xiàn)場總線 (231)
7.5.1 現(xiàn)場總線概述 (231)
7.5.2 CAN總線 (236)
思考與習題 (244)
第8章 嵌入式操作系統(tǒng)與LWIP (245)
8.1 操作系統(tǒng) (245)
8.1.1 操作系統(tǒng)簡介 (245)
8.1.2 嵌入式操作系統(tǒng)簡介 (248)
8.2 Linux操作系統(tǒng) (250)
8.2.1 Linux簡介 (250)
8.2.2 Linux特點 (250)
8.2.3 嵌入式Linux (251)
8.2.4 Linux內(nèi)核版本與發(fā)行版 (251)
8.2.5 Linux進程管理 (252)
8.2.6 存儲管理 (257)
8.2.7 文件系統(tǒng) (260)
8.2.8 設(shè)備管理 (263)
8.2.9 Linux內(nèi)核模塊 (265)
8.2.10 Linux配置文件 (266)
8.2.11 Linux啟動流程簡介 (267)
8.3 μC/OS概述 (271)
8.4 μC/OS-III移植 (273)
8.4.1 μC/OS的CPU移植 (273)
8.4.2 μC/OS-III移植 (275)
8.4.3 μC/OS-III應(yīng)用示例 (278)
8.5 LWIP概述 (295)
8.5.1 LWIP簡介 (295)
8.5.2 LWIP應(yīng)用模式 (296)
思考與習題 (297)
第9章 物聯(lián)網(wǎng)中的常用嵌入式系統(tǒng) (298)
9.1 TinyOS概述 (299)
9.1.1 TinyOS簡介 (299)
9.1.2 TinyOS的特點 (301)
9.1.3 TinyOS開發(fā)平臺 (302)
9.1.4 TinyOS開發(fā)案例 (302)
9.1.5 TinyOS的基本概念 (303)
9.2 安裝TinyOS (304)
9.3 nesC概述 (308)
9.3.1 nesC簡介 (308)
9.3.2 nesC基本概念 (310)
9.3.3 一個簡單的nesC編程示例 (316)
9.3.4 TOSSIM仿真 (317)
9.4 TinyOS內(nèi)部機制簡介 (318)
9.4.1 TinyOS程序運行機制分析 (318)
9.4.2 TinyOS的調(diào)度機制 (320)
9.4.3 TinyOS的通信模型 (320)
9.4.4 TinyOS的能量管理 (322)
思考與習題 (323)
參考文獻 (324)