第I章MDK概述 1
1.1 μVision IDE 1
1.2 RealView编译工具集 2
1.2.1 armcc 2
1.2.2 armasm 3
1.2.3 armlink 3
1.2.4 armar 3
1.3实时库 3
1.4调试器 4
1.5软件开发流程 5
第2章μVision 4的安装与配置 6
2.1安装的最小系统要求 6
2.2 MDK的安装 6
2.3 MDK目录结构 9
2.4注册与帮助 9
第3章μVision IDE 13
3.1菜单栏、工具栏、快捷键 14
3.1.1 File菜单 15
3.1.2 Edit菜单 15
3.1.3 View菜单 17
3.1.4 Project菜单 19
3.1.5 Flash菜单 20
3.1.6 Debug菜单 20
3.1.7 Peripherals菜单 21
3.1.8 Tool菜单 22
3.1.9 SVCS菜单 22
3.1.10 Window菜单 22
3.1.11 Help菜单 22
3.1.12 Status栏 23
3.2工程窗口 24
3.2.1工程页 24
3.2.2 Regs页 25
3.2.3 Books页 26
3.2.4 Functions页 27
3.2.5 Templates页 27
3.3编辑窗口 28
3.4输出窗口 29
3.4.1 Build输出窗口 29
3.4.2 Command窗口 30
3.4.3 Find In Files输出窗口 30
3.4.4内存窗口 30
3.4.5观测窗口 31
3.4.6调用栈窗口 33
3.4.7外设对话框 33
3.4.8分析输出窗口 34
第4章 第一个MDK工程 36
4.1 CMSIS标准 36
4.1.1基于CMSIS标准的软件架构 37
4.1.2 CMSIS代码规范 38
4.1.3 CMSIS文件结构 40
4.2工程创建 47
4.2.1选择工具集 47
4.2.2创建工程并选择处理器 48
4.2.3配置处理器启动代码 49
4.2.4硬件选项配置 50
4.2.5创建源文件及文件组 52
4.2.6编译链接工程 54
4.3工程调试 55
4.3.1选择调试方式及调试器 55
4.3.2配置ULINK2调试适配器 56
4.3.3开始调试 56
4.4工程下载 58
4.4.1生成HEX文件 58
4.4.2配置Flash编程工具及算法 59
4.4.3工程下载 61
4.5建立多工程 61
4.5.1创建多工程文件 62
4.5.2多工程文件的管理 62
4.5.3多工程文件的编译 63
4.6常用技巧 63
4.6.1编译后启用外部工具 64
4.6.2为目标和列表文件指定单独的文件夹 64
4.6.3管理处理器数据库 65
4.6.4创建一个库文件 67
4.6.5文件和文件组属性 67
4.6.6文件扩展名 69
4.6.7选择始终包含的库模块 70
4.6.8使用其他编译器 70
第5章μVision 4工具 72
5.1配置向导 72
5.1.1配置菜单 72
5.1.2配置向导示例 73
5.2文本搜索 75
5.3源浏览器 76
5.4定制菜单运行外部程序 79
5.5版本控制 80
5.6语法检查工具PC-Lint 82
5.7键码序列 83
第6章Real View汇编器armasm 85
6.1 ARM汇编语言基础 85
6.1.1 ARM处理器架构版本 85
6.1.2指令集简介 86
6.1.3处理器模式 87
6.1.4寄存器 87
6.2汇编程序的基本格式与结构 88
6.2.1汇编源语句行格式 88
6.2.2汇编语言程序的基本结构 88
6.2.3子程序 89
6.2.4宏 90
6.3源程序汇编过程 92
6.3.1环境设置 92
6.3.2命令与提示 92
6.3.3汇编输出文件 93
6.4汇编命令选项 96
6.5符号、运算符与表达式 105
6.5.1符号 105
6.5.2运算符 108
6.5.3表达式 112
第7章RealView编译器armcc 114
7.1编译源程序 114
7.1.1环境设置 114
7.1.2命令与提示 115
7.1.3文件命名约定和搜索约定 116
7.1.4编译输出文件 117
7.2编译命令选项 120
7.3 armcc编译器特性 151
7.3.1关键字 151
7.3.2 __declspec属性 162
7.3.3函数、类型、变量的属性 164
7.3.4 pragmas 171
7.3.5内在函数(intrinsics) 173
7.3.6预定义宏 178
7.4内联汇编与内嵌汇编 182
7.4.1内联汇编 182
7.4.2内嵌汇编 188
7.4.3访问旧内联汇编代码中sp、lr或Pc 194
7.4.4内联汇编与内嵌汇编的区别 195
7.5高级编程管理和技巧 196
7.5.1预编译头文件 196
7.5.2代码优化 199
7.5.3内联 204
7.5.4函数 205
7.5.5程序复杂度度量 208
7.5.6使用浮点运算 209
第8章RealView链接器armlink 211
8.1链接器armlink的使用 211
8.1.1环境设置 211
8.1.2链接模型 212
8.1.3 armlink命令行及输入输出 212
8.2链接命令 214
8.2.1获取帮助和信息类命令选项 214
8.2.2库控制类命令选项 214
8.2.3控制链接器行为类选项 215
8.2.4设置输出文件类选项 216
8.2.5设置内存映射类选项 216
8.2.6控制调试信息类选项 218
8.2.7控制映像内容类选项 219
8.2.8控制胶合代码类选项 224
8.2.9字节寻址模式类选项 225
8.2.10控制映像相关信息类选项 225
8.2.11控制链接器诊断信息类选项 228
8.2.12使用via文件选项 229
8.2.13杂项 230
8.3链接器的基本功能 230
8.3.1指定映像结构 230
8.3.2节布局 233
8.3.3优化和修正 234
8.3.4使用命令行选项创建简单映像 242
8.3.5使用命令行选项来处理C+++异常 244
8.3.6链接器生成映像的信息 245
8.4映像符号的定义与访问 246
8.4.1 ARM/Thumb同义词 246
8.4.2链接器定义的符号 247
8.4.3访问其他映像中的符号 249
8.4.4隐藏和重命名全局符号 250
8.4.5用$Super $$和$Sub$$覆盖符号定义 253
8.5分散加载描述文件 253
8.5.1分散加载机制 254
8.5.2分散加载描述文件的语法 257
第9章RealView库及库管理器 268
9.1 RealView库 268
9.1.1环境设置 268
9.1.2 ARM C、C++运行时库 269
9.1.3 Thumb C库 269
9.1.4浮点支持库 269
9.2 C微库 270
9.2.1与默认C库的差异 270
9.2.2使用微库建立应用程序 271
9.3库管理器armar 271
9.3.1库的搜索与扫描 272
9.3.2库管理器armar 273
第10章 映像文件转换器fromELF 277
10.1 fromELF命令 277
10.2使用μVision4 IDE生成HEX文件 287
第11章μVision IDE工具 289
11.1配置向导 289
11.1.1配置菜单 290
11.1.2配置向导示例 290
11.2文本搜索 293
11.3源浏览器 293
11.4键码序列 296
11.5定制用户菜单 297
11.6版本控制 298
11.7语法检查工具PC-Lint 300
第12章 软件调试 303
12.1调试器的使用 304
12.1.1启动调试模式 304
12.1.2应用程序的执行 304
12.1.3 CPU模拟 304
12.2调试窗口及对话框 305
12.2.1断点(Breakpoint)对话框 305
12.2.2代码覆盖(Code Coverage)窗口 308
12.2.3寄存器(Regs)页 308
12.2.4反汇编窗口 308
12.2.5内存窗口及内存映射对话框 309
12.2.6执行剖析器 311
12.2.7性能分析仪 312
12.2.8串行窗口 312
12.2.9符号窗口 313
12.2.10工具箱 314
12.2.11观察窗口 314
12.2.12调用栈窗口 314
12.2.13命令窗口 315
12.2.14指令跟踪窗口 316
12.2.15系统观测窗口 316
12.3逻辑分析仪 317
12.3.1逻辑分析仪的配置 319
12.3.2信号配置举例 320
12.3.3限制 321
12.4调试命令 321
12.4.1调试命令分类 321
12.4.2调试命令详解 323
12.5表达式 344
12.5.1常量 345
12.5.2系统变量 346
12.5.3外围设备变量 346
12.5.4程序变量 349
12.5.5行号 351
12.5.6位地址 352
12.5.7类型说明 352
12.5.8操作符 352
12.5.9 μVision IDE和C中表达式的差异 352
12.5.10表达式实例 353
12.6调试函数 355
12.6.1函数的建立及调用 355
12.6.2预定义调试函数 356
12.6.3用户函数 366
12.6.4信号函数 367
12.6.5调试函数与C之间的差异 369
12.7信号函数模板 370
12.7.1数字信号输入 370
12.7.2模拟信号输入 374
12.7.3 UART通信 380
12.7.4 CAN总线 382
12.7.5 I2C总线 387
12.7.6 SPI接口 391
第13章FLASH编程器 396
13.1 Flash菜单配置 396
13.2配置初始化文件 399
13.2.1总线配置 399
13.2.2加载附加程序 400
第14章 基于STM32的简单应用开发 401
14.1 EM-STM3210E开发板 401
14.1.1硬件配置 401
14.1.2基本结构 403
14.1.3连接器、跳线 404
14.1.4外设及I/O接口 404
14.2硬件电路 407
14.3 RTX内核 408
14.4创建应用程序RTX_ADCBlinky 409
14.4.1创建新工程RTX_ADCBlink 409
14.4.2添加用户源程序 412
14.5模拟仿真调试RTX_ADCBlinky 420
14.5.1模拟外部输入信号 420
14.5.2模拟UART通信 422
14.5.3查看片上外围设备状态 422
14.5.4逻辑分析仪查看输入输出信号时序 422
14.6硬件调试RTX_ADCBlinky 423
14.6.1配置实时跟踪调试 423
14.6.2实时跟踪调试 427
参考文献 434