欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    ARM IAR如何生成hex.docx

    • 资源ID:7670255       资源大小:733.29KB        全文页数:13页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ARM IAR如何生成hex.docx

    1、ARM IAR如何生成hexIAR EWARM5.20学习笔记(基于LPC2132)-从零起步 -在proteus中仿真运行(幻磁帝国原创)一:创建一个最简洁的工程模板目的:IARM EWARM5.20编程入门,学会怎么用EWARM5.20版来创建自己的工程。1.1 新建一个空的工程文件夹,这里起名为MyEWARMstartup1.2 新建EWARM工程创建一个空的EWARM工程:点击OK,选择刚才新建的文件夹,工程取名为MyEWARMsartatup,保存。这样一个空的新的工程文件就建好了。1.3 拷贝IAR EWARM安装目录下例程中的启动文件本例用的是LPC2132,顾找到软件安装目录下

    2、的LPC213x的例程进去找到config文件夹,这个文件夹中装的就是LPC2132的启动文件可以看到这个文件加下面有四个文件Flash.icf Flash.mac RAM.icf 和 ram.mac。暂且不用理会这几个文件的具体内容,只要知道它是启动文件就可以了。拷贝config文件夹,复制到先前建立的工程文件夹MyEWARMstartup中。到此,准备工作基本完成。1.4 工程设置右键点击workspace中的工程名,选择Options,对工程进行相关设置。再Generral options中选择具体的ARM型号,这里选择LPC2132第二个要设置的选项是Output Converter,

    3、即输出文件的设置,这里设置如下,生成hex文件,文件的目录可以直接加到hex文件名前面的。如:D: MyEWARMsartatup.hex接下来就是至关重要的启动代码的链接设置了,打开Linker选项如下,congfig选项卡中默认是没有勾选Override default的。这时候就要用到先前我们拷贝的config文件夹中的东东了,也就是启动文件了。勾选Override default,点击后面的选择链接,将路径选择到:C:Documents and SettingsAdministrator桌面MyEWARMstartupconfigRAM.icf 如果想在Flash中运行就选择FLASH

    4、.icf 最后一个设置:本人是在proteus中仿真调试的,所以这里选择的是simulator方式,启动后运行到main函数。点击OK完成设置。1.5 创建自己的main.c文件然后将文件添加到工程当中(在MyEWARMstartup-Debug处点击右键-AddAdd“main.c”)点mack,OK,没有错误,大功告成!OK,在proteus中仿真运行,你就会看到你的劳动成果了一个闪烁的LED!呵呵简单吧!赶快自己动手试试吧。 如果需要下载到目标板中,则将1.4中的Linker中的连接选择到FLASH.icf(或者修改RAM.icf的起始终止地址也可以)。否则用Isp下载时会出现如下错误:

    5、IAR EWARM v5.20下从零开始创建工程(总结+探索)下面开始对IAR Embedded Wrokbench v5.20进行设置,打开ProjectOptions选项,开始设置:下载 (17.79 KB)2008-11-23 17:03设置目标板类型:设置C/C+编译器:特别需要注意,在“Additonal include directories:”一项里,要填写头文件的路径,“$PROJ_DIR$.APPLICATION”表示头文件存放在当前工程文件上一级目录的APPLICATION文件夹下,另外一个同理。如果使用ISP方式,需要.HEX文件,在IAR520下,非常容易获得.HEX文

    6、件,设置如下:设置Linker:就是前面提到的stm32f10x_flash.icf文件,注意,当整个文件夹路径发生变化时,需要重新设定stm32f10x_flash.icf,否则,LED.HEX文件将无法下载到豆皮开发板上。Make然后大家就会在C:STM32_DemoLEDEWARMDebugExe目录下看到LED.hex文件了,至此,LED跑马灯工程就算告一段落了,(*_*) 。将LED.hex文件用ISP方式下载到STM32F103VB6的Flash 里面就程序就可以跑起来了。ISP的具体设置请参考帖子豆皮 - STM32开发板入门教程(十二) - STM32 ISP下载(原创)帖子出

    7、处 CodeinHexfileexceedsFlashLimitation!问题的解决我使用周立功公司的EasyARM开发试验板,芯片是lpc2114,有128kb的flash,但是当要使用LPC210x Flash ISP Utility下载只有4K代码的程序时,却出现“code in hex file exceeds flash limitations”错误。 因为平常使用ADS调试都是用的DebugInARM设置,所以在用LPC210x Flash ISP Utility下载程序时也是使用这个设置。上网查资料,找到了解决的办法: in RAM里调试并生成。生成的Hex文件不对,请注意在D

    8、ebug in RAM里调试并生成的文件他将从40000000开始,这样软件当然会提示“code in hex file exceeds flash limitations”。” 所以我的解决办法是先使用DebugInFLASH设置,然后再用LPC210x Flash ISP Utility下载时即可成功!ARM初体验搞出来从片内RAM或片外flash启动了(来自网络)板子的硬件调试通过后,用了一周的时间才把一个简单的LED测试程序分别在片内RAM和片外flash调试通过,中间那个叫痛苦啊,首先记住一个教训:以后开发一种新的CPU,一定要在原理设计阶段就开始考虑程序设计,考虑玩玩开发板,熟悉新

    9、的开发软件,不至于到硬件调试完后匆忙上阵,前面对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.icf修改了一个icf文件,怎么都不行

    10、,IAR5.20的icf格式又与4.X的XCL格式有很大的不同,没办法就死啃IAR的帮助文件,EWARM_DevelopmentGuide.ENU.pdf,这个文档的73页有一个ICF的范例,A Simple Example of A Configuration File,自己照葫芦画瓢写了一个简单的ICF文件,写多了,逐渐发现其中的猫腻了,这个文件无非包括三个内容:定义存储区域;初始化堆栈;放置代码和数据。定义存储区域就是声明你的硬件系统上的ROM和RAM地址范围,初始化堆栈就是定义堆栈大小并将其放到一个特定区域,放置代码和数据一般就是将readonly就是代码放置到ROM或FLASH,将r

    11、eadwrite就是数据变量啥的放置到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

    12、 _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不是那么好用的,用过的都知道,里面要用到一个初始化脚本,开始我不懂这个东东是干啥用的,随便下载了一个脚本就用上

    13、了,其实这个初始化脚本与前面说到的icf文件一样都是与自己的硬件系统息息相关的,这个初始化脚本重要的有两处:制定合法的RAM和片外flash地址和初始化片外存储器。为什么要合法的RAM地址,因为H-JTAG的下载机制是先将一个程序A下载到RAM,然后这个程序A再将你真正要下载的程序B下载到flash。所以要一个合法的RAM地址,片内RAM足够了,不知道为啥我的片外RAM就不行(后面也初始化了)?flash地址一定是真正的地址,比如说0x10000000。另外就是初始化你的片外flash,不初始化,照样找不到。同样此时,在IAR的icf文件中,你要声明你的片外flash地址。并将中断向量存放到片

    14、外flasha起始地址。至于MAC文件,这里只要的作用好像与H-flash的初始化脚本重复了,都是初始化片外存储器的作用,好像不要也可以,具体还没有试。这样就可以在IAR中编译生成Binary文件然后在BMS接高的情况下,下载到片外flash中,然后断电,将BMS接地,程序将从norflash启动运行。接下来就是试验Remap到RAM,好像有点难,一直没能成功,先不搞了,先把我的应用程序写出来,马上过年了,我可不想年前就失业。前面的过程,我自己搞了好久,一度很郁闷,但最后还是走出来了,也请教了很多朋友,有公司的同事SYD,ouravr的bozai,小马哈等网友,向他们表示感谢。也希望陷在ARM魅力下的朋友能够越学越好。


    注意事项

    本文(ARM IAR如何生成hex.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开