用
户
手
册
AVR® IAR Embedded
Workbench® IDE
基于Atmel® 公司AVR® 微处理器
目 录
第一部分 产品介绍....................................................................................................................... 1
1.1 产品介绍........................................................................................................................... 1
1.1.1 嵌入式IAR Embedded Workbench IDE .............................................................. 1
1.1.2 IAR C-SPY 调试器............................................................................................... 3
1.1.3 IAR C-SPY 调试器系统....................................................................................... 5
1.1.4 IAR C/C++编译器................................................................................................. 8
1.1.5 IAR汇编器............................................................................................................. 9
1.1.6 IAR XLINK连接器................................................................................................ 9
1.1.7 IAR XAR Library Builder库创建器和IAR XLIB Librarian库管理器............... 10
1.2 已安装文件..................................................................................................................... 11
1.2.1 目录结构.............................................................................................................. 11
1.2.2 文件类型.............................................................................................................. 14
1.2.3 文档...................................................................................................................... 16
第二部分 教程............................................................................................................................. 18
2.1 创建一个应用工程......................................................................................................... 18
2.1.1 创建一个新工程.................................................................................................. 18
2.1.2 应用程序编译和连接.......................................................................................... 23
2.2 使用IAR C-SPYDebugger进行调试.............................................................................. 28
程序调试....................................................................................................................... 28
2.3 C与汇编混合模式 .......................................................................................................... 36
2.3.1 检查调用规则...................................................................................................... 36
2.3.2 在工程中添加一个汇编模块.............................................................................. 37
2.4 使用C++ ......................................................................................................................... 38
创建一个C++应用程序................................................................................................ 39
2.5 模拟一个中断................................................................................................................. 41
2.5.1 加入一个中断句柄.............................................................................................. 42
2.5.2 创建仿真环境...................................................................................................... 43
2.5.3 中断仿真.............................................................................................................. 48
2.5.4 中断和断点中宏的使用...................................................................................... 49
2.6 使用库模块..................................................................................................................... 50
使用库........................................................................................................................... 50
i
第一部分 产品介绍
AVR® IAR Embedded Workbench® IDE用户手册的这部分包括以下章节:
产品介绍
已安装文件
1.1 产品介绍
嵌入式 IAR Embedded Workbench®是一个非常有效的集成开发环境(IDE),它使用户充分
有效地开发并管理嵌入式应用工程。作为一个开发平台,它具备任何在用户每天的工作地方所
想要的特性。
本章介绍了嵌入式 IAR Embedded Workbench IDE,旨在使用户获得对本产品的所有集成工
具的总体了解。
1.1.1 嵌入式 IAR Embedded Workbench IDE
嵌入式 IAR Embedded Workbench IDE 提供一个框架,任何可用的工具都可以完整地嵌入其
中,这些工具包括:
IAR XAR 库创建器和 IAR XLIB Librarian;
高度优化的 IAR AVR C/C++编译器;
AVR IAR 汇编器;
通用 IAR XLINK Linker;
一个强大的编辑器;
一个工程管理器;
嵌入式 IAR Embedded Workbench 适用于大量 8 位、16 位以及 32 位的微处理器和微控制器,
使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大
量代码继承 能力的开发 环境,以及 对大多数和 特殊目标的 支持。嵌入 式 IAR Embedded
Workbench 有效提高用户的工作效率,通过 IAR 工具,用户可以大大节省工作时间。 我们称这
个理念为:“不同架构,同一解决方案”。
IAR C-SPYTM调试器,一个具有世界先进水平的高级语言调试器。
如果用户想获得关于所支持的目标处理器的更详细的信息,请与用户的软件提供商或者与
用户的IAR代理联系,或者登陆IAR网站 www.iar.com 以查询最新的产品信息。
一个可扩展的模块化的环境
尽管嵌入式 IAR Embedded Workbench IDE 可以提供完成一个成功工程所需的所有工具,但
1
我们也认识到集成其他工具的必要性。因此,IAR Embedded Workbench IDE 容易适应于用户喜
欢的编辑器和源代码控制系统。IAR XLINK Linker 可以输出多种格式,使用户可在第三方的软
件上进行调试。实时操作系统(RTOS)支持也可加载到产品中。
编译器,汇编器和连接器也可在命令行环境中运行,用户可以在一个已建好的工程环境中
把它们作为外部工具使用。
特性
嵌入式 IAR Embedded Workbench 是一个灵活的集成开发环境,使用户可以针对多种不同的
目标处理器开发应用程序。并为快速开发和调试提供便捷的 Windows 截面。
项目管理
嵌入式 IAR Embedded Workbench IDE 能帮助用户控制所有的工程模块,例如,C 或者 C+
+源代码文件、汇编文件、“引用”文件、以及其他相关模块。用户创建一个工作区,可以在此
开发一个或多个工程。文件可以组合,并且可以为各级设置选项-工程、组、或者文件。任何
修改都被记录,从而保证重新设计时可以获得所有所需的模块,而可执行文件中不会包含已过
期的模块。下表指出另外的一些特性:
通过工程模板可以创建独立的可编辑和可运行的工程文件,使开发平稳启动;
分级的工程表述;
具有分级图标的源代码浏览器;
可以为全球化、组和个人源代码文件设置选项;
基于文本的工程文件;
自定义功能使用户轻松的扩展标准工具栏;
工程文件输入时可使用命令行模式。
“Make”功能只在必要时才实行再编译、再汇编和再连接文件;
源代码控制
源代码控制(Source Code Control,SCC),作为修订控制,可用于跟踪用户的源代码的不同
版本。IAR Embedded Workbench 可以识别和接受基于 Microsoft 发布的 SCC 接口规范的任何第
三方源代码控制系统。
窗口管理
为使用户充分而方便地控制窗口的位置,每个窗口都可停靠,用户就可以有选择地给窗口
做上标记。可停靠的窗口系统还通过一种节省空间方式使多个窗口可同时打开。另外,重新分
配窗口大小也很方便。
2
文本编辑器
集成化的文本编辑器可以并行编辑多个文件,并具有时兴编辑器所期望的所有编辑特性,
包括无限次的撤销/重做和自动完成。另外它还包含针对软件开发的特殊功能,比如关键字的着
色(C/C++, 汇编和用户定义等)、段缩进、以及对源文件的导航功能。还可识别C语言元素(例
如括号的匹配问题)。下表指出另外的一些特性:
上下文智能帮助系统可以显示 DLIB 库的参考信息;
使用文本风格和色条指出 C、C++和汇编程序的语法;
强大的搜索和置换功能,包括多文件搜索;
从错误列表直接跳转到程序行;
支持多字节字符;
圆括号匹配
自动缩排;
书签功能;
每个窗口均可无限次撤销和重做。
文档
AVR 嵌入式 IAR Workbench IDE 在本文档中有详细讲解。另外还有在线的帮助文件以及超
文本格式的 PDF 用户文档。
1.1.2 IAR C-SPY 调试器
IAR C-SPY 调试器是为嵌入式应用程序开发的高级语言调试器。在设计上,它与 IAR 编译
器和汇编器一起工作,并且与嵌入式 IAR Embedded Workbench IDE 完全集成,可在开发与调
试间自由切换。因此,它使用户可做到:
在调试时进行编辑。在调试过程中,源代码的修正可以直接写入用来控制调试过程的
同一窗口中。其修改将在项目重启后生效;
在启动调试器之前可设置源代码断点。源代码中的断点可与同一段源代码相关联,即
使中间插入了新的代码。
IAR C-SPY 调试器由一个具备基本的 C-SPY 系列特点的主要部分和驱动部分组成。
C-SPY 驱动确保与目标系统的通信和控制。并提供一个用户接口-特殊菜单,窗口和对话框-
以连接到目标系统的功能上,比如,特殊断点。在下面内容中,将概述通用 C-SPY 调试器的特
性。对于可用的 C-SPY 驱动的概述,请参见第 8 页,IAR C-SPY 调试器系统。
C-SPY 调试器的总体特性
因为 IAR 系统提供的是一个整体工具链,编译器和连接器的输出结果包含调试器的扩展调
试信息,从而使用户获得最佳的调试效果。IAR C-SPY 调试器具备本节中所介绍的总体特性。
3
源代码和反汇编调试
IAR C-SPY 调试器使用户能按要求在源代码和反汇编调试间切换,适用于 C/C++和汇编
语言源代码。
调试 C 或 C++源代码是验证用户的应用程序的逻辑性最快捷、最便利的方式,然而,反
汇编调试则针对应用程序的错误段,并对硬件进行精确控制。在混合显示模式中,调试器显示
C/C++源代码及其对应的反汇编代码清单。
程序调用级的单步调试
传统的调试器设置,认为最佳的源代码调试间隔是“行到行”,与之相比,C-SPY 则更细化,
将每个语句和调用函数称为“步点”,并加以控制。这就意味着在每个表达式里的函数调用,以
及函数调用作为参数甚至到其他类型的函数调用都可以进行“单步”调试。后者在调试 C++源
代码时特别有效,主要针对大量的外部函数调用,比如对象构造器。
调试信息提供了内嵌函数,如果执行了这类函数的调用,也可进行源码级调试。
代码和数据断点
C-SPY 断点系统允许用户在调试程序过程中设置多种断点,并按照特定需要在某一位置停
止。用户可以设置代码断点来验证程序的逻辑性是否正确。也可以设置数据断点来检验数据如
何以及何时改变。最后,用户还可以添加条件至断点处。
变量和表达式监控
当用户监控变量和表达式时,用户可以选择很多工具。任何变量和表达式都可通过一次扫
描来求值。用户可以很轻松地在一段较长的时间内对已定义的表达式进行监控和记录其值。对
局部变量用户可以直接控制,同时可以无干扰地显示即时数据。最终将自动显示最后指定的变
量。
Container 响应
当用户在 IAR C-SPY 调试器中运行程序时,可以查看诸如 STL 列表和向量地址等库内数据
类型。因此,用户在运行 C++ STL containers 时,可以对程序进行总体浏览,以及良好的调试。
调用栈信息
AVR IAR C/C++编译器产生扩展的函数调用信息。在不影响整个运行环境的情况下,无论
程序计数器指在哪里 C-SPY 都能显示整个函数调用栈信息。用户可以在调用栈中选择任何函数,
并且可以获得相关的局部变量和寄存器的可用信息。
4
强大的宏系统
IAR C-SPY 调试器包含了一个强大的内部宏系统,能使用户定义复杂的动作并得以实施。
C-SPY 宏可单独使用也可以同复杂的断点联合使用-如果用户是在使用仿真器的话-中断仿真
系统需要进行一系列复杂的动作。
C-SPY 调试器的其他特性
下表指出了一些其他的特性:
模块化和可扩展化的结构设计允许在调试器中加入第三方设备,比如,实时操作系统,
外围仿真模块和驱动;
线程运行保证在运行目标应用程序时 IDE 仍处于响应状态;
自动步进;
源代码浏览器可以方便查看函数,类型以及变量;
变量的扩展类型识别;
可配置化的寄存器(CPU 和外围设备)以及存贮器窗口;
支持代码覆盖和函数级模块化;
终端 I/O 模拟;
支持 UBROF,Intel 扩展和 Motorola 输入格式。
RTOS 响应
IAR C-SPY 调换器支持实时 OS 响应调试。
RTOS 插件模块由 IAR 以及一些第三方的供货商提供。如要了解支持 RTOS 模块信息,请
联系用户的软件供应商或 IAR 代理,或者访问 IAR 网站。
文档
IAR C-SPY 调试器在本文档中有详细介绍。调试器的一般特点在第四部分中有介绍,每个
调试器驱动特殊性质在第五部分 IAR C-SPY 仿真器和第六部分 C-SPY 硬件调试系统中有介绍。
网上还有帮助信息和超文本格式(PDF)文档。
1.1.3 IAR C-SPY 调试器系统
至本手册撰写之时,AVR 公司的 IAR C-SPY 调试器针对下列目标系统发布了驱动:
仿真器;
AVR® ICE200
AVR® JTAGICE
AVR® JTAGICE
AVR® Crypto Controller ROM-monitor for Atmel Smart Card Development Board (SCDB)
和 Voyager 开发系统
5
需了解C-SPY驱动的相关信息,请联系用户的软件供应商或IAR代理。也可登陆IAR网站,
如需了解更多关于 IAR C-SPY 调试器的信息,请参看调试器概念,第 107 页。在下面章节,
www.iar.com 。
将描述各种驱动。
C-SPY 仿真器驱动
C-SPY 软仿真器驱动在软件上完全模拟了目标处理器的功能。通过这个驱动,在获得相关
硬件之前就可对程序的逻辑性进行调试。因为不需要硬件,它同时也是很多应用程序最有效的
解决方案。
特性
除具备 C-SPY 调试器的基本特点外,软仿真器驱动还具备:
指令级仿真;
中断模拟;
外围设备仿真,使用 C-SPY 宏系统与直接断点并行。
关于 IAR C-SPY 软仿真器更详细的信息,请参看第五部分 IAR C-SPY 软仿真器一节。
C-SPY ICE200 驱动
C-SPY ICE200 驱动允许连接 AVR® ICE200。C-SPY ICE200 驱动提供了低成本的实时调试
功能。
特性
除了具有 IAR C-SPY 调试器的基本特性外,C-SPY ICE200 驱动还具备:
全部面向微控制器的实时运行。
代码断点数量不限。
不占用目标系统的存贮器;
注意: C-SPY ICE200 驱动不支持代码和数据覆盖、规格化。
关于 C-SPY ICE200 驱动更详细的信息,请参看本手册第六部分 C-SPY 硬件调试器系统。
C-SPY JTAGICE 驱动
6
上调试的性能。
C-SPY JTAGICE 驱动允许连接 AVR® JTAGICE。它提供了自动的 flash 下载,并利用了片
C-SPY JTAGICE 驱动提供了低成本的实时调试功能。