微信扫一扫,移动浏览光盘
简介
本书以瑞典IAR Systems 公司最新推出的V5版本IAR Embedded
Workbench For ARM为核心,详细介绍IAR C/C++编译器、ILINK链接器、
IAR PowerPAC 嵌入式实时操作系统以及集成开发环境的使用方法,给出
LPC2400,STM32 CortexM3,AT91sam9261等ARM核嵌入式处理器应用编程实
例,分析与具体处理器架构相关的软件技术要点,介绍嵌入式系统应用编
程方法和开发过程,并配有包含全功能IAR评估版软件包和书中全部实例的
光盘,以便于读者快速掌握集成开发环境和嵌入式C编译器的使用方法。
本书适合于从事ARM嵌入式系统设计的工程技术人员阅读,也可作为大
专院校相关专业嵌入式系统课程的教学用书。
目录
第1章 快速入门.
1.1 iar ewarm v5版本的主要特性与文件格式1
1.2 项目的创建、编译与链接3
1.2.1 创建项目4
1.2.2 编译项目10
1.2.3 链接项目12
1.3 使用iar cspy调试程序15
1.4使用c与汇编混合编程模式19
1.5 采用c++编程22
1.6 模拟中断仿真27
1.6.1 添加中断句柄27
1.6.2 设置仿真环境29
1.6.3 运行仿真中断34
1.7 使用库模块35
第2章 arm处理器编程基础
2.1 arm编程模型38
2.1.1 arm的数据类型和存储器格式38
2.1.2 处理器工作状态和运行模式40
2.1.3 寄存器组织41
2.1.4 异常46
.2.2 arm的寻址方式50
2.2.1 寄存器寻址50
2.2.2 立即寻址50
2.2.3 寄存器偏移寻址51
2.2.4 寄存器间接寻址51
2.2.5 基址寻址52
2.2.6 相对寻址52
2.2.7 多寄存器寻址52
2.2.8 堆栈寻址53
2.2.9 块拷贝寻址53
2.3 arm指令集54
2.3.1 arm指令的功能与格式54
2.3.2 指令的条件域55
2.3.3 指令分类说明56
2.3.4 arm伪指令71
2.4 thumb指令集73
2.5 arm汇编语言程序设计74
2.5.1 arm汇编语言程序规范74
2.5.2 iar汇编器支持的伪指令76
2.5.3 简单汇编语言程序设计85
2.6 用汇编语言编写系统启动程序87
2.6.1 编写启动程序的一般规则88
2.6.2 iar ewarm软件包提供的系统启动程序89
第3章 iar ewarm集成开发环境
3.1 下拉菜单93
3.1.1 file菜单93
3.1.2 edit菜单94
3.1.3 view菜单96
3.1.4 project菜单97
3.1.5 tools菜单99
3.1.6 window菜单100
3.1.7 help菜单100
3.2 定制iar ewarm集成开发环境102
3.3 iar ewarm的项目管理104
3.3.1 项目的创建与配置104
3.3.2 项目文件导航105
3.3.3 源代码控制107
3.4 应用程序创建107
3.4.1 程序创建107
3.4.2 扩展工具链109
3.5 iar ewarm编辑器110
3.5.1 iar ewarm编辑器的使用110
3.5.2 定制编辑环境112
第4章 应用程序仿真调试
4.1 iar cspy调试器环境115
4.2 cspy调试器的下拉菜单120
4.2.1 view菜单120
4.2.2 debug菜单121
4.2.3 disassembly菜单125
4.2.4 simulator菜单125
4.3 用cspy调试用户程序131
4.3.1 程序执行方式131
4.3.2 用call stack窗口跟踪函数调用133
4.4 变量和表达式134
4.4.1 cspy表达式134
4.4.2 察看变量和表达式135
4.5 断点136
4.5.1 定义断点137
4.5.2 察看断点138
4.6 察看存储器和寄存器139
4.6.1 使用存储器窗口139
4.6.2 使用寄存器窗口140
4.7 cspy宏系统141
4.7.1 宏语言142
4.7.2 使用cspy宏150
4.8 利用cspy模拟器进行中断仿真154
4.8.1 cspy中断仿真系统154
4.8.2 中断仿真系统的使用155
4.9 应用程序分析160
4.9.1 函数级剖析160
4.9.2 代码覆盖分析161
4.10 cspy硬件仿真系统162
4.10.1 硬件仿真流程162
4.10.2 采用iar jlink进行硬件系统仿真调试163
第5章 iar c/c++编译器
5.1 iar c/c++编译器的选项配置177
5.1.1 基本选项配置177
5.1.2 c/c++编译器选项配置181
5.2 数据类型188
5.2.1 基本类型数据189
5.2.2 指针类型数据191
5.2.3 结构体类型数据192
5.2.4 类型限定符192
5.3 数据存储方式193
5.3.1 堆栈与自动变量194
5.3.2 动态存储器与堆194
5.4 扩展关键字195
5.5 函数200
5.5.1 cpu模式和ram中运行函数200
5.5.2 用于中断、并发及操作系统编程的基元201
5.5.3 本征函数204
5.6 pragma 预编译命令208
5.7 iar c语言扩展212
5.7.1 重要扩展212
5.7.2 有用扩展215
5.7.3 次要扩展217
5.8 使用c++219
5.8.1 一般介绍219
5.8.2 c++特性描述220
5.8.3 c++语言扩展222
第6章 iar ilink链接器..
6.1 模块与段224
6.2 链接过程225
6.2.1 根据链接器配置文件进行段定位226
6.2.2 系统启动时的初始化228
6.3 链接器配置文件命令228
6.3.1 定义存储器与定义存储区域命令229
6.3.2 存储区域229
6.3.3 段选择命令231
6.3.4 段处理命令232
6.3.5 定义符号命令235
6.3.6 结构命令236
6.3.7 图形化配置工具236
6.3.8 配置命令综合举例238
6.4 链接应用程序239
6.4.1 定义存储器空间240
6.4.2 放置段241
6.4.3 在ram中保留空间242
6.4.4 保持模块、符号与段242
6.4.5 应用程序入口、建立堆栈与程序出口243
6.4.6 修改默认初始化过程243
6.4.7 其他处理245
6.5 ilink链接器的选项配置246
第7章 dlib库运行环境
7.1 运行环境简介254
7.2 使用预编译库255
7.2.1 设置库选项256
7.2.2 替换库模块257
7.3 创建和使用定制库257
7.4 系统启动和终止258
7.4.1 系统启动258
7.4.2 系统终止260
7.4.3 定制系统初始化261
7.5 标准输入/输出261
7.5.1 实现底层输入/输出特性261
7.5.2 配置printf 和scanf的符号262
7.5.3 文件输入/输出263
7.6 locale264
7.7 环境交互及其他265
7.7.1 环境交互265
7.7.2 cspy调试器运行接口266
7.7.3 模块一致性检查267
7.8 库函数268
7.8.1 头文件268
7.8.2 附加c函数270
第8章 汇编语言接口
8.1 c语言与汇编语言混合编程 272
8.1.1 c语言本征函数272
8.1.2 汇编语言程序272
8.1.3 内联汇编273
8.2 arm过程调用标准atpcs273
8.2.1 寄存器使用规则274
8.2.2 堆栈使用规则274
8.2.3 参数传递及函数返回值规则274
8.3 混合编程举例275
8.3.1 汇编语言程序调用c语言函数275
8.3.2 汇编语言程序访问c语言函数的全局变量276
8.3.3 c语言程序调用汇编语言子程序277
8.3.4 通过c语言程序框架生成汇编语言程序278
8.3.5 c++程序调用汇编语言子程序280
8.4 调用规则总结281
第9章 powerpac实时操作系统
9.1 powerpac rtos的主要特性284
9.2 powerpac rtos的基础知识286
9.2.1 任务287
9.2.2 任务调度289
9.2.3 任务间通信290
9.2.4 任务切换290
9.2.5 启动os 292
9.3 任务管理293
9.4 软件定时器294
9.5 资源信号量296
9.6 计数信号量298
9.7 邮箱299
9.8 队列301
9.9 任务事件302
9.10 事件对象302
9.11 堆类型内存管理303
9.12 固定块大小的内存池303
9.13 堆栈304
9.14 中断305
9.14.1 中断延时305
9.14.2 中断处理规则306
9.15 临界区308
9.16 系统变量308
9.17 目标系统的配置309
9.18 定时测量310
9.18.1 低分辨率测量310
9.18.2 高分辨率测量311
9.19 实时操作系统调试插件313
9.20 powerpac运行错误317
9.21 性能和资源利用率319
9.21.1 使用端口引脚和示波器测量上下文切换时间320
9.21.2 使用高分辨率定时器测量上下文切换时间321
9.22 其他322
第10章 arm嵌入式系统应用编程实例
10.1 嵌入式系统应用编程中的代码优化325
10.1.1 合理使用编译器优化选项325
10.1.2 选择合适的数据类型327
10.1.3 数据与函数在存储器中的定位329
10.1.4 编写高效代码331
10.2 与应用系统相关的注意事项333
10.2.1 stack堆栈和heap堆333
10.2.2 编译、链接工具与应用系统之间的相互作用334
10.2.3 aeabi依从性336
10.3 nxp lpc2400应用系统编程337
10.3.1 lpc2400系列处理器简介337
10.3.2 存储器结构338
10.3.3 存储器重映射343
10.3.4 时钟频率控制345
10.3.5 中断控制351
10.3.6 外部中断应用编程357
10.3.7 gpio应用编程375
10.3.8 异步串行口uart应用编程386
10.3.9 定时器应用编程398
10.3.10 实时时钟rtc应用编程409
10.3.11 模数转换器adc应用编程420
10.3.12 μc/os ii在lpc2468上的移植430
10.4 stm32应用系统编程472
10.4.1 cortexm3处理器简介472
10.4.2 异常处理474
10.4.3 stm32系列处理器结构特点476
10.4.4 存储器结构477
10.4.5 通用i/o端口应用编程480
10.4.6 嵌套向量控制器应用编程487
10.4.7 电源控制应用编程496
10.4.8 独立看门狗应用编程509
10.4.9 综合应用编程——mp3播放器518
10.5 at91sam9261应用系统编程542
10.5.1 at91sam9261处理器简介542
10.5.2 并行i/o端口应用编程546
10.5.3 实时定时器应用编程554
附录1 iar embedded workbench设备支持列表560
附录2 关于随书配套光盘和jlink仿真器562
附录3 ak100 arm仿真器简介563
附录4 mlink cortexm3仿真器简介565
参考文献...567
1.1 iar ewarm v5版本的主要特性与文件格式1
1.2 项目的创建、编译与链接3
1.2.1 创建项目4
1.2.2 编译项目10
1.2.3 链接项目12
1.3 使用iar cspy调试程序15
1.4使用c与汇编混合编程模式19
1.5 采用c++编程22
1.6 模拟中断仿真27
1.6.1 添加中断句柄27
1.6.2 设置仿真环境29
1.6.3 运行仿真中断34
1.7 使用库模块35
第2章 arm处理器编程基础
2.1 arm编程模型38
2.1.1 arm的数据类型和存储器格式38
2.1.2 处理器工作状态和运行模式40
2.1.3 寄存器组织41
2.1.4 异常46
.2.2 arm的寻址方式50
2.2.1 寄存器寻址50
2.2.2 立即寻址50
2.2.3 寄存器偏移寻址51
2.2.4 寄存器间接寻址51
2.2.5 基址寻址52
2.2.6 相对寻址52
2.2.7 多寄存器寻址52
2.2.8 堆栈寻址53
2.2.9 块拷贝寻址53
2.3 arm指令集54
2.3.1 arm指令的功能与格式54
2.3.2 指令的条件域55
2.3.3 指令分类说明56
2.3.4 arm伪指令71
2.4 thumb指令集73
2.5 arm汇编语言程序设计74
2.5.1 arm汇编语言程序规范74
2.5.2 iar汇编器支持的伪指令76
2.5.3 简单汇编语言程序设计85
2.6 用汇编语言编写系统启动程序87
2.6.1 编写启动程序的一般规则88
2.6.2 iar ewarm软件包提供的系统启动程序89
第3章 iar ewarm集成开发环境
3.1 下拉菜单93
3.1.1 file菜单93
3.1.2 edit菜单94
3.1.3 view菜单96
3.1.4 project菜单97
3.1.5 tools菜单99
3.1.6 window菜单100
3.1.7 help菜单100
3.2 定制iar ewarm集成开发环境102
3.3 iar ewarm的项目管理104
3.3.1 项目的创建与配置104
3.3.2 项目文件导航105
3.3.3 源代码控制107
3.4 应用程序创建107
3.4.1 程序创建107
3.4.2 扩展工具链109
3.5 iar ewarm编辑器110
3.5.1 iar ewarm编辑器的使用110
3.5.2 定制编辑环境112
第4章 应用程序仿真调试
4.1 iar cspy调试器环境115
4.2 cspy调试器的下拉菜单120
4.2.1 view菜单120
4.2.2 debug菜单121
4.2.3 disassembly菜单125
4.2.4 simulator菜单125
4.3 用cspy调试用户程序131
4.3.1 程序执行方式131
4.3.2 用call stack窗口跟踪函数调用133
4.4 变量和表达式134
4.4.1 cspy表达式134
4.4.2 察看变量和表达式135
4.5 断点136
4.5.1 定义断点137
4.5.2 察看断点138
4.6 察看存储器和寄存器139
4.6.1 使用存储器窗口139
4.6.2 使用寄存器窗口140
4.7 cspy宏系统141
4.7.1 宏语言142
4.7.2 使用cspy宏150
4.8 利用cspy模拟器进行中断仿真154
4.8.1 cspy中断仿真系统154
4.8.2 中断仿真系统的使用155
4.9 应用程序分析160
4.9.1 函数级剖析160
4.9.2 代码覆盖分析161
4.10 cspy硬件仿真系统162
4.10.1 硬件仿真流程162
4.10.2 采用iar jlink进行硬件系统仿真调试163
第5章 iar c/c++编译器
5.1 iar c/c++编译器的选项配置177
5.1.1 基本选项配置177
5.1.2 c/c++编译器选项配置181
5.2 数据类型188
5.2.1 基本类型数据189
5.2.2 指针类型数据191
5.2.3 结构体类型数据192
5.2.4 类型限定符192
5.3 数据存储方式193
5.3.1 堆栈与自动变量194
5.3.2 动态存储器与堆194
5.4 扩展关键字195
5.5 函数200
5.5.1 cpu模式和ram中运行函数200
5.5.2 用于中断、并发及操作系统编程的基元201
5.5.3 本征函数204
5.6 pragma 预编译命令208
5.7 iar c语言扩展212
5.7.1 重要扩展212
5.7.2 有用扩展215
5.7.3 次要扩展217
5.8 使用c++219
5.8.1 一般介绍219
5.8.2 c++特性描述220
5.8.3 c++语言扩展222
第6章 iar ilink链接器..
6.1 模块与段224
6.2 链接过程225
6.2.1 根据链接器配置文件进行段定位226
6.2.2 系统启动时的初始化228
6.3 链接器配置文件命令228
6.3.1 定义存储器与定义存储区域命令229
6.3.2 存储区域229
6.3.3 段选择命令231
6.3.4 段处理命令232
6.3.5 定义符号命令235
6.3.6 结构命令236
6.3.7 图形化配置工具236
6.3.8 配置命令综合举例238
6.4 链接应用程序239
6.4.1 定义存储器空间240
6.4.2 放置段241
6.4.3 在ram中保留空间242
6.4.4 保持模块、符号与段242
6.4.5 应用程序入口、建立堆栈与程序出口243
6.4.6 修改默认初始化过程243
6.4.7 其他处理245
6.5 ilink链接器的选项配置246
第7章 dlib库运行环境
7.1 运行环境简介254
7.2 使用预编译库255
7.2.1 设置库选项256
7.2.2 替换库模块257
7.3 创建和使用定制库257
7.4 系统启动和终止258
7.4.1 系统启动258
7.4.2 系统终止260
7.4.3 定制系统初始化261
7.5 标准输入/输出261
7.5.1 实现底层输入/输出特性261
7.5.2 配置printf 和scanf的符号262
7.5.3 文件输入/输出263
7.6 locale264
7.7 环境交互及其他265
7.7.1 环境交互265
7.7.2 cspy调试器运行接口266
7.7.3 模块一致性检查267
7.8 库函数268
7.8.1 头文件268
7.8.2 附加c函数270
第8章 汇编语言接口
8.1 c语言与汇编语言混合编程 272
8.1.1 c语言本征函数272
8.1.2 汇编语言程序272
8.1.3 内联汇编273
8.2 arm过程调用标准atpcs273
8.2.1 寄存器使用规则274
8.2.2 堆栈使用规则274
8.2.3 参数传递及函数返回值规则274
8.3 混合编程举例275
8.3.1 汇编语言程序调用c语言函数275
8.3.2 汇编语言程序访问c语言函数的全局变量276
8.3.3 c语言程序调用汇编语言子程序277
8.3.4 通过c语言程序框架生成汇编语言程序278
8.3.5 c++程序调用汇编语言子程序280
8.4 调用规则总结281
第9章 powerpac实时操作系统
9.1 powerpac rtos的主要特性284
9.2 powerpac rtos的基础知识286
9.2.1 任务287
9.2.2 任务调度289
9.2.3 任务间通信290
9.2.4 任务切换290
9.2.5 启动os 292
9.3 任务管理293
9.4 软件定时器294
9.5 资源信号量296
9.6 计数信号量298
9.7 邮箱299
9.8 队列301
9.9 任务事件302
9.10 事件对象302
9.11 堆类型内存管理303
9.12 固定块大小的内存池303
9.13 堆栈304
9.14 中断305
9.14.1 中断延时305
9.14.2 中断处理规则306
9.15 临界区308
9.16 系统变量308
9.17 目标系统的配置309
9.18 定时测量310
9.18.1 低分辨率测量310
9.18.2 高分辨率测量311
9.19 实时操作系统调试插件313
9.20 powerpac运行错误317
9.21 性能和资源利用率319
9.21.1 使用端口引脚和示波器测量上下文切换时间320
9.21.2 使用高分辨率定时器测量上下文切换时间321
9.22 其他322
第10章 arm嵌入式系统应用编程实例
10.1 嵌入式系统应用编程中的代码优化325
10.1.1 合理使用编译器优化选项325
10.1.2 选择合适的数据类型327
10.1.3 数据与函数在存储器中的定位329
10.1.4 编写高效代码331
10.2 与应用系统相关的注意事项333
10.2.1 stack堆栈和heap堆333
10.2.2 编译、链接工具与应用系统之间的相互作用334
10.2.3 aeabi依从性336
10.3 nxp lpc2400应用系统编程337
10.3.1 lpc2400系列处理器简介337
10.3.2 存储器结构338
10.3.3 存储器重映射343
10.3.4 时钟频率控制345
10.3.5 中断控制351
10.3.6 外部中断应用编程357
10.3.7 gpio应用编程375
10.3.8 异步串行口uart应用编程386
10.3.9 定时器应用编程398
10.3.10 实时时钟rtc应用编程409
10.3.11 模数转换器adc应用编程420
10.3.12 μc/os ii在lpc2468上的移植430
10.4 stm32应用系统编程472
10.4.1 cortexm3处理器简介472
10.4.2 异常处理474
10.4.3 stm32系列处理器结构特点476
10.4.4 存储器结构477
10.4.5 通用i/o端口应用编程480
10.4.6 嵌套向量控制器应用编程487
10.4.7 电源控制应用编程496
10.4.8 独立看门狗应用编程509
10.4.9 综合应用编程——mp3播放器518
10.5 at91sam9261应用系统编程542
10.5.1 at91sam9261处理器简介542
10.5.2 并行i/o端口应用编程546
10.5.3 实时定时器应用编程554
附录1 iar embedded workbench设备支持列表560
附录2 关于随书配套光盘和jlink仿真器562
附录3 ak100 arm仿真器简介563
附录4 mlink cortexm3仿真器简介565
参考文献...567
IAR EWARM V5嵌入式系统应用编程与开发
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!