您的位置 首页 基础

IAR编译常见过错

Error[Cp001]:Copyprotectioncheck,Novalidlicensefoundforthisprodt[20]原因:安装的时候没有把注册机的0x

Error[Cp001]: Copy protection check, No valid license found for this prod t [20]

原因:装置的时分没有把注册机的0x…..字串的小写字母改为大写字母。

Warning[Pe001]: last line of file ends without a newline F:emoTionIARPK晋级CC1110-8main.c

原因:在运用IAR常常常会弹出相似这样一个正告,其实只需在最终一行多加一个回车就不会再有这个正告了.

Error[e72]: Segment BANK_RELAYS must be defined in a segment definition option (-Z, -b or -P)

原因:这是用730B编译的过错,可能是由于相对于方针工程版别过高的,后改用720H,没有产生过错。

Error[Pe005]: could not open source file “stdio.h”

原因:头文件途径不对形成,改正的办法是在设置选项卡的C/C++ Compiler -> Preprocessor选项里,将$TOOLKIT_DIR$INCCLIB添到Incl? paths中。

Error[Pe005]:could not open source file “hal.h” C:UsersuserDesktop比如程序无线通信综合测验Librarycc2430HALsourcesetTimer34Period.c

原因:先查看C:UsersuserDesktop比如程序无线通信综合测验Librarycc2430HALsource有无setTimer34Period.c这个文件,若有,则是由于IAR对中文途径支撑欠好的原因,把这个工程复制到英文途径下编译就不会产生过错。

Error[e16]: 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

Error[e16]: 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)还有可能是界说的大数组太多了,有时分某些函数中界说的数组有点大,在主函数中独自测验这个函数时不会报错

Error[e16]: 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为超出的巨细。只需削减不要的全局变量和尽量缩小数组缓冲区就可以了!

Error[e46]: Undefined external “OnBoard_SendPhoto::?relay” referred in hal_key ( C:Texas InstrumentsZStack-1.4.3-1.2.1ProjectszstackSamplesSimpleAppCC2430DBSimpleControllerEBObjhal_key.r51 )

原因:只要没有找到该函数的界说OnBoard_SendPhoto(),只要声明和运用。一般在链接时产生此过错。

Error[e89]:Too m h object code prod ed(more than 0x1000 bytes)for this package

原因:4K限制版,请运用非限制版的。

IAR常见过错请先从以下几个方面下手:

1、序列号是否正确。

2、运用版别是否正确,应该运用7.30B翻开的工程文件不能用7.20H翻开。

3、尽量不要运用中文途径。

4、Zigbee协议栈文件夹需求放在IAR装置盘根目录下。

5、请确认当时编译文件夹是否有读写权限。

6、运用的版别是否为限制版。

下面是我自己的弥补(不断更新哦)

1.Error[e16]: Segment CODE (size: 0xffe align: 0x1) is too long for segment definition. At least 0x4a more bytes needed. The problem occurred while processing the segmentplacement command “-Z(CODE)CODE=_..X_FLASH_BASE-_..X_FLASH_END”, where at the moment of placement the available memory ranges were “CODE:4b-fff”

Reserved ranges relevant to this placement:

CODE:34-44NEAR_F
CODE:45-4aINITTAB

CODE:4b-fffCODE

这个我的修正是 project options—->C/C++ Compiler—–>Optimizations(最优化)—–>size—–>High(maximum optimization)

也便是,将代码最大极限的优化,以节约空间。
2.configuration is up-to-data.

在新建工程时,增加程序文件,需注意,有必要增加有用的.c或许汇编文件。

嘿嘿,笔者新建工程时,保存的.c文件常常忘掉加后缀,增加进入工程时,体系无法辨认,这种初级过错写出来是自己提示自己的。

3. Warning[Pe069]: integer conversion resulted in truncation程序如下:
#define SEG_A~0x04
#define SEG_B~0x01
#define SEG_C~0x40
#define SEG_D~0x10
#define SEG_E~0x08
#define SEG_F~0x02
#define SEG_G~0x80
#define SEG_H~0x20

SEG_A&SEG_B&SEG_G&SEG_D&SEG_E,//2

原因:后来将SEG_A到SEG_H的值求出来之后,eg,~0x04改为0xFB.问题就处理,因该是以数组中核算量过杂乱。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/256382.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部