首页 ARM-IAR使用教程

ARM-IAR使用教程

举报
开通vip

ARM-IAR使用教程 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 0 2006年2月 IAR EWARM 快速入门 (V1.0) 万利电子有限公司 www.manley.com.cn 万利电子有限公司 电话:025-83235502 ...

ARM-IAR使用教程
万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 0 2006年2月 IAR EWARM 快速入门 (V1.0) 万利电子有限公司 www.manley.com.cn 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 0 目 录 前 言 ………………………………………………………………………………1 第一章 EWARM 集成开发环境及配套仿真器…….………………………… …2 第二章 在 EWARM 中生成一个新项目..……………….…....………………...10 第三章 编译和连接应用程序..………………………….…….....………………14 第四章 用 C-SPY 调试应用程序..……………………………….…….………..20 第五章 EWARM Flash Loader 开发指南………………………..…….….......28 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 1 编者序 IAR Embedded Workbench for ARM 是 IAR Systems 公司为 ARM 微处理器开发的一个集成开发环境(下 面简称 IAR EWARM)。比较其他的 ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等 特点。故在这里介绍给打算学习使用或正在使用 ARM 芯片的朋友们共同探讨。 IAR Systems 公司目前推出的最新版本是 IAR Embedded Workbench for ARM version 4.31,并提供一个 32k 代码限制、但时间限制长达 25 年的免费评估版。有兴趣的朋友可以到 IAR 公司的网站 www.iar.com/ewarm 或万利电子有限公司的网站 www.manley.com.cn (本地网站)去寻找和下载。 IAR EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种 ARM 内核、外部设备甚至中断的软件运行环境。从中可以了解和评估 IAR EWARM 的功能和使用方法。 我们编译整理的这本快速用户指南采用评估版软件安装目录 C:\Program files\IAR System\Embedded workbench 4.0\ARM\tutor 下的教程为例,一步一步介绍 IAR EWARM 的使用方法。该教程采用了两个 C 语言程序,tutor.c 和 utilities.c。它们不和任何特定的硬件关联,所以介绍中的全部操作都是用模拟程序完 成的。在以后的章节里,我们将具体介绍 EWARM 软件及配套硬件工具、如何使用 EWARM 集成开发环境 以及在 EWARM 下烧写 Flash 的方法。 如果用户希望在真实的目标板上进行代码运行和调试,请到万利电子有限公司全国各直销点购买 IAR 的 JTAG 仿真器 J-Link。 宋祈真 2006 年于南京 附:EWARM 的学习步骤 ① 下载安装 EWARM 32K 学习版软件; ② 进入 www.iar.com/ewarm -> Online Demos,下载 Flash 格式的软件使用动画演示; ③ 以本入门 手册 华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载 结合软件使用的动画演示,进行软件使用的入门学习; ④ 在软件安装目录...\arm\src\examples 下,寻找感兴趣的芯片例程学习; ⑤ 可选项 1:购买 J-Link 仿真器和开发板,实现在硬件上的代码运行和调试; ⑥ 可选项 2:购买由北航出版社的《IAR EWARM 嵌入式系统编程与实践》一 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf ,深入学习; ⑦ 学习“可选项 1 或 2”的随附光盘中《Converting ADS Projects to EWARM Projects》白皮书,实 践如何移植一个 ADS 工程到 EWARM 格式的工程。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 2 第一章 EWARM 集成开发环境及配套仿真器 IAR Embedded Workbench for ARM version 4.31 是一个针对 ARM 处理器的集成开发环境,包含 项目管理 工程项目管理制度介绍工程项目管理课程设计政府投资项目管理意见建设工程项目管理合同工程项目管理培训总结 器、编辑器、编译连接工具和支持 RTOS 的调试工具,在该环境下可以使用 C/C++和汇编语言方便地开发 嵌入式应用程序。IAR EWARM 的主要模块如下: ¾ 项目管理器 ¾ 功能强大的编辑器 ¾ 高度优化的 IAR ARM C/C++ Compiler ¾ IAR ARM Assembler ¾ 1 个通用的 IAR XLINK Linker ¾ IAR XAR 和 XLIB 建库程序和 IAR DLIB C/C++运行库 ¾ IAR C-SPY 调试器(先进的高级语言调试器) ¾ 命令行实用程序 以下介绍一下 EWARM 4.31 版本及其相关配套硬件的一些特点: 1. IAR EWAM 软件的特点 ① EWARM 4.31 版基本特点 ¾ 完善的 ARM 内核支持 - 最新支持到 ARM11 内核(ARM1136J,ARM1136J-S,ARM1136JF,ARM1136JF-S) - 早已支持的其他 ARM 内核 9 ARM7(ARM7TDMI,ARM7TDMI-S,ARM720T) 9 ARM9(ARM9TDMI,ARM920T,ARM922T,ARM940T,ARM9E,ARM9E-S, ARM926EJ-S,ARM946E-S,ARM966E-S,ARM968E-S) 9 ARM10(ARM10E,ARM1020E,ARM1022E,ARM1026EJ-S) 9 XScale(XScale,XScale-IR7) ¾ 更加客户化地提供芯片级的支持 - 完备的各厂商 ARM 处理器的 C/C++和汇编语言外设寄存器定义文件 支持的芯片厂商有 Analog Devices、ARM、Atmel、Cirrus Logic、Freescale、Intel、NetSilicon、 OKI、Philips、Samsung、Sharp、ST 和 TI - 支持 Analog Devices、Atmel、Freescale、OKI、Philips、ST 和 TI 等厂商的 ARM 处理器的 Flash Loader 程序 - 软件集成了 200 余个代码例程,对应于各种不同的芯片,位于...\arm\src\examples 目录下 ¾ 进一步改进了编译器速度优化,重写了的浮点运算库 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 3 ¾ 对更多嵌入式操作系统的支持 - 新增支持 OSEK 类操作系统的 OSEK Run-Time Interface (ORTI) - 新增支持 OSE Epsilon RTOS 的 Kernel Awareness 调试 - 新增支持 embOS、SMX、NORTi 等的支持 ¾ 调试器的增强功能 - 对堆栈运行的监测功能 - 配合 IAR J-Link 仿真器的新增功能 9 J-Link TCP/IP 服务器 9 调试器和 IAR J-Link 仿真器协同配合,实现对 ARM 处理器的多核调试 - 对 IAR J-Trace 仿真器提供全面的支持 - 在 C-SPY 模拟器中可执行 Trace 的模拟 - 支持同一芯片上多颗 Flash 的 Flash Loader 程序,以及通用的 Flash Loader 开发指南 ② EWARM 软件在芯片级支持方面的特色 ¾ 完备的各厂商 ARM 处理器的 C/C++和汇编语言外设寄存器定义文件 ¾ 大量适合于嵌入式代码的编程语言扩展特性,包括存储器关键字,本征函数,中断函数,存储 器映射 I/O 等 ¾ 针对评估板的例程,包含 IAR、Analog Devices、Aiji System、ARM、Atmel、Cirrus Logic、 Freescale、Keil、OKI、Olimex、Pasat、Philips、Phytec、ST 和 TI 等厂家的开发板 ¾ 支持 ARM 或 Thumb 模式下大至 4G 字节的应用程序 ¾ 每个函数都能选择在 ARM 或 Thumb 模式下编译 ¾ 可生成 VFP 向量浮点协处理器代码 ¾ 支持 Analog Devices、Atmel、Freescale、OKI、Philips、ST 和 TI 等厂商的 ARM 处理器的 Flash Loader 程序 ¾ 支持 ARM Angel Debug monitor ③ EWARM 编译器的软件特色 ¾ 先进的通用编译器优化和针对特定处理器的速度优化及存储器优化功能 ¾ 轻量运行库,用户可以根据需要自行配置,提供全部源代码 ¾ 灵活的存储器控制,允许详细地为代码和数据分配地址 ¾ 去除不需要的函数和变量 ¾ C/C++变量和函数连接时全局类型检查 ¾ 可选的校验和生成功能,用于运行时映象校验 ¾ 自动将代码和数据放置到非连续的存储器区域 ¾ 强大的可重定位宏汇编器,支持丰富的命令集和操作符 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 4 ④ EWARM 调试器的软件特色 ¾ 完全集成的源代码和反汇编程序调试器 ¾ 非常细化的执行控制(函数调用级步进) ¾ 复杂的代码和数据断点 ¾ 丰富的数据监视功能 ¾ Locals,Watch,Auto,Live Watch 和 Quick Watch 等变量查看窗口 ¾ 寄存器和存储器查看窗口 ¾ 支持 STL 容器 ¾ C/C++调用栈窗口,同时还可以显示将要进入的函数 ¾ 双击调用链上的任何函数将更新编辑器、局部变量、寄存器、变量查看和反汇编窗口,以显示 在该函数调用时的状态 ¾ 跟踪功能,可以检查执行的历史记录。在跟踪窗口中移动时将更新编辑器和反汇编窗口以显示 合适的位置 ¾ 控制台 I/O 仿真 ¾ 中断和 I/O 模拟仿真 ¾ 类似 C 语言的宏系统,可扩充调试器的功能 ¾ 由主机执行的应用程序系统调用仿真 ¾ 代码覆盖率和执行时间分析工具 ¾ 通用的 Flash Loader 程序及开发指南 ¾ 同时支持多颗 Flash 的 Flash Loader 程序 ¾ 支持 OSEK Run-Time Interface (ORTI) ¾ 提供为调试器扩充第三方功能的软件开发包,如 RTOS 调试扩充和仿真器驱动扩充 ¾ 命令行调试工具 ⑤ IAR C-SPY 支持的调试方法 ¾ IAR J-Link JTAG 接口(支持所有 ARM7 和 ARM9 核,通过 USB 或 TCP/IP 连接) ¾ IAR J-Trace JTAG 接口(支持所有 ARM7 和 ARM9 核,通过 USB 或 TCP/IP 连接) ¾ RDI 接口类的第三方仿真器(Abatron BDI1000 & BDI2000, EPI Majic, Ashling Opella, Aiji OpenICE, Signum JTAGjet, ARM Multi-ICE 等) ¾ Macraigor Wiggler, Raven, mpDemon 和 USBdemon 等调试接口 ¾ EPI Jeeni 仿真器支持 ¾ IAR 的 ROM-Monitor ¾ ARM 公司的 Angel ROM-Monitor(用于 Atmel 和 Cirrus Logic 的评估板) ⑥ IAR 对嵌入式实时操作系统的 Kernel Awareness 调试支持 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 5 操作系统 IAR EWARM 内置的插件 由第三方 RTOS 厂商 提供的插件 CMA-RX X CMX-Tiny+ X uC/OS-II X ThreadX X RTXC Quadros X Fusion RTOS X OSEK(ORTI) X ENEA OSE Epsilon X MiSPO NORTi X Micro Digital SMX X Segger embOS X 每种 RTOS 插件都会在 C-SPY 中安装一批新的窗口,其中最重要的是任务或线程列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 窗口,在此 窗口中可以在指定的任务上设置断点和执行程序。其它不同的监测窗口可以显示 RTOS 内部数据结 构的内容,例如定时器、队列、信号量、资源和邮箱等。 ⑦ EWARM 图形化的集成开发环境的界面特色 ¾ 分层次的工程组织 ¾ 同一工作空间中允许存放多个工程 ¾ 可停靠的窗口和多视图 ¾ 源代码浏览 ¾ 创建和维护库的工具 ¾ 可以和源代码控制系统相集成 ¾ 文本编辑器 - 支持多字节字符(汉字) - 上下文相关的帮助系统 - 根据句法着色 - 无限制的 undo/redo - 搜寻、替换和增量搜寻 - Go to - 书签 - 错误标签:查阅前一个/下一个 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 6 - 自动括号配对 - 智能缩排 - 类似网页浏览器的前向/后向源码查阅 - 代码断点的设置/清除/使能/禁止 ¾ 命令行编译连接工具 ⑧ EWARM 的编程语言和 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ¾ 遵循 ISO/ANSI C94(带有一些从 C99 标准中挑选的特性)标准的 C 编程语言 ¾ 嵌入式 C++扩展,支持模板、多重继承和虚拟继承、名字空间以及其它不增加执行时间或存储 器开销的 C++特性。完整的嵌入式 C++库还包含字符串、流等特性,以及标准模板库(STL) ¾ IEEE-754 浮点运算规则 ¾ MISRA C 检查器 ¾ 支持大量工业标准的调试和映象文件格式(如 ELF/DWARF),与大多数常见的调试器和仿真 器兼容 ⑨ 用户帮助 ¾ 完备的例程和工程模板。 ¾ 上下文相关的联机帮助系统,带有库函数查阅功能 ¾ 印刷好的用户指南,带有详细的 step-by-step 教程 ¾ 友好、详尽和精确的错误信息和警告信息 2.IAR J-Link 仿真器简介 IAR J-Link 是 IAR 为支持仿真 ARM 内核芯片推出的 JTAG 方式仿真器。配合 IAR EWARM 集成开发环 境支持所有 ARM7/ARM9 内核芯片的仿真,无需安装任何驱动程序与 EWARM 集成开发环境无缝连接, 操作方便、连接方便、简单易学是学习开发 ARM 最好最实用的开发工具。 同时,最近的有关权威测试显示,J-Link 目前是同类产品中下载调试速度最快的 J-Tag 仿真器: 公司 产品 通讯接口 支持内核 下载速度 对开发板 供电功能 备注 Macraigor Wiggler LPT ARM7/9 16 KB/秒 无 即并口仿真头 Keil U-Link USB ARM7 28 KB/秒 无 IAR J-Link USB 2.0 ARM7/9 600 KB/秒 有 ① J-Link ARM 主要特点 ¾ IAR EWARM 集成开发环境无缝连接的 JTAG 仿真器 ¾ 支持所有 ARM7/ARM9 内核的芯片,包括 Thumb 模式 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 7 ¾ 下载速度高达 600 kB/s ¾ 最高 JTAG 速度 12 MHz ¾ 目标板电压范围 1.2V – 3.3V ¾ 自动速度识别功能 ¾ 监测所有 JTAG 信号和目标板电压 ¾ 完全即插即用 ¾ 使用 USB 电源 ¾ 带 USB 连接线和 20 芯扁平电缆 ¾ 支持多 JTAG 器件串行连接 ¾ 标准 20 芯 JTAG 仿真插头 ¾ 选配 14 芯 JTAG 仿真插头 ¾ 选配用于 5V 目标板的适配器 ¾ 带 J-Link TCP/IP server,允许通过 TCP/ IP 网络使用 J-Link ② IAR J-Link 的物理连接 J-LINK 一端通过 USB 口与 PC 连接,另一端通过标准 20 芯 JTAG 插头与目标板连接。建议首先 连接 J-LINK 到 PC,再连接 J-LINK 到目标系统,最后给目标系统供电(如果目标系统为独立供电、 而非由 J-TAG 口供电的情况)。 ③ IAR J-Link 主要技术指标 功耗 吸取 USB 供电电力< 50 mA 通讯方式 USB 2.0 全速 目标板接口 20 芯 JTAG 口(14 芯 JTAG 口选件) J-Link 和 ARM 间串行传输速率 最高 12 MHz 支持目标电压 1.2 – 3.3 V (5V 适配头选件) 工作温度 +5 C - +60 C 储存温度 -20 C - +65 C 相对湿度(无冷凝水) < 90% RH 体积 100mm x 53mm x 27mm 重量(不含电缆) 70 克 电磁兼容性(EMC) EN 55022,EN55024 ④ 目标板5V电源适配器选件 当目标系统为 5V 电源系统时,必须使用 J-LINK 提供的 5V 电源适配器选件。对于 1.2V~3.3V 电源 系统,可以直接使用 J-Link。使用时将适配器的 20 芯 IDC 插头插进 J-Link 的 20 芯插座,再将连 接目标的 20 芯扁平电缆插进适配器的插座。 5V 适配器选件由目标供电(3.3V~ 5V),电流<20mA,有一个 LED 指示电源状态。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 8 ⑤ JTAG插头定义 J-Link 的 JTAG 20 芯的 IDC 插头与 ARM 公司的仿真器插头定义兼容,有关定义如下: 引脚 名称 方向 功 能 描 述 1 VTref Input 目标系统参考电压。 用于检查目标系统是否供电,并产生一个逻辑电平送给 J-Link 内部比较 器。检测结果用来控制输出给目标的逻辑电平幅度。此引脚通常与目标的 Vdd 联,中间不允许串接电阻。 2 Vsupply NC J-Link 不用此引脚,在目标系统中连接到 Vdd 或开路。 3 nTRST Output JTAG 复位,J-Link 输出给目标的 Reset 信号。 通常连接到目标 CPU 的 nTRST 引脚。目标板上应将此脚上拉到高电位, 避免意外复位。 4 GND - 公共地。 5 TDI Output J-Link 输出给目标 CPU 的 JTAG 数据。 通常与目标 CPU 的 TDI 引脚相连。建议在目标板上将此脚上拉到 Vdd。 6 GND - 公共地。 7 TMS Output J-Link 输出给目标 CPU 的 JTAG 模式设置信号。 通常与目标 CPU 的 TMS 引脚相连。建议在目标板上将此脚上拉。 8 GND - 公共地。 9 TCK Output J-Link 输出给目标 CPU 的 JTAG 时钟信号。 通常与目标 CPU 的 TCK 引脚相连。建议在目标板上将此脚上拉。 10 GND - 公共地。 11 RTCK Intput 目标 CPU 提供给 J-Link 的测试时钟信号。 有些目标要求 JTAG 的输入与其内部时钟同步。J-Link 利用此引脚的输 入可动态地控制自己的 TCK 速率。 若不使用此功能,在目标板上将此脚接地。 12 GND - 公共地。 13 TDO Intput 目标 CPU 返回给 J-Link 的数据信号。 通常与目标 CPU 的 TDO 引脚相连。 14 GND - 公共地。 15 RESET I/O 目标 CPU Reset 信号 16 GND - 公共地。 17 DBGRQ NC J-Link 不用此引脚,在目标系统中将此引脚开路。 18 GND 公共地。 19 Vdd Output +3.3V 电源输出。 20 GND 公共地。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 9 ⑥ JTAG速度 J-Link 有两种速度设定,即固定 JTAG 速度、自动 JTAG 速度,该功能选项位于 Project Options -> Debugger -> J-Link 设置页面中。 ™ 固定 JTAG 速度 目标被锁定在固定时钟速度。目标能执行的最大 JTAG 速度取决于目标自身。一般来讲,不带 JTAG 同步逻辑的 ARM 内核(如 ARM7-TDMI)能执行与 CPU 速度相当的 JTAG 速度。而带 JTAG 同步 逻辑的 ARM 内核(例如 ARM7-TDMI-S,ARM946E-S,ARM966EJ-S)能执行相当 CPU 速度 1/6 的 JTAG 速度。JTAG 速度不应超过 10 MHz。 ™ 自动 JTAG 速度 由 TAP 控制器选择最大的 JTAG 速度。要注意,不带同步逻辑的 ARM 内核可能会工作不稳定。因 为 CPU 内核时钟可能慢于最大 JTAG 速度。 附:J-Link 全国分销点 地区 销售点 地 址 电 话 华北 北京万利 北京海淀区知春路 118 号知春电子城 B193 柜 010-62562744 / 62526647 天津万利 天津南开区鞍山西道 323 号增 1 号 022-27376292 / 27471810 华南 深圳万利 深圳深南中路赛格电子市场 3 楼 3B35 柜 0755-83681644 / 83681644 深圳深南中路华强电子世界一楼 20A257 柜 0755-83687350 / 83665281 广州万利 广州天河区天河路龙苑大厦 3 栋 506 室 020-87588300 / 87543761 华东 上海万利 上海北京东路赛格电子市场 2A19-2A20 柜 021-53081472 / 53082644 上海太平洋电脑城三楼 347 室 021-54904533 / 54901862 南京万利 南京珠江路雄狮电子商城 A529 柜 025-83615784 / 83675529 南京中山东路 110 号华龙电子商城二楼 96#柜 025-84412638 / 84412638 杭州万利 杭州登云路 639 号杭州电子市场 1C205 柜 0571-89901205 西北 西安万利 西安西部电子商城 2 楼 C 区 2C033-035 029-88221873 / 88270877 东北 沈阳万利 沈阳三好街 90 号甲百脑汇科技广场 B 区-W35 024-83991288 / 83990602 华中 武汉万利 武汉武昌珞瑜路 158 号华中数码城 3098 室 027-87654225 长沙万利 长沙人民路 9 号百脑汇商城二楼 H23-25 0731-4175141 / 4175141 香港 香港万利 香港九龙上海街 67 号 10 楼 00852-27303434 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 10 第二章 在 EWARM 中生成一个新项目 EWARM 是按项目进行管理的,它提供了应用程序和库程序的项目模板。项目下面可以分级或分类管理源 文件。允许为每个项目定义一个或多个编译连接(build)配置。在生成新项目之前,必须建立一个新的工 作区(Workspace)。一个工作区中允许存放一个或多个项目。 另外用户最好建立一个专用的目录存放自己的项目文件。例如在本指南中我们生成一个 C:\Program files\IAR System\My project 目录。现在双击桌面上的 IAR Embedded Workbench 图标,出现 IAR EWARM 开发环境窗口。 1.生成新的工作区(Workspace) 选择主菜单 File > New > Workspace 生成新工作区。 2. 生成新项目 ① 选择主菜单 Project > Create New Project,弹出生成新项目窗口,见图 1。 本例选择项目模板(Project template)中的 Empty project。 图 1. 生成新项目窗口 ② 在 Tool chain 栏中选择 ARM,然后点击 OK 按钮。 ③ 在弹出的另存为窗口中浏览和选择新建的 My projects 目录,输入文件名 project1,然后保存。这 时在屏幕左边的 Workspace 窗口中将显示新建的项目名。见图 2 所示: IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 11 图 2. Workspace 窗口 IAR EWARM 提供两种缺省的项目生成配置,即 Debug 和 Release。本例在 Workspace 窗口顶部的下 拉菜单中选取 Debug。现在 My projects 目录下已生成一个 project1.ewp 文件。该文件中包含与 project1 项目设置有关的信息,如 build 选件等。项目名后缀上的*号表示该工作区有改变但还没 有被保存。 本例调用 printf 库函数,这是在 C-SPY 模拟器中的一个低级 write 函数。如果用户希望在真实硬 件上以 release 配置运行例子,就必须提供与硬件相适配的 write 函数。 ④ 保存工作区 先选择主菜单 File > Save Workspace,浏览并选择 My projects 目录。然将工作区取名为 tutorials 输进 File name 输入框,按保存按钮退出。这时在 My projects 目录下将生成一个 tutorials.eww 文件,该文件中保存了用户添加到 tutorials 工作区中的所有项目。窗口和断点放置等与当前操作 有关的其他信息则被存储在 My projects\ settings 目录下的文件中。 3. 给项目添加文件 本例我们将采用 arm\tutor 目录下的两个源文件,Tutor.c 和 Utilities.c。 Tutor.c 是一个只用到标准 C 语言的简单程序。它用 Fibonacci 数列的前十个数初始化一个数组,并把 结果打印到 stdout;Utilities.c 包含计算 Fibonacci 数列的实用程序。 IAR EWARM 允许生成若干个源文件组。用户可以根据项目需要来组织自己的源文件。但在本例中没有 必要。 ① 在 Workspace 中选择希望添加文件的目的地,可以是项目或源文件组。本例直接选 project1。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 12 ② 选择主菜单 Project > Add Files 打开标准浏览窗口,见图 3。选择安装目录 ARM\tutor 下的上述 2 个文件,点击打开按钮,把它们添加到 Project1 目录下。 图 3. 添加文件窗口 4. 设置项目选件 生成新项目和添加文件后就应该为项目设置选件。IAR EWARM 允许为任何一级目录和文件单独设置选 件,但是用户必须为整个项目设置通用的编译连接(build)选件。 ① 选择通用选件 选中Workspace 中的 project1 – Debug,然后选择主菜单 Project > Options。也可以先选择 project1 – Debug,然后选择鼠标右键命令中的 Options。 图 4. 项目通用选件窗口 在打开的 Options 窗口左边的 Category 中选择 General Options。然后分别在: IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 13 - Target 页面/Core 条目下选择 ARM7TDMI-S - Output 页面中,Output file 条目下选择 Executable - Library Configuration 页面中,Library 条目下选择 Normal ② 选择编译器选件 在 Options 窗口的 Category 中选择 C/C++ Compiler,见图 5。 图 5. C/C++ Compiler 选件窗口 然后在: - Language 页面中,选择 C,Allow IAR extensions 等 - Optimization 页面中,选择 Generate debug information - Output 页面中,选择 Output list file 和 Assemble mnemonics - List 页面中,选择 Output list file。并选择 Assembler mnemonics 和 Diagnostics - 点击 OK 按钮,确认选择的选件 在设置项目选件窗口中有许多其他信息。由于本例比较简单,所以不涉及这些内容。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 14 第三章 编译和连接应用程序 这一步编译和连接(build)项目程序,同时生成一个编译器列表文件(compiler list file)和一个连接器存 储器分配文件(linker map file)。 1.编译源文件 ① 选中 workspace 中 utilities.c 文件。 ② 选择主菜单 Project > Compile,或工具条中的 Compile 按钮,或按右键后选择 Compile 命令。编译 结束后在消息窗口中出现如图 6 中的信息。 图 6. Build 窗口中的编译处理消息 ③ 用同样的方法编译 tutor.c。 编译完成后在 My projects 目录下将生成一批新子目录。因为我们在建立新项目时选择Debug 配置, 所以在 My projects 目录下自动生成一个 Debug 子目录。Debug 子目录下又包含另 3 个子目录,名 字分别为 List、Obj、Exe。它们的用途如下: ¾ List 目录存下放列表文件,列表文件的后缀是 lst; ¾ Obj 目录下存放 Compiler 和 Assembler 生成的目标文件,这些文件的后缀为 r79,可以用作 IAR XLINK 连接器的输入文件; ¾ Exe 目录下存放可执行文件,这些文件的后缀为 d79,可以用作 IAR C-SPY 调试器的输入文件, 注意在执行连接处理之前这个目录是空的。 点击 project1 – Debug 前面的+号将目录展开。你可以从自动生成的 Output 目录中看到所有生成的 输出文件名以及反映相互依赖关系的的头文件名。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 15 图 7. 编译处理后的文件结构 2.查看编译器列表文件 现在我们通过改变编译器选件中的优化级别(Optimization)来观察 list 文件是如何自动更新生成的代 码量的。 ① list 文件的结构 双击 Workspace 窗口中的 Utilities.lst,打开 list 文件,它包含以下信息: ¾ 文件头 — 显示编译器的版本信息,列表文件生成时间,source 文件、list 文件和 object 文 件的名字和路径,编译命令行及选件等信息。 ¾ 文件体 — 显示为每条源语句生成的汇编代码和二进制代码,以及变量如何被分配到不同的 段。 ¾ 文件尾 — 显示所需的堆栈、程序代码以及数据存储器的总量,同时报告错误和警告信息。 ② 选择主菜单 Tools > Options 弹出 IDE Options 对话窗口,选择 Editor 页面。选择 Scan for Change Files 选件。此选件将自动打开编辑窗口中的文件,目前是 Utilities.lst 文件。按 OK 按钮。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 16 图 8. IDE Option 窗口 ③ 选中 Workspace 窗口中的 Utilities.c,按鼠标右键选择弹出框中的 Options…。从弹出的对话框左 边的 Category 中选择 C/C++ Compiler 并确定 Override inherited settings。打开 Optimization 页面, 把优化级别从 None 改定为 High。然后按 OK 按钮。 ④ 重新编译 Utilities.c,请注意这时编辑窗口中的 Utilities.lst 文件已经自动被刷新。文件尾显示的代码 大小已经因优化级别的升高而减小。 ⑤ 对本例而言,Optimization 应选择 None。所以在连接处理前应该将优化级别恢复到原来的设置。 这时应选中 Utilities.c,按鼠标右键选择弹出框中的 Options…。选择 C/C++ Compiler 并取消 Override inherited settings。然后重新编译 Utilities.c。 3.连接应用程序 ① 先选中 Workspace 窗口中的 Project1 – Debug,然后选择主菜单 Project > Options,弹出 Options 对话窗口,见图 9。在左边的 Category 中选择 Linker,显示 IAR XLINK 的各选件页面。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 17 图 9. XLINK 参数选件窗口 本例全部采用缺省的连接处理选件。但是仍需要强调一下输出文件格式和 Linker 命令行文件的选择方 法: ™ 输出格式 选择合适的输出格式十分重要。你可能需要将输出文件送给一个调试器进行调试,这时就要求输 出格式带有调试信息。本例采用适合C-SPY调试器的缺省输出选件,它们是Debug information for C-SPY、With runtime control modules 和 With I/O emulation modules。指示需要连接将 stdin 和 stdout 指向 C-SPY 的 I/O 窗口的低级例程。 如果用户希望把应用下载到一个 PROM 编程器时,则其输出格式不需要带调试信息,如 Intel-hex 或 Motorola S-records。 在 list 页面中选择 Generate Linker listing 和 Segment map(见图 10)。允许生成存储器分配 MAP 文件。 注)本例连接器命令文件中的定义不与任何特定的硬件相关联。EWARM 提供的连接器命令文件 模板都可以在模拟器(simulator)中使用。但是如果要把它们用于目标系统时必须与实际的 硬件存储器分布相适配。用户可以从…src\ examples 目录中找到与评估板相关的连接器命令 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 18 文件。 ™ 连接器命令文件 在连接器命令文件中,用于段(segment)控制的 XLINK 命令行是用来放置段的。熟悉连接器命 令文件和段的放置十分重要。用户可以从 ARM IAR C/C++ Compiler Reference Guide 中了解更 多信息。 本例使用缺省的连接器命令文件,请见图 9 或图 10 中的 Config 页面。 用户如果要检查连接器命令文件,需用合适的文本编辑器,例如 IAR EWARM 的编辑器。也可以 打印出来,检查各项定义是否符合要求。 ② 点击 OK 按钮保存 IAR XLINK 选件 ③ 选择主菜单 Project > Make 或鼠标右键 Make 命令,连接目标文件,生成可执行代码。 Build 消息窗口中将显示连接处理的消息。连接的结果将生成一个带调试信息的代码文件 project1.d79 和一个存储器分配(MAP)文件 project1.map。 图 10. XLINK 选件中的 list 页面 4.查看MAP文件 双击 Workspace 中的 project1.map 文件名,编辑器窗口中将显示该 MAP 文件。从 MAP 文件中我们 可以了解以下内容: - 文件头中显示连接器版本,输出文件名以及连接命令使用的选件。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 19 - CROSS REFERENCE 段显示程序入口地址。 - RUNTIME MODEL 段显示使用的运行时模块的属性。 - MODULE MAP 段显示所有被连接的文件。每个文件中,作为应用程序一部分加载的有关模块的信 息,包括各段和每个段中声明的全局符号都列出来。 - SEGMENTS IN ADDRESS ORDER 段列出了组成应用程序的所有段的起始地址和结束地址,字 节数,类型和对齐标准等。 - END OF CROSS REFERENCE 段落显示总的代码和数据字节数。 到此为止,已经生成 project1.d79 应用程序并可以用于在 IAR C-SPY 中调试。 新闻:万利电子有限公司成为 IAR 公司 8051 开发工具代理商 2 月 23 日,中国上海 IAR 公司今天宣布万利电子成为其 8051 开发工具代理商,并在其最新发布的 7.20c 版的 EW8051 集成开 发环境中,无缝集成了万利 Insight 仿真器的系列驱动。双方在软硬件技术上的互补能力,使得该工具包 比同类竞争产品代码效率提高 15%-20%,并实现完全实时的在线调试。 双方同时联合宣布在中国发布一套市场售价为人民币 2,900 元的 8051 开发工具包,其中包含: - 1 套 8k 代码限制版的 IAR EW8051 集成开发软件 - 1 个 Insight 8051 仿真器(用户可从万利 8051 系列仿真器中选配 1 款,以适用不同的 8051 芯片) 该工具包即日起于万利电子全国 13 个直销点上柜销售。 双方在技术上将紧密配合,进一步为国内外 8051 芯片厂商提供工具链定制的服务。 新闻:IAR 公司宣布支持 ARM Cortex M3 2 月 28 日,瑞典乌普萨拉 IAR 公司今天宣布了在集成开发环境 EWARM 中支持新的 ARM® Cortex® M3(CM3)架构,这在 ARM 第 三方工具合作伙伴中,首个宣布支持该架构。新的EWARM集成开发环境中将会包含一个高度优化Thumb2 指令的 C/C++编译器。4 月份,IAR 将在一些选定的合作伙伴中进行该编译器的β版测试,同时还将发布新 版的 USB 接口的 J-Link JTAG 仿真器,无缝支持 Cortex M3 新处理器的调试和 flash 烧写功能。 IAR EWAR 快速入门 万利电子有限公司 万利电子有限公司 电话:025-83235502 南京市新模范马路17号02幢二层(210003) 传真:025-83235501 20 第四章 用 C-SPY 调试应用程序 本例使用C-SPY 的模拟器(Simulator)来展现 IAR C-SPY调试器的基本特点。前面各节生成的project1.d79 应用程序已经可以用 C-SPY 调试器进行调试。用户利用调试器可以查看变量、设置断点、观察反汇编代码、 监视寄存器和存储器、在 Terminal I/O 窗口打印输出。 1.开始调试 在开始调试之前必须设置几个 C-SPY 选件。具体操作如下: ① 选择主菜单 Project > Option,选择 Category 中的 Debugger。在 Setup 页面,在 Driver 的下拉菜 单中选择 Simulator,同时选择 Run to main,点击 OK。 如果用户已经购买了 IAR 的 JTAG 仿真器,请选择 J-Link。 ② 选择主菜单 Project > Debug 或工具条上的 Debugger 按钮。IAR C-SPY 将开始装载 project1.d79。 除了已经打开的窗口外,将显示一组 C-SPY 专用窗口。 2.组织窗口 在 EWARM 中可以固定窗口(所谓 dock),也可以组织成书签形式,也可以让它们浮动。改变浮动窗 口的大小时其他窗口不受影响。 注意 EWARM IDE 窗口最底部的状态条中包含如何安排窗口的有用信息。详细信息请参见 77 页 Organizing the windows on screen。 在开始调试前请确认如图 11 所示的各窗口和内容已经显示在屏幕上。在编辑器窗口应能看到源文件 Tutor.c 和 Utilities.c 以及 Debug Log 消息窗口。 3.检查源语句 ① 检查源语句,双击 Workspace 中的 Tutor.c; ② 在编辑器显示文件 Tutor.c 后,用 Debug > Step Over 命令(或 F10),步进到 init_fib 函数调用语 句; ③ 用 Debug > Step Into 命令(或 F11)进入函数 init_fib; 注)Step Over 命令用来执行源程序中的一条语句或一条指令,
本文档为【ARM-IAR使用教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_381784
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:40
分类:互联网
上传时间:2012-10-28
浏览量:424