网站大量收购闲置独家精品文档,联系QQ:2885784924

IAREWARM软件软件配置.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IAREWARM软件软件配置

IAR EWARM软件软件配置编译链接1.问:同一Workspace下的多个Project之间有无关系?? ?? 答:没有。在同一Workspace下可以放置多个Project,但每个Project都是独立被Build的,在编译链接的时候没有相互影响。 2.问:如何生成其它格式的输出文件?? ?? 答:IAR EW的链接器(IXLINK)缺省情况下输出的文件格式是ELF/DWARF,这种格式与其他的支持ELF/DWARF的开发工具兼容。如果同时还想得到其它格式的输出文件(Motorola, Intel extended,binary, simple),可以通过Output Converter进行设置: 3.问:如何生成Linker List文件?? ???答:Option-Category-Linker下,选中Generate Linker map file选项。 4.问:如何处理多字节字符?? ?? 答:在配置窗口中Option-Category-C/C++ Compiler下,选中“Enable multibyte support”,允许目标程序使用与主机相一致的多字节编码: 5.问:如何在编译生成的目标文件中包含调试信息?? ?? 答:如果在调试时只能看见反汇编代码,而看不到C/C++或汇编源代码,可能是因为在编译时未包含调试信息。 6.问:如何添加头文件的有哪些信誉好的足球投注网站路径?? ?? 答:$PROJ_DIR$? 工程文件所在的目录,$TOOLKIT_DIR$ IAR EW软件安装到的目录。 7.问:如何平衡速度优化和尺寸优化?? ?? 答:使用编译器优化选项可以设置整个项目的优化级别(例如:minimal code)。 也可以为不同的文件或者文件组设置优化级别(例如:对time-critical的代码设置优化级别为maximum speed)。使用“#pragma optimize”指令可以为特定的函数设置优化级别。请参考EWARM_DevelopmentGuide.pdf。 8.问:如何定义inline函数?? ?? 答:inline函数传统上只有C++支持,但IAR EW也支持在C代码中使用inline。#pragma inline?? 建议编译器对紧随其后的函数进行inline处理#pragma inline=forced? 强制编译器对紧随其后的函数进行inline处理。 9.问:如何使一部份代码在RAM中运行?? ?? 答:对于绝大多数单片机,包括单片ARM,由于片内RAM容量有限,一般不足以运行整个程序,因此缺省情况下EW把代码段放在Flash中,并自动复制数据段到RAM。鉴于某些代码必须在RAM中运行(例如烧写Flash的例程),因此EW提供了关键字__ramfunc。使用关键字__ramfunc定义的函数,将存放在Flash中,但在系统启动阶段被自动复制到RAM中运行: ?__ramfunc void WriteToFlash (void) { ...... } 该复制过程是系统Run-Time Library的一部份。 调试仿真下载1.问:Flash中没有代码时,如何初始化RAM? 答:如果Flash中已经有代码,则在上电的瞬间,这些代码可以完成必要的硬件初始化(PLL/Clock/Memory Controller/…), 然后C-SPY通过JTAG接口将程序(应用程序或Flash Loader)下载到RAM。 如果Flash中没有任何代码,则上电之后所有硬件寄存器都保持Reset之后的缺省值。对于某些板子,有可能在这种情况下RAM无法正常访问,因此也就下载不了任何程序。 EWARM通过宏文件(macro file)解决这个问题。 a.?创建扩展名为*.mac的文本文件; b.?在该文件中定义宏函数execUserPreload(针对应用程序)或execUserFlashInit(针对Flash Loader); c.?在上述宏函数中,调用系统宏__readMemory32和__writeMemory32,进行所有必要的寄存器初始化; 例: execUserPreload () { ?__reg_value = __readMemory32 (0xFFFFFC00, “Memory”); ?__reg_value = __reg_value + 0x100; __writeMemory32 (__reg_value, 0xFFFFFC00, Memory); } d.?在配置工程时指定该宏文件的路径: C-SPY在下载程序之前,将调用宏函数execUserPreload或execUserFlashInit进行硬件初始化,从而保证在下载程序时系统运行在正常的时钟频率下,且RAM可以正确读写。

文档评论(0)

eanp35308 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档