文档库 最新最全的文档下载
当前位置:文档库 › IAR_使用最全方法

IAR_使用最全方法

IAR_使用最全方法
IAR_使用最全方法

软件介绍

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 A VR C/C++编译器;

A VR IAR汇编器;

通用IAR XLINK Linker;

IAR XAR库创建器和IAR XLIB Librarian;

一个强大的编辑器;

一个工程管理器;

IAR C-SPY TM调试器,一个具有世界先进水平的高级语言调试器。

嵌入式IAR Embedded Workbench适用于大量8位、16位以及32位的微处理器和微控制器,使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式IAR Embedded Workbench有效提高用户的工作效率,通过IAR工具,用户可以大大节省工作时间。我们称这个理念为:“不同架构,同一解决方案”。

如果用户想获得关于所支持的目标处理器的更详细的信息,请与用户的软件提供商或者与用户的IAR代理联系,或者登陆IAR网站https://www.wendangku.net/doc/7a10465837.html, 以查询最新的产品信息。

一个可扩展的模块化的环境

尽管嵌入式IAR Embedded Workbench IDE可以提供完成一个成功工程所需的所有工具,但

我们也认识到集成其他工具的必要性。因此,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++和汇编程序的语法;

强大的搜索和置换功能,包括多文件搜索;

从错误列表直接跳转到程序行;

支持多字节字符;

圆括号匹配

自动缩排;

书签功能;

每个窗口均可无限次撤销和重做。

文档

A VR嵌入式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调试器具备本节中所介绍的总

体特性。

源代码和反汇编调试

IAR C-SPY调试器使用户能按要求在源代码和反汇编调试间切换,适用于C/C++和汇编语言源代码。

调试C或C++源代码是验证用户的应用程序的逻辑性最快捷、最便利的方式,然而,反汇编调试则针对应用程序的错误段,并对硬件进行精确控制。在混合显示模式中,调试器显示C/C++源代码及其对应的反汇编代码清单。

程序调用级的单步调试

传统的调试器设置,认为最佳的源代码调试间隔是“行到行”,与之相比,C-SPY则更细化,将每个语句和调用函数称为“步点”,并加以控制。这就意味着在每个表达式里的函数调用,以及函数调用作为参数甚至到其他类型的函数调用都可以进行“单步”调试。后者在调试C++源代码时特别有效,主要针对大量的外部函数调用,比如对象构造器。

调试信息提供了内嵌函数,如果执行了这类函数的调用,也可进行源码级调试。

代码和数据断点

C-SPY断点系统允许用户在调试程序过程中设置多种断点,并按照特定需要在某一位置停止。用户可以设置代码断点来验证程序的逻辑性是否正确。也可以设置数据断点来检验数据如何以及何时改变。最后,用户还可以添加条件至断点处。

变量和表达式监控

当用户监控变量和表达式时,用户可以选择很多工具。任何变量和表达式都可通过一次扫描来求值。用户可以很轻松地在一段较长的时间内对已定义的表达式进行监控和记录其值。对局部变量用户可以直接控制,同时可以无干扰地显示即时数据。最终将自动显示最后指定的变量。

Container响应

当用户在IAR C-SPY调试器中运行程序时,可以查看诸如STL列表和向量地址等库内数据类型。因此,用户在运行C++ STL containers时,可以对程序进行总体浏览,以及良好的调试。

调用栈信息

A VR IAR C/C++编译器产生扩展的函数调用信息。在不影响整个运行环境的情况下,无论程序计数器指在哪里C-SPY都能显示整个函数调用栈信息。用户可以在调用栈中选择任

何函数,并且可以获得相关的局部变量和寄存器的可用信息。强大的宏系统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 调试器系统

至本手册撰写之时,A VR公司的IAR C-SPY 调试器针对下列目标系统发布了驱动: 仿真器;

A VR? ICE200

A VR? JTAGICE

A VR? JTAGICE

A VR? Crypto Controller ROM-monitor for Atmel Smart Card Development Board

(SCDB)和V oyager开发系统

需了解C-SPY驱动的相关信息,请联系用户的软件供应商或IAR代理。也可登陆IAR 网站,https://www.wendangku.net/doc/7a10465837.html, 。

如需了解更多关于IAR C-SPY 调试器的信息,请参看调试器概念,第107页。在下面章节,将描述各种驱动。

C-SPY 仿真器驱动

C-SPY 软仿真器驱动在软件上完全模拟了目标处理器的功能。通过这个驱动,在获得相关硬件之前就可对程序的逻辑性进行调试。因为不需要硬件,它同时也是很多应用程序最有效的解决方案。

特性

除具备C-SPY调试器的基本特点外,软仿真器驱动还具备:

指令级仿真;

中断模拟;

外围设备仿真,使用C-SPY宏系统与直接断点并行。

关于IAR C-SPY软仿真器更详细的信息,请参看第五部分IAR C-SPY 软仿真器一节。

C-SPY ICE200 驱动

C-SPY ICE200驱动允许连接A VR? ICE200。C-SPY ICE200 驱动提供了低成本的实时调试功能。

特性

除了具有IAR C-SPY 调试器的基本特性外,C-SPY ICE200驱动还具备:

全部面向微控制器的实时运行。

代码断点数量不限。

不占用目标系统的存贮器;

注意:C-SPY ICE200驱动不支持代码和数据覆盖、规格化。

关于C-SPY ICE200驱动更详细的信息,请参看本手册第六部分C-SPY 硬件调试器系统。

C-SPY JTAGICE驱动

C-SPY JTAGICE驱动允许连接A VR? JTAGICE。它提供了自动的flash下载,并利用了片上调试的性能。

C-SPY JTAGICE驱动提供了低成本的实时调试功能。特性

除了具有IAR C-SPY 调试器的基本特性外,C-SPY JTAGICE驱动还具备:

全部面向微控制器的实时运行。

使用目标设备上的硬件断点。

不占用目标系统的存贮器;

内置的flash下载器。

串口通信。

注意:C-SPY JTAGICE驱动不支持代码和数据覆盖、规格化。

关于IAR C-SPY软仿真器更详细的信息,请参看本手册第六部分C-SPY 硬件调试器系统。

C-SPY JTAGICE MKII驱动

C-SPY JTAGICE MKII驱动允许连接A VR? JTAGICE MKII。它提供了自动的flash下载,并利用了片上调试的性能。

C-SPY JTAGICE MKII 驱动提供了低成本的实时调试功能。

特性

除了具有IAR C-SPY 调试器的基本特性外,C-SPY JTAGICE MKII驱动还具备:

全部面向微控制器的实时运行。

使用目标设备上的4个硬件断点,以及不限数量的软件断点。

不占用目标系统的存贮器;

内置的flash下载器。

通过串口或USB连接实现通信;

注意:C-SPY JTAGICE MKII驱动不支持代码和数据覆盖、规格化。

关于C-SPY JTAGICE MKII驱动更详细的信息,请参看本手册第六部分C-SPY 硬件调试器系统。

C-SPY CRYPTO 控制器ROM监视器驱动

C-SPY CRYPTO 控制器ROM监视器驱动(CCR驱动)允许连接到Atmel Smart Card 开发板(SCDB)和V oyager开发系统。

特性

除了具有IAR C-SPY 调试器的基本特性外,CCR驱动还具备:

实时运行;

RS-232串口通信;

支持实时中断;

注意:C-SPY ROM监视器不支持代码覆盖。

关于IAR C-SPY ROM监视器更详细的信息,请参看本手册第六部分C-SPY 硬件调试器系统。

1.1.4 IAR C/C++编译器

A VR IAR C/C++编译器是一个具有世界先进水平的具备标准C/C++特性的编译器,众多的扩展插件让用户可以更好地使用A VR的特定功能。

编译器已经和其他的A VR 的IAR系统集成。

特性

A VR IAR C/C++编译器具备以下特性:

代码生成

普通或特定的A VR的最优化技术可以产生出高效的机器代码;

全面的输出选择,包括可重定位的目标代码、汇编源代码和可选的汇编器列表文件;

目标代码可与汇编器连接;

生成扩展的调试信息。

语言工具:

支持C 或C++编程语言;

具有支持IAR扩展的嵌入式C++的特性:模板、名称空间、多重的虚拟外设、固定操作符(static_cast, const_cast,和reinterpret_cast),以及标准的模板库(STL);

在不同的存储器中放置类;

作为一个独立自主的环境,与ISO/ANSI标准相一致;

有特殊目标语言的扩展,比如特殊函数的输入,扩展的关键字,#pragma 指示,预设标志,内部函数,完全分配和行内汇编器;

针对嵌入系统的应用函数的标准库;

与IEEE标准兼容的浮点算法;

可在C或者C++中应用的中断函数。

类型检查

在编译时进行扩展类型检查;

在连接时进行外部调用类型检查;

连接时检查应用程序的内部模块移植性。

运行环境

A VR IAR Embedded Workbench提供了两套运行库:

IAR DLIB库,支持ISO/ANSI C和C++ 。这个库还支持IEEE 754格式的浮点数,多字节参数和局部参数。

IAR CLIB库是一种轻型库,并不完全与ISO/ANSI C 兼容。同时,它也不支持IEEE 745格式或者C++格式。

现在有几种模式来定制运行环境和运行库。就这两种运行库而言,库的源代码已经包含在其中了。

文档

A VR IAR C/C++编译器在A VR ? IAR C/C++ 编译器参考手册里有详细介绍。

1.1.5 IAR汇编器

A VR IAR 汇编器同其他的IAR系统软件集成。它是一个强大的重定位宏汇编器(支持Intel/Motorola格式),并且含有多种指示符和表达式。它具备一个内部C语言预处理器,因而支持条件汇编。

A VR IAR汇编器使用与Atmel?公司A VR汇编器相同的存贮机制和操作语法,从而简化了对已有代码的移植过程。关于详细信息,请参见汇编器A VR? IAR汇编器参考手册。

特性

A VR IAR 汇编器具备以下特性:

C预处理器;

扩展的交叉调用输出的列表文件;

由可用存贮器大小决定参数个数和程序大小;

支持外部调用的复杂表达式;

每个模块有多达65536个可重定位段;

在参数表中有255个重要参数。

文档

A VR IAR汇编器在A VR?IAR 汇编器参考手册里有详细介绍。

1.1.6 IAR XLINK连接器

IAR XLINK 连接器连接一个或多个由AVR IAR 汇编器或者A VR IAR C/C++编译器产生的可重定位的目标文件,并生成A VR 处理器所需的机器代码。它在连接小的单个文件、完全汇编程序时同连接大的、可重定位的、多模块的C/C++或混合C/C++以及汇编程序时一样快捷便利。

它可以识别超过30种的工业标准的代码,另外还包括IAR C-SPY调试器所使用的IAR 系统调试格式——UBROF(通用的二进制可重定位目标文件格式)。一个应用程序可由任意多个UBROF可重定位文件构成,并且可以和汇编器以及C或C++程序合成。

IAR XLINK 连接器最终输出结果是一个完整的、可执行的目标文件,并可以下载到A VR的处理器中或到一个硬件仿真器中。当然,输出文件是否包含调试信息取决于用户所选择的输出格式。

IAR XLINK 连接器支持用户定义库,并只下载那些在连接应用程序时所需的模块。在连接前,IAR XLINK 连接器将对所有的模块进行C语言级的类型检查,并对所有输入文件中的所有参数进行完全的可靠性检查。它还对所有的模块进行统一的编译器设置检查,从而确保使用C或C++运行库的正确类型和参数。

特性

完全的内部模块类型检查;

简易的库模块的覆盖;

灵活的段命令可以更细致地掌控代码和数据的定位;

连接符的定义使对配置的控制更加自如;

可选的代码检测功能对运行监测;

去除无用代码和数据。

文档

IAR XLINK 连接器在IAR Linker和库工具参考手册中有详细介绍。

1.1.7 IAR XAR Library Builder库创建器和IAR XLIB Librarian库管理器

一个库是包含一系列可重定位目标模块的单个文件,每个模块都按需要加载到文件中,互相独立。IAR XAR Library Builder库创建器帮助用户轻松地创建库。此外,IAR XLIB Librarian库管理器使用户可以对IAR系统汇编器和编译器产生的可重定位目标库文件进行操作。

一个库文件与任何由汇编器或编译器生成的可重定位目标文件并没有区别,除非它包含了“LIBRARY”类型的模块。所有的C或C++程序都使用库,同时A VR IARC/C++编译器则使用一些标准的库文件。

特性

IAR XAR Library Builder库创建器和IAR XLIB Librarian库管理器均具备以下特性: 其模块可以嵌入一个库文件中;

交互式或者批量式操作。

IAR XLIB Librarian库管理器还具备以下特点:

其模块可以列出、添加、插入、更换或移除;

其模块可以在程序和库类型间变更;

字段可以列出;

字符可以列出。

文档

IAR XAR Library Builder库创建器和IAR XLIB Librarian库管理器在IAR 连接器和库工具参考手册中有详细介绍。另外,在嵌入式IAR Embedded Workbench 的帮助菜单中还有一份PDF格式的文档供查询。

1.2已安装文件

本章介绍了安装过程中创建了哪些目录以及使用了哪些文件类型。在本章末尾,介绍了在不同版本的手册和在线文档中可以找到的信息。

参考产品附带的“快速入门”和“安装和注册手册”,可以查到关于系统要求以及如何安装及注册IAR系统产品的信息。

1.2.1目录结构

安装过程中创建了几个目录,用来放置IAR系统开发工具所使用的不同类型的文件。下面就详细讲解每个目录下默认的文件。

根目录

在安装过程中创建的默认根目录为:x:\Program Files\IAR Systems\Embedded Workbench 4.n,x是指Microsoft Windows 的安装目录,而4.n是嵌入式IAR Embedded Workbench IDE 的版本号。

11

注意:安装路径可与上图设置不同,这取决于先前安装的IAR产品以及用户个人的喜好。

AVR 目录

Avr目录包含所有特定产品的相关子目录。

Avr\bin目录

Avr\bin子目录包含特殊A VR插件的可执行文件,比如A VR IAR C/C++编译器,A VR IAR 汇编器和A VR IARC-SPY驱动。

Avr\config目录

Avr\config子目录包含用于配置开发环境和工程的文件,比如:

连接器命令模板文件(*.xcl)

特殊函数注册描述文件(*.sfr)

C-SPY 设备描述文件(*.ddf)

语法着色配置文件(*.cfg)

应用工程和库工程文件的模板文件(*.ewp)以及它们相应的库配置文件。

Avr\doc目录

Avr\doc目录包含A VR工具的最新信息的帮助文档。我们建议用户先读一下这些文档。该目录下也包含了本手册和A VR参考手册的在线超文本(PDF格式)文件,还有在线帮助文件(CHM格式)。

Avr\inc目录

Avr\inc子目录包含内部文件,比如标准C或C++库的头文件。同样,还有定义特定功能寄存器的特殊头文件,而这些文件主要由编译器和汇编器来使用。

Avr \lib目录

Avr \lib子目录包含编译器使用的预先创建的库以及相应的库配置文件。

Avr \src目录

Avr \src 子目录包含一些可配置库功能的源文件以及一些应用程序代码示例。此外还包含库的源代码。

Avr\tutor 目录

Avr\tutor 子目录包含本文档中的教程的相应文件。

公共目录

公共目录包含所有嵌入式IAR Embedded Workbench 产品共享的插件所在的子目录。

Common\bin 目录

Common\bin 子目录包含所有嵌入式IAR Embedded Workbench 产品共享插件的可执行文件,例如IAR XLINK Linker,IAR XLIB Librarian,IAR XAR Library Builder以及编辑器和图形用户接口插件。IAR Embedded Workbench的可执行文件也放置在这里。

Common\config 目录

Common\config 子目录包含嵌入式IAR EmbeddedWorkbench在开发环境中所保持的设置。

Common\doc 目录

Common\doc 子目录包含了所有嵌入式IAR Embedded Workbench产品的共享插件的最新信息的帮助文档,例如连接器和库工具。我们建议用户先读一下这些文档。这个目录还包括“IAR连接器和库工具参考手册”的PDF在线版文档。

Common\plugin目录

Common\plugin子目录包含可作为载入式插件模块的插件的执行文件与描述文件。

Common\src 目录

Common\src 子目录包含所有嵌入式IAR Embedded Workbench产品的共享插件的源文件,比如一个简单的IAR XLINK 连接器的输出格式文件“SIMPLE”。

1.2.2文件类型

IAR系统的开发工具的A VR版中使用下列默认的文件扩展名来确认IAR特定文件类型:当用户需要确定一个文件名时,可以引用一个清楚的扩展名来覆盖默认的文件扩展名。

扩展名为ini和dni的文件是在运行嵌入式IAR Embedded Workbench 工具时同步生成的。这些文件包含关于用户的工程配置及其他设置的信息,然后被放到工程目录下的settings 子目录里。

注意:如果用户是从命令行来运行工具,XLINK列表文件(映象)会采用默认的扩展名lst,这样可能会覆盖由编译器所生成的扩展名。因此我们简易用户将XLINK的映象文件完整地定义出来,比如project1.map。

1.2.3文档

这部分简要介绍了在A VR用户手册和参考手册中地信息,以及一些在线帮助。

用户可以在嵌入式IAR Embedded Workbench中的help菜单里访问A VR的在线文档。或是按F1,在IAR EmbeddedWorkbench IDE中获取帮助。

我们建议用户读一下readme.htm文件以获得最新的信息,而用户手册里有可能没有这些信息。它放在A VR\doc目录下。

用户和参考手册

嵌入式IAR Embedded Workbench提供以下的用户和参考手册:

AVR? IAR Embedded Workbench? IDE用户手册

即本文档。

AVR? IAR C/C++编译器参考手册

这本手册提供关于A VR IAR C/C++编译器的相关信息。用户可以通过它查看到:

如何配置编译器以适应用户的目标处理器,并达到应用程序要求;

如何为用户的目标处理器写高效代码;

汇编语言接口和调用规则;

可用数据类型;

运行库;

IAR语言扩展。

AVR? IAR的汇编器参考手册

该手册介绍了A VR IAR汇编器的相关信息,包括汇编器源代码格式的细节信息以及操作、指示符、存贮和诊断。

IAR连接器和库工具参考手册

这篇在线的PDF文档提供关于IAR连接器和库工具的相关信息:

IAR XLINK连接器部分介绍了XLINK选项,输出格式,环境变量和诊断工具;

IAR XAR Library Buillder 库创建器部分则介绍了XAR选项和输出;

IAR XLIB Librarian 库管理器部分介绍了关于XLIB命令,环境变量和诊断工具。

DLIB库参考信息

该在线文档,格式为HTML,提供了IAR DLIB库函数的参考信息。在A VR? IAR Embedded Workbench? IDE在线帮助系统中,含有该文档。

CLIB 库参考手册

PDF格式的在线手册包含IAR CLIB库的参考信息。在A VR? IAR EmbeddedWorkbench? IDE在线帮助系统中,含有该文档。

在线帮助

互动的在线帮助提供关于嵌入式的IAR Workbench IDE的菜单和对话框的参考信息。还有关于DLIB函数的关键信息。如果需要查看关于某一函数的相关信息,在编辑器窗口中选择该函数,然后按F1即可。

注意:使用CLIB库的过程中,如果用户在编辑器窗口中选择一个函数名称,然后按下F1键,将会获取CLIB库的参考信息。

IAR网站

在https://www.wendangku.net/doc/7a10465837.html, 上能找到最新的关于IAR系统的信息,在嵌入式的IAR Workbench IDE 的Help菜单中也能访问到。浏览该网站,可以看到:

产品发布信息;

当前版本的最新更新;

特殊服务;

IAR产品的评估版拷贝;

技术支持,包括技术文档;

应用要点说明;

链接到芯片供应商和其他相关站点;

各国供应商的姓名,地址信息。

第二部分教程

AVR? IAR Embedded Workbench? IDE用户手册的这部分包括以下章节:

创建一个应用工程;

使用IAR C-SPY调试器进行调试;

C与汇编语言模块混合;

使用C++;

模拟一个中断;

使用库模块;

2.1创建一个应用工程

这一章将向用户介绍IAR EmbeddedWorkbench的集成开发环境。

这个教程展示了一个典型的开发流程,并且教用户如何使用编译器和连接器来创建一个适用于A VR芯片的小型应用程序。比如,创建一个工作区,以C语言代码创建一个工程,并编译、连接这个应用程序。

开发过程在下章中继续讲解,请参见第37页,“使用IAR C-SPY调试器进行调试”。

2.1.1创建一个新工程

使用IAR Embedded Workbench IDE,用户可以设计高级的工程模型。用户可以建立一个工作区,以创建一个或多个工程。并且已经有现成的工程模板用以开发应用工程和库。每个工程都可以建立以组为级别的结构,而在其中用户可以合理放置用户的源文件。每个工程用户都可以定义一个或多个build配置。如想了解更多关于工程模块的信息,请参看“工程管理”一章。

因为本教程中的程序都是含有很少文件的简单程序,所以没有使用高级工程模型。

我们建议用户创建一个特定目录,用来存放工程文件。在教程中,我们称这个目录为“projects”。用户可以在A VR\tutor目录下找到在教程中所需的文件。

在创建工程前,应先创建一个工作区。

创建一个工作区窗口

在教程程序中,第一步应先创建一个新的工作区。当用户第一次打开IAR Embedded Workbench时,应该已经有一个建好的工作区,在其中可以使用教程程序。如果用户是使用那个工作区的话,就可以忽略第一步。

选择File>New>Workspace。现在用户已经做好了准备,来创建一个工程,并且将它放入工作区。

创建新工程

1.创建一个新工程,选择Project->Create New Project。弹出Create New Project对话框,可以让用户按照模板创建新工程。

在教程中,选择程序模板Empty project,可以快速创建一个采用默认设置的空白工程。

2.确认Tool chain选项已经设置为A VR,然后点击OK。

3.弹出一个标准的Save As 对话框,确认用户想放置工程文件的地方,即新创建的projects目录。在File name对话框中键入project1,然后点击Save,从而创建新工程。

这个工程就出现在工作区窗口中了。

默认状态下,系统产生两个创建配置:调试和发布。在教程中,只使用Debug。在窗口顶部的下拉菜单中,用户可以选择build配置选项。项目名称中的星号指的是修改还没有保存。

一个工程文件,其文件扩展名为ewp,已经创建在project目录下了。这个文件包含用户的工程的特殊设定,例如build选项。

4.在用户向工程中添加任何文件时,应该先保存工作区。选择File>Save Workspace,并且说明工作区文件的存放路径。在本教程中,用户还可以将它放到新建立的projects目录下。在File name对话框中键入tutorials,点击Save来创建新的工作区。

一个工作区文件-其文件扩展名为eww-已经创建在projects目录下了。这个文件列出了所有用户想加入这个工作区的工程。与之相关的信息,例如窗口放置和断点设置都放在

projects\settings目录下。

添加文件到工程中

教程中使用源文件Tutor.c 和Utilities.c。

Tutor.c程序是只用标准C语言编写的简单程序。它计算出Fibonacci数列的前十个数,并把结果显示在stdout上;

Utilities.c程序包含了Fibonacci数列的相应算法。

创建几个组可以使用户根据工程需要来合理、有效地管理源文件。但是,现在这个工程中只含有两个文件,所以没有必要建一个组。如想了解更多关于创建复杂工程结构的信息,请查阅“工程管理”一章。

1.在工作区窗口中,选择用户想放置源文件的目标地址、或者一个组,在这种情况下,就直接指向工程。

2.选择Project->Add Files,打开一个标准的浏览对话框。转到Tutor.c 和Utilities.c所在位置,将它们选中,然后点击Open将它们加入到工程Project1中。

20

设置工程选项

接下来要设置工程选项。对于应用工程,可以在所有节点上设置这些选项。在该教程中,首先要设置基本选项来适应处理器的配置。因为这些设置在整个build配置中必须一致,它们将被设置到工程节点上。

1. 在工作区窗口中选择工程文件夹project1->Debug,然后选择Project->Options选项。

General 选项中的Target 选项页被显示出来。

确认下列设置:

接着要设定该工程的编译器选项

2.在Category列表中,选择C/C++ Compiler 显示编译器选项页。

3.确认下列设定

4.击OK确认用户的设置

注意:在Build消息窗口中显示的信息可以进行自定义设置。在本教程中,没有使用默认设置。因此,Build消息窗口的内容可能不同于上述屏幕内容。

现在可以开始创建工程了。

2.1.2应用程序编译和连接

至此,用户可以开始编译和连接应用程序。当然用户应该创建一个编译器列表文件和一个连接库文件,并查看它们的内容。

编译源文件

1. 编译Utilities.c文件,在工作区窗口中选中它。

2. 选择Project->Complie

同样的,用户也可以点击工具栏上的Compile按钮或是在工作区的选择文件处点击右键弹出菜单的Compile命令。

其进程将显示在Build 消息框中。

图8 编译消息

3. 按照同样方式编译Tutor.c 文件。

IAR Embedded Workbench 在用户的工程目录下已经创建了新的目录。因为用户正使用build配置命令Debug,所以一个Debug目录已经创建,并且带有list,obj和exe目录:

List目录用来放置list文件。同时list文件扩展名为lst;

Obj目录用来放置由编译器和汇编器产生的目标文件。这些文件的扩展名为r90,并用来作为IAR XLINK Linker的输入;

Exe目录用来放置可执行文件。其扩展名为d90,并用来作为IAR C-SPY调试器的输入。

注意,除非用户已连接了object文件,否则此目录为空。

点击工作区窗口中目录树节点上的加号,使视图扩展开。用户可以看到,IAR Embedded Workbench已经在包含输出文件的工作区窗口中创建了一个输出文件夹。此外,还根据文件间依赖关系显示了内部所有的头文件。

查看列表文件

现在需要检查编译器的列表文件,并请注意当用户检查对生成代码大小的不同优化程度时,它是如何进行自动更新的。

1. 在工作区窗口中双击Utilities.lst,打开文件。检查该文件的下列信息:

header部分显示产品版本,文件创建时间以及曾经使用的编译器的命令行版本;

body部分显示汇编代码和每个语句的二进制代码。还有分配给不同段的相关变量;

end部分显示堆栈大小,代码以及数据所需存贮器空间,还有可能产生的错误或警告信息。

注意在文件末端显示的生成代码大小信息,并将文件一直打开。

2.选择Tools->Options,打开IDE Options 对话框,点击Editor栏。

然后选择Scan for Changed Files。此项功能将对编辑窗口中的文件实行自动更新,比如一个列表文件。点击OK按钮。

3. 在工作区窗口中选择Utilities.c文件。在工作区窗口内的所选文件上右击鼠标,打开C/C++ 编译器选项对话框。点击Code(代码)栏,选择Override inherited settings(继承覆盖选项)。接着在Optimizations(优化)下拉菜单中选择High选项。点击OK。

注意在文件节点处的override(覆盖)选项是指位于工作区窗口内的。

4. 对Utilities.c进行编译。用户需要注意两件事情。第一,打开的列表文件的自动更新取决于Scan for Changed Files选项。第二,观察列表文件的末尾,注意代码大小受不断优化的效果。

5. 在教程中,使用的优化程度为“None”,因此在连接应用程序之前,要先恢复为默认的优化程度。在工作区窗口内的所选文件上右击鼠标,打开C/C++ 编译器选项对话框。不选择Override inherited settings(继承覆盖选项),然后点击OK。重编译Utilities.c文件。

连接应用程序

现在用户应该设置IAR XLINK Linker TM

的选项。

1. 在工作区窗口中选择工程文件夹project1->Debug,然后选择Project->Options选项。接着在Category列表中选择Linker,打开XLINK选项页。

对于该教程,使用出厂的默认设置。对于连接器指令文件和输出格式的选择是很重要的。

输出格式

选择合适的输出格式非常重要。也许用户想将它加载到调试器中——即需要在输出中显示调试信息。在本教程中,用户会用到C-SPY Debug information,选择With I/O 仿真模块选项,意味着一些低级别的进程会被连接,即在C-SPY调试器中把stdin和stdout直接导入到终端I/O窗口中。用户可以在Output页看到这些选项。

或者,用户想将输出结果加载到一个PROM编程器中,此时就不需要在输出中显示调试信息,比如用Intel-hex 或Motorola S-records。

连接器命令文件

在连接命令文件中,用XLINK命令行选项控制段的放置。熟悉连接器命令文件和段的放置方法是很重要的。在A VR? IAR C/C++编译器参考手册中,含有更详细的信息。

产品提供的连接命令模板可用在仿真器中,但当用于实际目标系统时,就必须根据实际的硬件存储情况来调整其设置。用户可以在config目录下找到系统提供的连接器指令文件。

该教程中,用户可以使用默认的连接器命令文件,该文件可以在Config页中看到。

如果用户想检验连接命令文件,可以使用一个合适的文本编辑器,比如嵌入式IAR

Embedded Workbench编辑器,或者打印一份该文件的拷贝,然后验证其定义是否符合用户的要求。

2. 点击OK,保存XLINK的设置。

现在用户应该连接目标文件了,接着生成可调试的代码。

3. 选择Project->Make。其进程在Build消息窗口中显示。连接的结果是得到一个含有调试信息的代码文件project1.d90以及一个映象文件project1.map。

查看映象文件

检查project1.map文件,观察段是如何定义以及代码是怎样放置在存贮器中的。一个映象文件主要包含以下几点信息:

header包含连接选项;

CROSS REFERENCE段显示程序开始段的地址;

RUNTIME MODEL段显示运行模式的相关属性;

MODULE MAP显示被连接的文件。对每个文件而言,模块信息都作为程序的一部分被加载和显示,包括段标号和各段中定义的全址标号。

SEGMENTS IN ADDRESS ORDER 部分列出了所有构成用户的程序的段。

至此,project1.d90程序已经可以在IAR C-SPY调试器中运行了。

2.2使用IAR C-SPYDebugger进行调试

这一章继续上章开始的开发过程,并讲解IAR C-SPY Debugger的基本特点。

注意,IAR C-SPY Debugger安装与否,取决于用户所安装的IAR产品的版本。本教程假设用户正使用的是C-SPY软仿真器。

程序调试

在上章中创建的project1.d90程序,现在可以在IAR C-SPY Debugger上运行了。用户可以监控变量,设置断点,反汇编查看源代码,控制寄存器和存贮器,以及在终端I/O窗口中查看程序输出结果。

启动调试器

在启动IAR C-SPY Debugger之前,用户必须设定C-SPY的几个相关选项。

1. 选择Project->Options,然后选择Debugger列表。在Setup页,确认在Driver下拉菜单中选择了Simulator选项,接着选择Run to main。点击OK。

2 选择Project->Debug。或者点击位于工具栏上的Debugger按钮。从而启动IAR C-SPY Debugger,并加载了project1.d90应用程序。除了在嵌入式Workbench中已经打开的窗口,还有一系列C-SPY的特殊窗口。

窗口管理

在IAR Embedded Workbench中,用户可以在特定位置停靠窗口,并利用标签组来管理它们。用户也可以使某个窗口处于“悬浮”状态,即让它始终处于其他窗口的上层。如果用户改变了“悬浮窗口”的大小和位置,其他窗口不受影响。

状态栏,位于嵌入式Workbench的主窗口的底部,包含了如何管理窗口的帮助信息。对于更为详细的信息,请参考P77页,屏幕中的窗口管理。

确保下列窗口和窗口内容始终开启,并处于屏幕上的视野内:打开了build配置文件tutorials-project1的工作区窗口,打开了Tutor.c和Utilities.c源文件的编辑窗口以及调试日志窗口。

查看源文件语句

1. 要查看源文件语句,在工作区中双击Tutor.c文件。

2. 在编辑窗口中显示Tutor.c文件,首先执行Debug->Step Over 命令。或者点击工具栏上的Step Over 按钮。

当前位置应该是调用init_fib函数。

3. 选择Debug-> Step Into ,程序运行到init_fib 函数。也可点击工具栏上的Step Into 按钮。

在源文件级,Step Over和Step Into命令使用户可以执行应用程序的一个语句或一个函

相关文档