《嵌入式系统软件设计实战 基于IAR Embedded Workbench》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:唐思超编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2010
  • ISBN:9787512400450
  • 页数:422 页
图书介绍:本书分为13章。其中,第1~4章为基础知识部分,讲述了IAR Embedded Workbench开发环境的特点、功能、使用方法以及项目管理和参数配置等;第5~10章为本书的重点内容,这部分结合处理器的相关结构讲述了IAR Embedded Workbench开发环境的实用工作机制与应用,例如启动代码与编译系统的关系、代码优化等;第11~13章是实例应用,详细讲述使用IAR Embedded Workbench开发环境进行开发的过程。

第1章 IAR Embedded Workbench基础知识 1

1.1 IAR Embedded Workbench嵌入式集成开发环境简介 1

1.2 IAR Embedded Workbench的菜单及工具栏 3

1.2.1 菜单栏 4

1.2.2 工具栏 13

1.2.3 状态栏 14

第2章 IAR Embedded Workbench快速入门 15

2.1 项目的创建 15

2.1.1 建立一个项目文件目录 15

2.1.2 生成新工作区 15

2.1.3 生成新项目 16

2.1.4 给项目添加文件 17

2.1.5 配置项目选项 18

2.2 编译和链接应用程序 20

2.2.1 编译和链接 20

2.2.2 查看MAP文件 21

2.3 用C-SPY下载和调试应用程序 22

2.3.1 配置Debugger选项 22

2.3.2 下载应用程序 22

2.3.3 源代码级调试 24

2.3.4 查看变量 24

2.3.5 设置和监视断点 26

2.3.6 在反汇编窗口上进行调试 27

2.3.7 监视寄存器 27

2.3.8 查看存储器 27

2.3.9 观察Terminal I/O 28

2.3.10 执行和暂停程序 29

第3章 项目管理 30

3.1 项目组织模型 30

3.2 项目创建与管理 32

3.2.1 工作区及其内容的创建和管理 33

3.2.2 拖拽操作 35

3.2.3 源文件路径 36

3.3 项目文件导航 36

3.3.1 查看工作区 36

3.3.2 显示源代码浏览信息 37

3.4 使用库模块 39

第4章 IAR Embedded Workbench项目参数配置 43

4.1 General Options——基本选项配置 43

4.1.1 Target选项卡 43

4.1.2 Target选项卡(适用于IAR for AVR) 46

4.1.3 Target选项卡(适用于IAR for MSP430) 48

4.1.4 Output选项卡 50

4.1.5 Library Configuration选项卡 51

4.1.6 Library Options选项卡 52

4.1.7 Heap Configuration选项卡 53

4.1.8 Stack/Heap选项卡 53

4.1.9 System选项卡 54

4.1.10 MISRA C选项卡 55

4.2 C/C++编译器配置 55

4.2.1 Language选项卡 56

4.2.2 Code选项卡(适用于IAR for AVR) 58

4.2.3 Code选项卡(适用于IAR for MSP430) 59

4.2.4 Optimizations选项卡 60

4.2.5 Output选项卡 61

4.2.6 List选项卡 63

4.2.7 Preprocessor选项卡 63

4.2.8 Diagnostics选项卡 65

4.2.9 MISRA C选项卡 66

4.2.10 Extra Options选项卡 67

4.3 汇编器配置 67

4.3.1 Language选项卡 67

4.3.2 Output选项卡 69

4.3.3 List选项卡 69

4.3.4 Preprocessor选项卡 70

4.3.5 Diagnostics选项卡 72

4.3.6 Extra Options选项卡 72

4.4 自定义创建配置 73

4.5 项目生成配置 74

4.6 链接器配置 75

4.6.1 Output选项卡 75

4.6.2 Extra Output选项卡 78

4.6.3 #define选项卡 78

4.6.4 Diagnostics选项卡 79

4.6.5 List选项卡 81

4.6.6 Config选项卡 82

4.6.7 Processing选项卡 86

4.6.8 Extra Options选项卡 90

4.7 库生成器配置 90

4.8 调试器配置 91

4.8.1 Setup选项卡 91

4.8.2 Download选项卡 93

4.8.3 Extra Options选项卡 94

4.8.4 Plugins选项卡 94

4.9 IAR J-Link驱动配置 95

4.9.1 Setup选项卡 96

4.9.2 Connection选项卡 97

4.9.3 Breakpoints选项卡 98

第5章 存储方式与段定位 103

5.1 数据存储方式 103

5.1.1 存储空间 103

5.1.2 栈与自动变量 104

5.1.3 堆中的动态存储分配 105

5.2 代码与数据的定位 106

5.2.1 段的定义 106

5.2.2 段的作用 106

5.2.3 段存储类型 106

5.2.4 段在存储器中的定位 108

5.2.5 数据段 110

5.2.6 代码段 114

5.2.7 C++动态初始化 115

5.2.8 变量与函数在存储器中的定位 115

第6章 IAR C-SPY宏系统 119

6.1 C-SPY宏系统 119

6.1.1 宏语言 120

6.1.2 宏函数 125

6.1.3 宏文件 134

6.2 使用C-SPY宏 136

6.2.1 使用设置宏函数和设置文件来注册、运行宏 136

6.2.2 使用Macro Configuration对话框注册宏文件 138

6.2.3 使用Quick Watch界面运行宏函数 138

6.2.4 将宏函数与断点相连以执行宏函数 139

6.3 使用C-SPY模拟器进行中断仿真 141

6.3.1 C-SPY中断仿真系统 141

6.3.2 中断仿真系统的使用 143

6.4 中断仿真实例 147

6.4.1 添加中断句柄 147

6.4.2 设置仿真环境 148

6.4.3 运行仿真中断 151

6.4.4 使用系统宏定义中断和设置断点 152

第7章 IAR Embedded Workbench的工作机制与应用 153

7.1 系统的初始化过程 154

7.2 微处理器的启动与重映射 156

7.2.1 映射的概念 156

7.2.2 存储器映射与存储器重映射 156

7.2.3 微控制的片内存储器 156

7.2.4 ARM处理器的Boot技术 157

7.2.5 与映射和重映射相关的实例 159

7.3 重映射的意义与实现过程 163

7.3.1 软件断点与硬件断点 164

7.3.2 重映射的作用与实现举例 165

7.4 程序入口与启动代码 175

7.4.1 程序入口的概念 175

7.4.2 程序入口的实例分析 175

7.4.3 系统的启动代码 186

7.4.4 在IAR中设置程序的入口 188

7.5 ARM处理器启动代码的深入研究 190

7.5.1 需要IAR运行库支持的纯C语言启动代码 190

7.5.2 不需要IAR运行库支持的纯C语言启动代码 197

7.5.3 纯C语言启动代码的适用情况 204

7.5.4 使用纯C语言气动代码的注意事项 205

7.6 全局变量运行时定位的实例分析 208

7.6.1 变量的简单分类 208

7.6.2 变量定位至RAM的时间 208

7.6.3 变量在只读存储器中的存储方式 209

7.6.4 全局变量的运行时定位分析 210

7.6.5 全局变量的运行时定位过程分析 213

7.7 在RAM中运行的函数 216

7.7.1 RAM函数 216

7.7.2 RAM函数的实现 216

7.8 RAM调试与实现机制 227

7.8.1 MAC文件的概念 227

7.8.2 RAM调试的基础知识 227

7.8.3 RAM调试的工作机制 228

7.9 Flash Loader与Flash调试 237

7.9.1 Flash Loader概述 237

7.9.2 可选的Flash Loader C-SPY宏文件 238

7.9.3 与Flash Loader框架程序的接口 238

7.9.4 Flash Loader驱动程序实例 239

7.9.5 创建Flash Loader的过程举例 240

7.9.6 调试Flash Loader 241

7.9.7 将应用程序下载至Flash中 242

7.9.8 Flash Debug的流程及实例分析 243

7.10 应用程序的完整性校验 258

7.10.1 设置链接器产生checksum 258

7.10.2 在用户代码中加入校验和计算函数 261

7.11 Flash Loader的使用 263

7.11.1 设置Flash Loader 264

7.11.2 Flash装载机制 264

7.11.3 生成程序时需要考虑的事情 264

7.11.4 Flash Loader Overview对话框 265

7.11.5 Flash Loader配置对话框 266

7.12 使用IAR EW直接下载二进制文件到目标Flash存储器 267

7.13 将MSP430系列单片机的片内Flash拟作EEPROM 273

7.13.1 MSP430系列单片机的内部存储器组织 273

7.13.2 Flash的擦除 274

7.13.3 演示程序分析 275

7.13.4 修改和使用XCL文件 279

第8章 IAR EWARM版本迁移 281

8.1 版本迁移概述 281

8.1.1 EWARM版本4.xx与5.xx的区别 281

8.1.2 迁移工作 281

8.2 链接器和链接器的配置 282

8.2.1 EWARM 4.xx的链接器XLINK及其配置文件 282

8.2.2 XLINK选项 282

8.2.3 XCL文件举例 284

8.2.4 EWARM 5.xx的链接器ILINK及其配置文件 286

8.2.5 ICF格式概述 286

8.2.6 ICF文件举例 290

8.2.7 图形化工具ICF Editor的使用 292

8.3 有关版本迁移的其他信息 292

第9章 C与汇编的混合编程 294

9.1 AVR单片机C语言与汇编语言的混合编程 294

9.1.1 在C语言函数和汇编语言函数间传递变量 295

9.1.2 C代码调用汇编函数 296

9.1.3 汇编代码调用C函数 297

9.1.4 使用汇编语言编写中断程序 298

9.1.5 汇编代码访问全局变量 299

9.2 MSF430单片机C语言与汇编语言的混合编程 300

9.2.1 调用内部函数 300

9.2.2 直接嵌入 300

9.2.3 调用汇编模块 300

9.2.4 新的函数调用协议 302

9.2.5 实例分析 303

第10章 程序分析与性能优化 308

10.1 应用程序分析 308

10.1.1 函数级刨析 308

10.1.2 代码覆盖 310

10.2 调整IAR Embedded Workbench以获取最佳性能 312

10.2.1 优化设置——代码容量与速度 312

10.2.2 存储模型选择 313

10.2.3 运行库设置 314

10.2.4 数据类型选择 315

10.2.5 目标处理器专有设置 315

10.3 为嵌入式应用编写高效率代码 315

10.3.1 合理利用编译系统 316

10.3.2 选择数据类型以及数据在存储器中的定位 319

10.3.3 编写高效代码 322

第11章 基于CAN协议的Boot Loader 327

11.1 硬件电路设计 328

11.1.1 电源电路 328

11.1.2 CAN收发器电路 328

11.1.3 单片机电路 330

11.2 软件设计概述 330

11.2.1 Boot Loader运行环境 332

11.2.2 Boot Loader实现 335

11.3 存储空间定义 337

11.3.1 Flash存储空间 338

11.3.2 EEPROM数据存储区 338

11.3.3 签名存储区 339

11.3.4 Boot Loader信息存储区 339

11.3.5 Boot Loader配置存储区 340

11.3.6 设备寄存器 343

11.4 CAN协议和ISP命令 343

11.4.1 CAN协议 343

11.4.2 CAN ISP命令数据流协议 345

11.5 API应用程序编程接口 351

11.5.1 API的定义 351

11.5.2 使用API 351

11.5.3 API的使用限制 351

11.5.4 API细节介绍 351

11.5.5 API入口点 352

11.5.6 IAR环境中的API调用示例 352

11.5.7 使用其他C编译器的API调用 352

11.6 使用Flip软件与CAN结点通信 355

第12章 基于AVR单片机的数码录放模块 356

12.1 系统工作原理 356

12.1.1 语音采样的理论依据 356

12.1.2 数据存储和读取 357

12.1.3 PWM声音回放 358

12.2 硬件电路设计 359

12.2.1 微控制器和存储器电路 360

12.2.2 麦克风和扬声器电路 361

12.3 软件设计 362

12.3.1 初始化设置 362

12.3.2 主循环 362

12.3.3 擦除 364

12.3.4 录音 366

12.3.5 存储 368

12.3.6 回放 370

12.4 调试和优化 372

第13章 基于STR912的USB声卡 374

13.1 硬件设计 374

13.1.1 处理器概述 374

13.1.2 电源电路 374

13.1.3 JTAG及复位电路 376

13.1.4 液晶显示电路 376

13.1.5 USB接口电路 377

13.1.6 微控制器电路 378

13.1.7 音频接口电路 378

13.2 软件设计 380

13.2.1 启动程序 380

13.2.2 驱动程序 390

13.2.3 应用程序 396

13.3 调试和使用 402

13.3.1 硬件电路的调试 402

13.3.2 软件部分的调试 402

附录A 为MSP430系列单片机编写高质量代码 410

附录B 为AVR系列单片机编写高质量代码 412

附录C 编译指南 414

附录D 选择合适的微控制器 416

参考文献 422