iar error汇总

上传人:第*** 文档编号:31073399 上传时间:2018-02-04 格式:DOCX 页数:26 大小:351.45KB
返回 下载 相关 举报
iar error汇总_第1页
第1页 / 共26页
iar error汇总_第2页
第2页 / 共26页
iar error汇总_第3页
第3页 / 共26页
iar error汇总_第4页
第4页 / 共26页
iar error汇总_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《iar error汇总》由会员分享,可在线阅读,更多相关《iar error汇总(26页珍藏版)》请在金锄头文库上搜索。

1、无编号警告类型:1、 Sat Jun 23, 2012 17:41:05: The stack pointer for stack Stack (currently Memory:0xF5336) is原因:http:/ 相关设置:Tools-Option-Stack-Warn when stack pointer is out of bounds.2、无法查看结构体/共同体/ 联合体 变量Syntax error, unexpected $end, expecting COLON2 column 1struct drpointuint16 x;uint16 y; drpoint10;改成:s

2、truct uint16 x;uint16 y; drpoint10;参考:http:/ 2012.12IAR 各版本 BUG 错误修正历史: ftp:/efo- software/EWAVR32-KS-CD-220A/doc/common/doc/CorrectedProblems.pdf有编号警告类型:Errore16: Segment XDATA_Z (size: 0x19a1 align: 0) is too long for segment definition. At least 0xe4c more bytes needed. The problem occurred while

3、 processing the segment placement command-Z(XDATA)XDATA_N,XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END, where at the moment of placement the available memory ranges were XDATA:f1ff-fd53Reserved ranges relevant to this placement:XDATA:f000-f1fe XSTACKXDATA:f1ff-fd53 XDATA_NBIT:0-7 BREGBIT:80-97 SFR_ANBIT:

4、a8-af SFR_ANBIT:b8-c7 SFR_ANBIT:d8-df SFR_ANBIT:e8-ef SFR_ANA:其实这个问题并不是你的程序本身有问题,主要是因为你编写的程序太大了,超出了芯片本身的定义。今天在群里学习了一招,就是将数组定义到 code 里,我们看一下例子。我们定义一个 5100 个元素的数组,有以下两种方法:mermaid 提出的方法是:typedef unsigned char const _code INT8U;extern INT8U shuzi5100;文晶提出的方法是INT8U code shuzi5100;这两种方法其实效果是一致的,定义完数组之后,调用

5、的部分就是需要用指针来调用数组里面的数值了。Errore16: Segment DATA16_I (size: 0xa80 align: 0x1) is too long for segment definition. At least 0x27f more bytes needed. Theproem occurred while processing the segment placement command-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,HEAP+_HEAP_SIZE=0200-0A00, where at the moment of placeme

6、nt the ailaememory ranges were CODE:200-A00经过验证是由于 RAM 耗尽,程序里估计有很大的数据量,最好使用 const 定义到 FLASH 里面,问题基本可以解决。Errore16: Segment DATA16_Z (size: 0x6b9 align: 0x1) is too long for segment definition. At least 0x317 more bytes needed. The problem occurred while processing the segment placement command -Z(DAT

7、A)DATA16_I,DATA16_Z,DATA16_N,TLS16_I,DATA16_HEAP+_DATA16_HEAP_SIZE=0200-09FF, where at the moment of placement the available memory ranges were CODE:5ce-5ff,CODE:602-605,CODE:609-60b,CODE:60d-60d,CODE:60f-61b,CODE:61e-63f,CODE:642-645,CODE:649-64b,CODE:64d-64d,CODE:64f-65b,CODE:65e-9ffReserved range

8、s relevant to this placement:可能的原因:1、设置的某个数组过大,超过了设置的堆栈。2、设置的堆栈不够大3、选择的型号不对(编写的程序是用在 RAM 较大的一个单片机上的,IAR 里选择的却是 RAM 较小的一个型号)UESTC 2013.3.8 2Q: 烧写程序时无法跳入断点为什么我每次烧程序都出现:The stack plug-in failed to set a breakpoint on main. The Stack window will not be able to display stack contents. (You can change thi

9、s setting in the ToolOptions dialog box.)的警告。但是程序能烧进去,只是不能调试。A:确认设置没有问题(和好用的工程相比)这是设置不对,请找下面顺序修改:iar-options-linker-output-format;选择 Debug information for c-SPY 选项3Q:错误提示:Fatal ErrorCp001: Copy protecTIon check, No valid license found for this product 20A:可以将 IAR 全部安装上,但是在编译文件时却会报这个错,原因是安装的时候没有把注册机的

10、 0x.字串的小写字母改为大写字母。4Q:“Errore16: 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#, ”A:此错误是所定义的全局变量和数组缓冲区等所占的 RAM 超出硬件支持所致:size: 0x50 为超出的大小。只要减少不不

11、要的全局变量和尽量缩小数组缓冲区就可以了!5Q:7Q:ErrorPe018: expected a ) C:Documents and SettingsAdministrator桌面CraneCrane 塔吊防碰撞系统 1.1 版(SIM908 倾角查询)5438A 塔吊防碰撞 1.1api_function.h 51、函数或者语句中有变量名复用:#define length 50 / 吊臂长度extern int dec_to_bcd(int dec_dat, unsigned char *bcd, int length);将以上的变量名之一换做别的即可解决。UESTC 2012.3.27E

12、rrore27:(变量没有 extern 声明外部可调用) uestchttp:/ Entry ER_WARN in module AD () redefined in module FINGERPRINT ()解决方法是把变量定义在其中一个 cpp 文件里面,然后在另一个文件里面用 extern 来引用。sample:文件一:int a=0;文件二:extern int a; /此处不能使他等于某个数就可以了,如果此处 a 再赋值 extern int a=0;就会报错 e27以为我在 x.h 文件中定义有变量,然后 x.h 放入 config.h 中,config.h 被其他的各个.c 文

13、件包含,就造成了,x.h 中的变量在各个.c 中定义,造成了重复定义。 UESTC 2012.3.27相关问答:http:/ external _program_start referred in ?ABS_ENTRY_MOD ( )A:该问题应该是 IAR 设置问题,具体设置如下:Project-Option-Linker-Config 勾选Override default program再选择Defined by applicationB、 static ( const)变量是不能被外部文件调用的 ( ? )C、只包含了.h 文件, .c 文件没有添加进工程从 debug 切换到 rele

14、ase 出现错误:release 不会自动继承 debug 的设置,需要自己重新设置:snprintf、fmax 、fmin 这些函数都能在 IAR 帮助中找到,但是却出现下面错误:Errore46: Undefined external fmax referred in cacu_protect ( C:Documents and SettingsAdministrator桌面塔吊安全监控系统-终版 塔吊安全监控系统-终版ReleaseObjcacu_protect.r43 )Errore46: Undefined external fmin referred in cacu_protect ( C:Documents and SettingsAdministrator桌面塔吊安全监控系统-终版 塔吊安全监控系统-终版ReleaseObjcacu_protect.r43 )Errore46: Undefined external snprintf referred in gprs_8 ( C:Documents and SettingsAdministrator桌面塔吊安全监控系统-终版 塔吊安全监控系统-终版ReleaseObjgprs_8.r43 )Error while

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号