IAR编译错误,请高手给看看是怎么回事

IAR编译错误,请高手给看看是怎么回事,第1张

这是说明你的代码量超出了你预设的rom大小,一般iar编译程序后会根据一个

xxx.xcl文件把你的代码和数据链接到指定地址,iar的文件夹里面搜搜就能搜到,"-z(code)code=romstart-romend"是说你所有的代码都放置在以romstart为起始地址,romend为终止地址的一段连续的空间内,romstart为0x4000016c,romend为40003fff,貌似是个有16k

flash的arm。上面报错是因为你编译出来的code

size

是0x58b4,已经超过了这个空间,你能做的就是看看能不能缩减代码量。

楼主你好,要想回答你这个问题,首先要搞清楚cc2530的这个bank是什么意思。bank和存储空间有关。

IAR中CC2530的有两种代码模式,Near和Banked。其中Near是普通的51单片机模式,只支持64KB的访问范围。如果你用不到这么大的存储空间,也就是小于64KB的话,那么使用Near模式足够了。而Banked模式一般来说是ZStack使用的模式(当然也可能你需要使用到大于64KB的存储空间时,需要设定为Banked模式),例如ZStack的ROM使用大约在100多KB,因此我们使用ZStack协议栈的话,就必须要将其 Code model设置为“Banked”模式。如下图。

图一

当然,一般来说我们使用cc2530就是要跑Zigbee协议的,因此这里就需要选择Banked,既然你选择的是Banked模式,那么在Linker Config File选项中,就自然而然需要选择lnk51ew_cc2530F256_banked.xcl文件了,一般来说,不管你用不用Banked模式,选择lnk51ew_cc2530F256_banked.xcl文件总比选择lnk51ew_cc2530F256.xcl要更容易避免编译时出现错误。so,选它就对了

图二

码字不易,望能够采纳~

重新修改了STM32的工程代码。所有提示未定义代码都已经确定定义过。

在stm32f10x_confh里面包含stm32f10x_usart。h头文件的代码被注释掉了,把这个注释去掉,重新包含这个头文件就把上面的问题解决了。

xxx。xcl文件把你的代码和数据链接到指定地址,IAR的文件夹里面搜搜就能搜到,“-Z(CODE)CODE=ROMSTART-ROMEND”是说所有的代码都放置在以ROMSTART为起始地址。

ROMEND为终止地址的一段连续的空间内,ROMSTART为0x4000016c,ROMEND为40003fff,貌似是个有16KFLASH的ARM。

扩展资料:

IAR更适合高机动性的现代战争,相比之下M249这个大家伙却很容易暴露目标。交火的时候谁抱着M249就先杀谁已经成了战场生存法则。而IAR长的很像M4,到时候就难以区分。提高存活率,更高效的打击敌军火力,提供更稳妥的班级火力支援。IAR,无限可能。

那IAR到底是不是个理想之选?是,也不是。给战士们一款机q级别的卡宾q是个好的想法。但是,士兵们真正需要的是RRS系统,在全力开火的时候也没有q管过热之虞。

根据最新公布的情况,这批IAR只会取代美国海军陆战队现装备的10,000挺M249中的2000挺,陆战队还将保留着8,000挺M249继续服役。根据计划,在陆战队一线战斗部队的步兵班中的3挺M249中,其中的1挺会被2支IAR所代替,所以装备IAR并不会使陆战队步兵班的火力有所降低。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11672643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存