当前位置:首页 >> 信息与通信 >>

IAR EWARM学习笔记


IAR EWARM5.20 学习笔记(基于 LPC2132)---从零起步 学习笔记( LPC2132)---从零起步 --在 proteus 中仿真运行 --在 (幻磁帝国原创) 幻磁帝国原创)
一:创建一个最简洁的工程模板

目的:IARM EWARM5.20 编程入门,学会怎么用 EWARM5.20 版来创建自己的工程。
1.1 新建一个空的工程文件夹,这里起名为 MyEWARMstartup

1.2

新建 EWARM 工程 创建一个空的 EWARM 工程:

点击 OK,选择刚才新建的文件夹,工程取名为 MyEWARMsartatup,保存。这样一个

空的新的工程文件就建好了。

1.3

拷贝 IAR EWARM 安装目录下例程中的启动文件 本例用的是 LPC2132,顾找到软件安装目录下的 LPC213x 的例程

进去找到 config 文件夹,这个文件夹中装的就是 LPC2132 的启动文件

可以看到这个文件加下面有四个文件 Flash.icf

Flash.mac RAM.icf 和 ram.mac。

暂且不用理会这几个文件的具体内容,只要知道它是启动文件就可以了。拷贝 config 文件夹,复制到先前建立的工程文件夹 MyEWARMstartup 中。

到此,准备工作基本完成。 1.4 工程设置 右键点击 workspace 中的工程名,选择 Options,对工程进行相关设置。 再 Generral options 中选择具体的 ARM 型号,这里选择 LPC2132

第二个要设置的选项是 Output Converter,即输出文件的设置,这里设置如下,生成 hex 文 件,文件的目录可以直接加到 hex 文件名前面的。如:D:\ MyEWARMsartatup.hex

接下来就是至关重要的启动代码的链接设置了,打开 Linker 选项如下,congfig 选项卡中默 认是没有勾选 Override default 的。这时候就要用到先前我们拷贝的 config 文件夹中的东东 了,也就是启动文件了。勾选 Override default,点击后面的选择链接,

将 路 径 选 择 到 : C:\Documents and Settings\Administrator\ 桌 面 \MyEWARMstartup\config\RAM.icf 如果想在 Flash 中运行就选择 FLASH.icf 最后一个设置:本人是在 proteus 中仿真调试的,所以这里选择的是 simulator 方式,启 动后运行到 main 函数。

点击 OK 完成设置。

1.5

创建自己的 main.c 文件

然后将文件添加到工程当中 (在 MyEWARMstartup-Debug 处点击右键--Add—Add “main.c” ) 点 mack,OK,没有错误,大功告成!! !

OK,在 proteus 中仿真运行,你就会看到你的劳动成果了 —一个闪烁的 LED!!呵呵简单 ! 吧!赶快自己动手试试吧。

如果需要下载到目标板中,则将 1.4 中的 Linker 中的连接选择到 FLASH.icf(或者修改 RAM.icf 的起始终止地址也可以) 。否则用 Isp 下载时会出现如下错误:

IAR EWARM v5.20 下从零开始创建工程(总结+探索)
下面开始对 IAR Embedded Wrokbench v5.20 进行设置,打开 Project>Options 选项,开始设置:

设置目标板类型:

设置 C/C++编译器:

特别需要注意,在“Additonal include directories:”一项里,要填写头文 件的路径,“$PROJ_DIR$\..\APPLICATION”表示头文件存放在当前工程文件上 一级目录的 APPLICATION 文件夹下,另外一个同理。
如果使用 ISP 方式,需要.HEX 文件,在 IAR520 下,非常容易获得.HEX 文件,设置如下:

设置 Linker:

就是前面提到的 stm32f10x_flash.icf 文件,注意,当整个文件夹路径发生变化时,需要重新 设定 stm32f10x_flash.icf,否则,LED.HEX 文件将无法下载到豆皮开发板上。

Make

然后大家就会在 C:\STM32_Demo\LED\EWARM\Debug\Exe 目录下看到 LED.hex 文件了, 至 此,LED 跑马灯工程就算告一段落了,(*^__^*) 。 将 LED.hex 文件用 ISP 方式下载到 STM32F103VB6 的 Flash 里面就程序就可以跑起来了。 ISP 的具体设置请参考帖子《豆皮 - STM32 开发板入门教程(十二) - STM32 ISP 下载(原 创)》帖子出处 http://www.stmfans.com/bbs/viewthread.php?tid=1178

"Code in Hex file exceeds Flash Limitation!"问题的解决

我使用周立功公司的 EasyARM 开发试验板, 芯片是 lpc2114, 128kb 的 flash, 有 但是当要使用 LPC210x Flash ISP Utility 下载只有 4K 代码的程序时,却出现 “code in hex file exceeds flash limitations”错误。 因为平常使用 ADS 调试都是用的 DebugInARM 设置,所以在用 LPC210x Flash ISP Utility 下载程序时也是使用这个设置。上网查资料,找到了解决的办法: http://www.dz130.com/ARM/4k-isp-exceeds-flash-limitations-40055.htm 中有人回答: “生成的 Hex 文件不对, 请注意在 Debug in RAM 里调试并生成。 。 。 生成的 Hex 文件不对,请注意在 Debug in RAM 里调试并生成的文件他将从 4000 0000 开始,这样软件当然会提示“code in hex file exceeds flash limitati ons”。” 所以我的解决办法是先使用 DebugInFLASH 设置,然后再用 LPC210x Flash IS P Utility 下载时即可成功!

ARM 初体验—搞出来从片内 RAM 或片外 flash 启动了 (来自网络)
板子的硬件调试通过后,用了一周的时间才把一个简单的 LED 测试程序分别在片内 RAM 和片外 flash 调试通过,中间那个叫痛苦啊,首 先记住一个教训:以后开发一种新的 CPU,一定要在原理设计阶段就开始考虑程序设计 ,考虑玩玩开发板,熟悉新的开发软件,不至于到 硬件调试完后匆忙上阵,前面对 CPU 的认识又忘记的差不多了。另外软件不一定用最新的,这次用 IAR5.20,结果跟 4.X 有很多不一样的 地方,与别人交流都很困难。这次吃了大亏,年前这个程序不知道能不能完成,这可关系俺的饭碗啊。 ARM:AT91SAM9260 开发环境:IAR5.20+H-JTAG(H-Flash)+wiggler 主程序就是一个简单的点亮 LED 测试程序就不说了,关键是 IAR 的设置方面:

首先是在片内 RAM 调试,关键在于 IAR5.20 的链接配置文件.icf 文件(对应 IAR4.X 的 XCL 文件),开始时根据 ATMEL 的库文件 Sdram.i cf 修改了一个 icf 文件,怎么都不行,IAR5.20 的 icf 格式又与 4.X 的 XCL 格式有很大的不同,没办法就死啃 IAR 的帮助文件,EWARM_D evelopmentGuide.ENU.pdf,这个文档的 73 页有一个 ICF 的范例,A Simple Example of A Configuration File,自己照葫芦画瓢写了一 个简单的 ICF 文件,写多了,逐渐发现其中的猫腻了,这个 文件无非包括三个内容:定义存储区域;初始化堆栈;放置代码和数据。 定 义存储区域就是声明你的硬件系统上的 ROM 和 RAM 地址范围,初始化堆栈就是定义堆栈大小并将其放到一个特定区域,放置代码和数据 一般就是将 readonly 就是代码放置到 ROM 或 FLASH,将 readwrite 就是数据变量啥的放置到 RAM,并且将中断向量放置到 ROM 或 FLASH 的起始位置。这个文件很熟了以后,万里长征就走了一大步了,片内 RAM 调试的话,就直接在 ICF 文件中将片内 ROM 的地址和片内 RAM 的地址都指向片内 RAM 的地址就可以了。 就是这样子:9260 的片内 RAM 起始地址为 0x200000,片内 ROM 实际地址为 0x100000,再此将其指向片内 RAM。 define symbol __ICFEDIT_region_ROM_start__ = 0x200000; define symbol __ICFEDIT_region_ROM_end__ = 0x207FFF;

define symbol __ICFEDIT_region_RAM_start__ = 0x200000; define symbol __ICFEDIT_region_RAM_end__ = 0x200FFF;

然后就是片外 norflash 启动,首先直接将 BMS 引脚接地,H-JTAG 和 banyan 都是找不到芯片的,正确的做法是,将 BMS 接高,片内启动, 将 IAR 生成的 Binary 文件烧进 flash 然后在 BMS 接地,程序从 norflash 启动。说到烧 flash 自然想起 H-JTAG 的小弟 H-FLASH,可是这 个 H-FLASH 不是那么好用的,用过的都知道,里面要用到一个初始化脚本,开始我不懂这个东东是干啥用的,随便下载了一个脚本就用 上了,其实这个初始化脚本与前面说到的 icf 文件一样都是与自己的硬件系统息息相关的 ,这个初始化脚本重要的有两处:制定合法的 R AM 和片外 flash 地址和初始化片外存储器。为什么要合法的 RAM 地址,因为 H-JTAG 的下载机制是先将一个程序 A 下载到 RAM,然后这个 程序 A 再将你真正要下载的程序 B 下载到 flash。所以要一个合法的 RAM 地址,片内 RAM 足够了,不知道为啥我的片外 RAM 就不行(后面 也初始化了)?flash 地址一定是真正的地址,比如说 0x10000000。另外就是初始化你的片外 flash,不初始化,照样找不到。同样此时, 在 IAR 的 icf 文件中,你要声明你的片外 flash 地址。并将中断向量存放到片外 flasha 起始地址。至于 MAC 文件,这里只要的作用好像 与 H-flash 的初始化脚本重复了,都是初始化片外存储器的作用,好像不要也可以,具体还没有试。这样就可以在 IAR 中编译生成 Bina ry 文件然后在 BMS 接高的情况下,下载到片外 flash 中,然后断电,将 BMS 接地,程序将从 norflash 启动运行。

接下来就是试验 Remap 到 RAM,好像有点难,一直没能成功,先不搞了,先把我的应用程序写出来,马上过年了,我可不想年前就失业 。

前面的过程,我自己搞了好久,一度很郁闷,但最后还是走出来了,也请教了很多朋友,有公司的同事 SYD,ouravr 的 bozai,小马哈等 网友,向他们表示感谢。也希望陷在 ARM 魅力下的朋友能够越学越好。


相关文章:
IAR EWARM软件软件配置
IAR EWARM软件软件配置_计算机软件及应用_IT/计算机_专业资料。IAR EWARM软件软件配置IAR EWARM 软件软件配置编译链接 1.问:同一 Workspace 下的多个 Project 之间...
iar ewarm 6.10.1破解版
iar ewarm 6.10.1破解版_电子/电路_工程科技_专业资料。这个 iar ewarm 6.10.1破解版资源由 iar ewarm 6.10.1 官方原版文件加注册机组合而成, 安 装原本...
IAR EWARM建一个工程步骤
IAR EWARM建一个工程步骤_专业资料 暂无评价|0人阅读|0次下载|举报文档 IAR EWARM建一个工程步骤_专业资料。如何用IAR建起一个工程...
STM32学习笔记(19)-IAR编译环境的建立
STM32学习笔记(19)-IAR编译环境的建立_计算机软件及应用_IT/计算机_专业资料。...这个 EWARMv5 在这里:\Project\STM32F10x_StdPeriph_Template\EWARMv5 要选择...
实验一:IAR集成开发环境的使用
EWARMIAR 目前发展很快的产品,EWARM 已经支持 ARM7/9/10/11XSCALE,并且 ...东北师大附中理科学霸高中化学选修5笔记104份文档 2014年驾照交规 ...
STM32入门与学习笔记
STM32入门与学习笔记_信息与通信_工程科技_专业资料。STM32快速入门与学习笔记sw...6、 我的程序库特点: a) 默认兼容 ST-LINK-II,IAR EWARM 4.42A,Flash ...
IAR基本选项配置
从弹出的文本框内选择所用器件,这样 IAR EWARM 会根据所选芯片自动设置器件描述...iar 配置注意事项 2页 免费 IAR 配置和程序学习讲解 17页 1下载券 IAR编译环境...
IAR for ARM安装、使用说明
目前IAR EWARM支持ARM Cortex-M3 内核的最新版本是 5.4,该版本支持Luminary 全系列的MCU。为了方便用户学习评估,IAR 提供一个限制32K 代码的免费试用版本。用 户...
IAR中cortex-m4启动流程分析
软件环境:windows7 旗舰版,IAR V6105(EWARM-EV-WEB-6105) ARM 芯片:飞思卡尔...官方提供的 k60 系列 demo 程序在 IAR 上的启动流程, 现写一下笔记, 以备...
IAR for arm设置
IAR for arm设置_信息与通信_工程科技_专业资料。...如何协同共同学习这个过程、参与者角色 5).带领项目...打开 EWARMv5 文件 )下面打开一个官方自带的模板...
更多相关标签: