技术热线: 4007-888-234

单片机编译通不过错误总汇

更新时间: 2019-03-21
阅读量:3363

单片机代理商深圳英锐恩分享单片机编译通不过错误汇总,免费为您解决技术问题 。

一、
Error[000] : Can't find 0x12C words for psect rbss_1 in segment BANK1

连接器告诉你总共有0x12C(300)个字节准备放到bank1 中但bank1 容量不够。显然,只

有把一部分原本定位在bank1 中的变量改放到其它bank 中才能解决此问题。

二、

Error[000] :Fixup overflow in expression (...)

Error
     [477] ; . fixup overflow in expression (location 0x1FEE (0x1FE6+8), size 2, value 0xFF5)
◆既然定义的指针有明确的bank 适用区域,在对指针变量赋值时就必须实现类型匹配,

下面的指针赋值将产生一个致命错误:

unsigned char *ptr0; //定义指向bank0/1 的指针

bank2 unsigned char buff[8]; //定义bank2 中的一个缓冲区

程序语句:

ptr0 = buff; //错误!试图将bank2 内的变量地址赋给指向bank0/1 的指针

,如果你看到了“Fixup overflow”的错误指示,请重点检查程序中有关指针的操作。

◆如果总程序仍超过一页,则可能会有以上错误,检查程序是否超页:

三、

Error[000]   : Can't find 0x26 words (0x26 withtotal) for psect text13 in segment CODE
Error[000]   : Can't find 0xC words (0xC withtotal) for psect text in segment CODE
Error[000]   : Can't find 0xC words (0xC withtotal) for psect text4 in segment CODE
常见的情况是编译的内容超出芯片ROM空间,可屏蔽部分代码,以检查代码量是否过多。

四、

Error[000] D:\Work\standard_\remo.c 113 : probable missing '}' in previous block
Error[000] D:\Work\standard_\remo.c 8 : { expected
程序中大括号不完整,检查{}是否完整成对使用。

五、

Error[000] D:\Work\standard\remo.c 8 : ; expected

程序代码后缺少“;”号。

六、

Error[000] D:\Work\standard\remo.c 10 : undefined identifier: buzz1

变量buzz1未定义就使用,变量应先定义后使用。

七、

Error[000] D:\Work\standard\remo.c 80 : inappropriate 'else'

If,else语句未成对使用,缺少if条件,提示不对称的else。

八、

Error[000]   : undefined symbols:

Error[000]   : _chipsel (D:\Work\standard\mini.obj)

未定义的标签,确认子程序chipsel()等是否可以被调用,检查是否在INCLUDE中,是否在调用前进行了函数原型声明。

九、

Error[000] D:\Work\standard\mini.c 19 : Cannot open include file "I2C.c1"

包含的文件名错误,检查包含的文件和原文件的命名是否相同。

十、

Error[000] :function _EQ_DATA_SEND appears in multiple call graphs: rooted at _isr and
_main (error)

函数EQ_DATA_SEND在主程序和中断程序中均被调用,有可能该函数在被主程序调用执行的过程中又被中断程序调用。这样就破坏了正在执行过程的数据,造成不可预料的结果,因此不能这样。可以写成两个不同命名的函数分别调用。

十一、

Error[000]   : This demo compiler has expired.
Contact HI-TECH software to purchase and re-activate this compiler