图书介绍

嵌入式ARM系统工程师实训教程2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

嵌入式ARM系统工程师实训教程
  • 庄严,周建明,廖炜编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302380788
  • 出版时间:2015
  • 标注页数:497页
  • 文件大小:73MB
  • 文件页数:514页
  • 主题词:微处理器-系统设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式ARM系统工程师实训教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一篇 嵌入式ARM基础3

第1章 基础知识3

1.1 嵌入式系统4

1.1.1 概念4

1.1.2 构成5

1.1.3 特点5

1.2 知识结构7

1.2.1 嵌入式基础7

1.2.2 微处理器与接口8

1.2.3 嵌入式操作系统8

1.2.4 嵌入式程序设计9

1.2.5 开发与维护9

1.2.6 嵌入式系统设计9

1.3 项目流程10

1.4 本章小结10

1.5 本章习题11

第2章 开发环境13

2.1 硬件实验环境14

2.1.1 ARM参考板14

2.1.2 硬件仿真器14

2.2 ADS集成开发环境16

2.2.1 ADS介绍16

2.2.2 命令行开发工具17

2.2.3 armcc用法详解18

2.2.4 armlink用法详解20

2.2.5 ARM运行时库26

2.2.6 库路径的结构27

2.2.7 CodeWarrior27

2.2.8 ADS调试器29

2.2.9 实用程序30

2.2.10 支持的软件30

2.3 ADS开发流程30

2.3.1 创建工程30

2.3.2 编译与连接34

2.3.3 代码调试39

2.4 RealView集成开发环境42

2.4.1 使用介绍42

2.4.2 实例分析46

2.5 嵌入式HelloARM实例入门50

2.5.1 实验目的50

2.5.2 实验设备50

2.5.3 实验原理50

2.5.4 实验步骤55

2.6 本章小结59

2.7 本章习题59

第二篇 硬件系统设计63

第3章 硬件设计基础63

3.1 常用ARM处理器概述64

3.1.1 ARM应用系统设计概述64

3.1.2 S3C2410A功能简介65

3.1.3 S3C2410A CPU内核概述69

3.1.4 S3C2410A特殊功能寄存器70

3.1.5 S3C2440概述70

3.1.6 S3C6410概述71

3.1.7 S5PV210概述71

3.1.8 Exynos 4212概述72

3.1.9 性能对比73

3.2 硬件电路设计基础73

3.2.1 需求分析73

3.2.2 方案确定75

3.2.3 原理图绘制76

3.2.4 PCB板图绘制82

3.2.5 制板与调试83

3.3 本章小结84

3.4 本章习题84

第三篇 ARM体系结构与编程87

第4章 微处理器概述87

4.1 常用微处理器概述88

4.1.1 ARM88

4.1.2 PowerPC88

4.1.3 MIPS89

4.1.4 DSP89

4.1.5 x8689

4.1.6 FPGA/CPLD89

4.2 ARM概述90

4.2.1 ARM微处理器的特点91

4.2.2 ARM微处理器的应用领域91

4.3 ARM版本与命名方法92

4.3.1 ARM版本介绍92

4.3.2 ARM体系的变种93

4.3.3 ARM体系版本的命名格式94

4.4 常用的ARM微处理器系列介绍95

4.4.1 经典系列ARM处理器96

4.4.2 Cortex-A系列97

4.4.3 Cortex-R系列97

4.4.4 Cortex-M系列98

4.4.5 ARM-SecurCore系列98

4.4.6 ARM-FPGA Cores系列99

4.5 ARM微处理器的结构99

4.6 ARM微处理器的应用选型100

4.6.1 ARM微处理器内核的选择101

4.6.2 系统的工作频率101

4.6.3 芯片内存储器的容量101

4.6.4 内外围电路的选择101

4.7 新技术扩展102

4.7.1 ARMv8102

4.7.2 Thumb-2102

4.7.3 Thumb执行环境(ThumbEE)102

4.7.4 高级SIMD(NEON)102

4.7.5 VFP103

4.7.6 安全性扩充(TrustZone)103

4.7.7 Cortex-A50系列103

4.8 本章小结104

4.9 本章习题104

第5章 编程模型105

5.1 ARM微处理器的工作状态106

5.2 ARM微处理器的工作模式106

5.3 寄存器组织107

5.3.1 ARM状态下的寄存器组织108

5.3.2 Thumb状态下的寄存器组织110

5.3.3 程序状态寄存器111

5.4 ARM数据存储格式113

5.5 指令长度及数据类型114

5.6 AMBA规范115

5.6.1 AMBA片上总线115

5.6.2 基于AMBA的片上系统116

5.6.3 AHB简介116

5.6.4 APB简介116

5.7 AAPCS规范116

5.8 异常(Exceptions)117

5.8.1 异常117

5.8.2 对异常的响应118

5.8.3 从异常返回118

5.9 本章小结119

5.10 本章习题119

第6章 指令系统121

6.1 ARM微处理器的指令集概述122

6.1.1 指令的分类与格式122

6.1.2 指令的条件域122

6.2 ARM指令的寻址方式123

6.2.1 立即寻址123

6.2.2 寄存器寻址124

6.2.3 寄存器间接寻址124

6.2.4 基址变址寻址124

6.2.5 多寄存器寻址125

6.2.6 相对寻址125

6.2.7 堆栈寻址125

6.3 ARM指令实验指导126

6.3.1 汇编基本框架126

6.3.2 编译链接调试127

6.3.3 编译工程129

6.3.4 调试程序130

6.4 ARM指令集131

6.4.1 跳转指令132

6.4.2 数据处理指令134

6.4.3 乘法指令与乘加指令139

6.4.4 程序状态寄存器访问指令142

6.4.5 加载/存储指令143

6.4.6 批量数据加载/存储指令145

6.4.7 数据交换指令146

6.4.8 移位指令146

6.4.9 协处理器指令148

6.4.10 异常产生指令150

6.5 Thumb指令及应用151

6.6 本章小结152

6.7 本章习题152

第7章 程序设计基础155

7.1 程序设计概述156

7.1.1 符号定义(Symbol Definition)伪指令156

7.1.2 数据定义(Data Definition)伪指令158

7.1.3 汇编控制(Assembly Control)伪指令161

7.2 汇编语言的程序结构167

7.2.1 汇编语言程序的基本结构167

7.2.2 汇编语言的子程序调用168

7.2.3 汇编语言程序示例169

7.3 本章小结172

7.4 本章习题172

第8章 混合编程175

8.1 ATPCS介绍176

8.1.1 寄存器的使用规则176

8.1.2 数据栈的使用规则177

8.1.3 参数的传递规则178

8.1.4 子程序结果返回规则179

8.1.5 其他特定规则179

8.1.6 AAPCS扩展181

8.2 内嵌汇编器的使用182

8.2.1 内嵌的汇编指令用法182

8.2.2 内嵌的汇编器和armasm的区别183

8.2.3 在C/C++程序中使用内嵌的汇编指令184

8.2.4 内嵌汇编指令的应用举例186

8.2.5 从汇编程序中访问C变量188

8.3 在汇编程序中调用C/C++程序189

8.3.1 在汇编程序中调用C程序189

8.3.2 在汇编程序中调用C++程序189

8.3.3 汇编程序完成初始化功能190

8.3.4 在C/C++程序中调用汇编程序191

8.4 本章小结192

8.5 本章习题192

第9章 异常处理193

9.1 ARM异常处理概述194

9.1.1 ARM体系中的异常种类194

9.1.2 中断向量与异常优先级195

9.1.3 各种异常状态下使用的寄存器195

9.2 进入和退出异常的过程196

9.2.1 ARM处理器对异常的响应过程196

9.2.2 在应用程序中安装异常处理程序197

9.2.3 在系统复位时安装异常处理程序197

9.2.4 在C程序中安装异常处理程序198

9.3 各类异常的具体描述200

9.3.1 FIQ和IRQ中断200

9.3.2 复位异常205

9.3.3 未定义指令异常205

9.3.4 指令预取中止异常205

9.3.5 数据访问中止异常206

9.3.6 SWI异常206

9.4 本章小结206

9.5 本章习题207

第10章 基本的ATPCS规则及其实践209

10.1 寄存器的使用规则210

10.2 数据栈的使用规则210

10.3 参数传递的规则211

10.4 子程序结果返回规则211

10.5 ARM汇编指令编程实验211

10.5.1 实验目的211

10.5.2 实验设备212

10.5.3 实验原理212

10.5.4 实验步骤214

10.6 C语言调用汇编语言编程217

10.6.1 实验目的217

10.6.2 实验设备217

10.6.3 实验原理217

10.6.4 实验步骤218

10.6.5 实验思考221

10.7 汇编语言调用C语言编程221

10.7.1 实验目的221

10.7.2 实验设备221

10.7.3 实验原理221

10.7.4 实验步骤221

10.7.5 实验思考224

第四篇 硬件接口及驱动系统设计227

第11章 嵌入式软件编程基础227

11.1 学习目标228

11.2 本章要点228

11.3 整体设计228

11.3.1 开发背景228

11.3.2 整体设计228

11.3.3 硬件平台228

11.3.4 交叉环境229

11.3.5 硬件驱动229

11.3.6 任务管理229

11.3.7 面向对象230

11.4 内存管理230

11.4.1 数据指针230

11.4.2 函数指针231

11.4.3 内存申请231

11.4.4 关键字const231

11.4.5 关键字volatile233

11.4.6 字长与位宽233

11.4.7 字节对齐233

11.4.8 字节顺序236

11.5 人机界面238

11.5.1 LED238

11.5.2 按键238

11.5.3 LCD238

11.5.4 通信接口238

11.6 性能优化238

11.6.1 死循环238

11.6.2 延时239

11.6.3 使用宏239

11.6.4 关键字register240

11.6.5 内嵌汇编240

11.6.6 位操作240

11.6.7 define/typedef241

11.7 实践:LED驱动系统242

11.7.1 需求分析242

11.7.2 详细设计242

11.7.3 编码设计244

11.7.4 调试与测试245

11.7.5 部署245

11.8 本章小结245

11.9 本章习题245

第12章 嵌入式系统的常用接口247

12.1 学习目标248

12.2 本章要点248

12.3 嵌入式系统常用接口概述248

12.3.1 嵌入式系统的程序设计方法248

12.3.2 嵌入式测试测量249

12.3.3 通用I/O口的工作原理与编程示例250

12.4 串口工作原理与编程示例256

12.4.1 异步串行通信及其协议256

12.4.2 串行通信的物理层标准257

12.4.3 S3C2410内置的UART控制器258

12.4.4 UART编程举例260

12.5 中断控制器工作原理与编程示例267

12.5.1 中断源状态寄存器267

12.5.2 中断模式寄存器267

12.5.3 中断屏蔽寄存器268

12.5.4 优先级寄存器268

12.5.5 中断状态寄存器268

12.5.6 中断偏移寄存器268

12.6 DMA的工作原理与编程示例272

12.6.1 DMA的工作原理272

12.6.2 I/O接口到存储器274

12.6.3 存储器到I/O接口274

12.6.4 存储器到存储器274

12.6.5 S3C2410A的DMA控制器274

12.6.6 编程举例276

12.7 实时时钟的工作原理与编程示例282

12.7.1 实时时钟的工作原理282

12.7.2 S3C2410A实时时钟寄存器介绍283

12.7.3 实时时钟计数器283

12.7.4 告警控制寄存器284

12.7.5 告警时间寄存器285

12.8 RTC循环复位寄存器285

12.8.1 实时时钟寄存器285

12.8.2 S3C2410A实时时钟编程举例286

12.9 看门狗的工作原理与编程示例288

12.9.1 看门狗的工作原理288

12.9.2 S3C2410A的看门狗定时器寄存器289

12.9.3 看门狗编程举例290

12.10 I2C工作原理与编程示例292

12.10.1 I2C工作原理292

12.10.2 I2C总线的基本结构292

12.10.3 双向传输的接口特性292

12.10.4 I2C总线上的时钟信号293

12.10.5 数据的传送293

12.10.6 总线竞争的仲裁294

12.10.7 I2C总线的一次典型工作流程295

12.10.8 S3C2410A的I2C寄存器295

12.10.9 I2C总线控制寄存器296

12.10.10 I2C总线控制/状态寄存器296

12.10.11 I2C总线地址寄存器297

12.10.12 移位数据寄存器297

12.10.13 I2C编程举例298

12.11 本章小结302

12.12 本章习题302

第13章 通用I/O口的应用:跑马灯实验303

13.1 实验目的304

13.2 实验设备304

13.3 实验原理304

13.3.1 S3C2440A的多功能I/O口304

13.3.2 端口选择309

13.3.3 端口控制寄存器309

13.4 实验步骤311

13.4.1 设置寄存器311

13.4.2 跑马灯的实现311

13.4.3 编译工程312

13.4.4 建立实验环境312

13.4.5 下载程序运行312

13.5 实验思考313

第14章 中断处理程序设计315

14.1 实验目的316

14.2 实验设备316

14.3 实验原理316

14.3.1 概述316

14.3.2 中断模式316

14.3.3 PSR的F位和I位316

14.3.4 Pending寄存器317

14.3.5 INTMSK中断屏蔽寄存器317

14.3.6 中断源317

14.3.7 中断优先级产生模块319

14.3.8 控制中断的寄存器319

14.4 实验步骤320

14.4.1 设置I/O口320

14.4.2 中断寄存器设置321

14.4.3 中断服务程序的编写321

14.4.4 编译工程322

14.4.5 建立实验环境323

14.4.6 下载程序运行323

14.5 实验思考323

第15章 定时器的应用325

15.1 实验目的326

15.2 实验设备326

15.3 实验原理326

15.3.1 概述326

15.3.2 定时器操作327

15.3.3 定时器寄存器331

15.4 实验步骤331

15.4.1 打开定时器中断331

15.4.2 设置定时器中断服务程序的入口地址332

15.4.3 设置定时器寄存器并启动定时器332

15.4.4 定时器中断服务子程序332

15.4.5 判断定时器中断情况333

15.4.6 编译工程334

15.4.7 建立实验环境334

15.4.8 下载程序并运行334

15.5 实验思考335

第16章 ADC接口的应用337

16.1 实验目的338

16.2 实验设备338

16.3 实验原理338

16.3.1 概述338

16.3.2 S3C2440A具备的ADC338

16.3.3 ADC转换时间的计算339

16.3.4 ADC分辨率的计算339

16.3.5 采样保持器339

16.3.6 ADC的相关寄存器340

16.4 实验步骤340

16.4.1 硬件连接340

16.4.2 得到预分频值340

16.4.3 读取A/D转换数值子程序340

16.4.4 编译工程341

16.4.5 建立实验环境341

16.4.6 下载程序并运行342

16.5 实验思考342

第17章 LCD接口的编程343

17.1 实验目的344

17.2 实验设备344

17.3 实验原理344

17.3.1 概述344

17.3.2 S3C2440A的内部LCD控制器介绍344

17.3.3 LCD控制器的外部接口信号345

17.3.4 LCD控制器的操作346

17.3.5 LCD控制器专用寄存器348

17.4 实验步骤352

17.4.1 I/O口LCD功能设置352

17.4.2 LCD初始化程序352

17.4.3 LCD测试程序353

17.4.4 编译工程354

17.4.5 建立实验环境355

17.4.6 下载程序并运行355

17.5 实验思考355

第18章 触摸屏的应用357

18.1 实验目的358

18.2 实验设备358

18.3 实验原理358

18.3.1 概述358

18.3.2 触摸屏的基本原理358

18.3.3 触摸屏的相关寄存器359

18.4 实验步骤361

18.4.1 硬件连接361

18.4.2 寄存器的设置362

18.4.3 触摸屏中断服务程序362

18.4.4 编译工程363

18.4.5 建立实验环境363

18.4.6 下载程序并运行364

18.5 实验思考364

第19章 I2C接口的编程365

19.1 实验目的366

19.2 实验设备366

19.3 实验原理366

19.3.1 概述366

19.3.2 I2C总线通用传输格式366

19.3.3 S3C2440A的12C接口368

19.4 实验步骤371

19.4.1 硬件连接371

19.4.2 I/O端口I2C功能设置372

19.4.3 中断使能372

19.4.4 初始化I2C接口372

19.4.5 写入数据子程序372

19.4.6 读出数据子程序373

19.4.7 中断处理子程序374

19.4.8 编译工程375

19.4.9 建立实验环境375

19.4.10 下载程序运行375

19.5 实验思考376

第20章 UART异步串行接口的应用377

20.1 实验目的378

20.2 实验设备378

20.3 实验原理378

20.3.1 概述378

20.3.2 UART操作379

20.3.3 UART寄存器382

20.4 实验步骤383

20.4.1 电路连接和I/O口设置383

20.4.2 UART的初始化384

20.4.3 串口0发送中断测试385

20.4.4 串口0接收中断测试385

20.4.5 编译工程386

20.4.6 建立实验环境386

20.4.7 下载程序运行386

20.5 实验思考387

第21章 CAN总线通信实验389

21.1 实验目的390

21.2 实验设备390

21.3 实验原理390

21.3.1 概述390

21.3.2 CAN总线的技术特点390

21.3.3 CAN的分层结构391

21.4 实验步骤392

21.4.1 电路连接392

21.4.2 初始化函数392

21.4.3 MCP2510写函数393

21.4.4 MCP2510读函数393

21.4.5 指定地址寄存器修改函数394

21.4.6 CAN通信主体函数394

21.4.7 编译工程395

21.4.8 建立实验环境395

21.4.9 下载程序并运行395

21.5 实验思考396

第五篇 嵌入式系统启动应用分析与设计399

第22章 ARM系统启动应用分析与设计399

22.1 Cortex-M3-STM32启动代码分析400

22.1.1 STM32概述400

22.1.2 启动代码分析400

22.2 ARM9-S3C2440-U-Boot移植开发408

22.2.1 U-Boot工程简介408

22.2.2 目录结构409

22.2.3 Makefile分析410

22.2.4 流程分析410

22.2.5 配置编译411

22.2.6 移植开发414

22.2.7 调试测试418

22.2.8 常用命令418

22.2.9 环境变量420

22.3 ARM-Cortex-A8-S5PV210-uboot分析421

22.3.1 源码目录结构421

22.3.2 启动代码start.s分析423

22.3.3 启动代码lowlevel.s分析439

22.3.4 启动代码汇编部分总结453

22.3.5 硬件启动过程454

22.3.6 内存分配455

22.4 ARM-Cortex-A9-多核介绍456

22.4.1 Samsung Exynos 4412456

22.4.2 Nvidia Tegra 2介绍457

22.4.3 ARM-Cortex-A9多核启动流程457

22.4.4 Linux Kemel对多核心的支持457

22.4.5 软件识别目前所在的处理器458

22.4.6 多核心的开机458

22.4.7 Boot Rom458

22.4.8 多核U-Boot459

22.5 本章小结471

22.6 本章习题471

第六篇 综合项目篇475

第23章 基于ARM的嵌入式工业控制系统设计475

23.1 总体需求476

23.1.1 部署结构476

23.1.2 主机业务需求477

23.1.3 终端业务需求478

23.2 主机设计479

23.2.1 主机工作流程480

23.2.2 设置终端模块480

23.2.3 打开端口模块481

23.2.4 相关业务模块482

23.2.5 主机相关任务描述483

23.2.6 相关定时器举例486

23.3 通信协议分层486

23.3.1 物理层486

23.3.2 数据链路层486

23.3.3 应用层488

23.4 PDU集490

23.4.1 主机召唤终端状态491

23.4.2 终端返回本机状态491

23.4.3 主机设置终端状态492

23.4.4 终端返回设置后的结果492

23.4.5 终端发送自身状态492

23.4.6 主机确认收到终端返回493

23.4.7 主机获得终端的设置值493

23.4.8 终端返回设置后的结果494

23.4.9 确认网络状态494

23.4.10 确认网络状态返回495

23.5 应用层异常控制495

23.6 大小端控制495

23.7 数据字典496

23.8 项目总结496

23.9 本章小结497

23.10 本章习题497

热门推荐