现在的位置: 首页 > 综合 > 正文

IAR常见的错误及解决方法

2017年11月24日 ⁄ 综合 ⁄ 共 2249字 ⁄ 字号 评论关闭

              IAR常见的错误及解决方法

 

很多朋友对于IAR不是很熟悉,使用IAR编程出错时更不知道从哪里下手,先在网上找到一篇关于《IAR常见错误列表》的文章,以飨读者。
这篇文章转自于http://zhenling.chen.blog.163.com/blog/static/194085192009713101043668/

转载之后又有我遇到的错误,这里写上去啦并也解决啦,希望对大家有所帮助

(1)Error: Copy protection check, No valid license found for this product 
原因:安装的时候没有把注册机的0x.....字串的小写字母改为大写字母。

(2)Warning: last line of file ends without a newline F:\emoTion\IAR\PK 升级\CC1110-8\main.c 
原因:在使用IAR时常常会弹出类似这样一个警告,其实只要在最后一行多加一个回车就不会再有这个警告了。

(3)Error: Segment BANK_RELAYS must be defined in a segment definition option (-Z, -b or -P) 
原因:这是用730B编译的错误,可能是由于相对于目标工程版本过高的,后改用720H,没有发生错误。

(4)Error: could not open source file "stdio.h" 
原因:头文件路径不对造成,改正的方法是在设置选项卡的C/C++ Compiler -> Preprocessor选项里,将$TOOLKIT_DIR$\INC\CLIB\添到Include paths中。

(5)Error: could not open source file "hal.h" C:\Users\user\Desktop\例子程序\无线通信综合测试\Library\cc2430\HAL\source\setTimer34Period.c
原因:先检查C:\Users\user\Desktop\例子程序\无线通信综合测试\Library\cc2430\HAL\source\有无setTimer34Period.c这个文件,若有,则是因为IAR对中文路径支持不好的缘故,把这个工程复制到英文路径下编译就不会发生错误。

(6)Error: Segment CODE_C (size: 0x1869 align: 0) is too long for segment definition. At least 0x1259 more bytes needed.
原因:CODE不够了,在xcl文件中修改其大小,0x28FF+0x1259=0x3B58,设置为-D_CODE_END=0x3B58。

(7)Error: Segment XDATA_Z (size: 0x1ea7 align: 0) is too long for segment definition. At least 0x2a7 more bytes 
原因:在xcl文件里修改段大小,-D_IXDATA_END=0xFD53    // Revison D (this setting is safe for all revisions)还有可能是定义的大数组太多了,有时候某些函数中定义的数组有点大,在主函数中单独测试这个函数时不会报错。

(8)Error: Segment CSTACK (size: 0x50 align: 0x1) is too long for segment definition. At least 0x50 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)CSTACK+_STACK_SIZE#", 
原因:此错误是所定义的全局变量和数组缓冲区等所占的RAM超出硬件支持所致,size: 0x50 为超出的大小。只要减少不要的全局变量和尽量缩小数组缓冲区就可以了!

(9)Error: Undefined external "OnBoard_SendPhoto::?relay" referred in hal_key ( C:\Texas Instruments\ZStack-1.4.3-1.2.1\Projects\zstack\Samples\SimpleApp\CC2430DB\SimpleControllerEB\Obj\hal_key.r51 )
原因:只有没有找到该函数的定义OnBoard_SendPhoto(),只有声明和使用。一般在链接时发生此错误。

(10)Error:Too much object code produced(more than 0x1000 bytes)for this package
原因:4K限制版,请使用非限制版的。

(11)Fatal Error[Cp001]: Copy protection check, No valid license found for this product [24]

原因是你在安装的时候不是用管理员身份安装的、和密钥不是通过管理员打开的,解决方法就是通过管理员进行安装

IAR常见错误请先从以下几个方面入手:
1、   序列号是否正确。
2、   使用版本是否正确,应该使用7.30B打开的工程文件不能用7.20H打开。
3、   尽量不要使用中文路径。
4、   Zigbee协议栈文件夹需要放在IAR安装盘根目录下。
5、   请确定当前编译文件夹是否有读写权限。
6、   使用的版本是否为限制版。

7、通过管理员身份进行安装

抱歉!评论已关闭.