英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3344|回复: 0
打印 上一主题 下一主题

编译通不过错误总汇

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-18 19:57:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、
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
演示版的编译器寿终正寝了,把编译器卸载了重新安装激活吧
关于警告的修改,请在站内搜索“maplab环境下编译出现警告要注意的细节”

一、 项目的建立和保存:在mplab里建立的项目文件名不能用中文,且必须为西文半角格式;保存时路径不能太深,以上两点任何一条件不满足时都将不能正确的保存

项目的编译过程:编译完成后,mplab有可能给出如下3种信息。
1、 ERROR(xxx):……..  当出现错误时,最后将导致编译失败,此时可以双击该信息,将光标定位到出处的位置改正,大部分情况是指令书写错误。
2、WARNING(xxx):……..当出现警告信息时,虽然不会影响编译的结果,但是我们还是必须把问题干掉,方法同上。例如:   
      Warning[205] D:\......\xxx.ASM 6 : Found directive in column 1. (ORG)   这是因为ORG出现在了第一列;
      Warning[207] D:\…….\xxx.ASM 13 : Found label after column 1. (W_TEMP) 这是因为变量W_TEMP没有顶格写
  总结:一般变量或者寄存器名称在书写时必须顶格写(从第一列写);
       而除变量和寄存器名称外(如inlcude、org等伪指令、movlw等指令)书写时前面至少空一列。否则将出现上面的warning。
3、MESSAGE(xxx):…….. 此信息一般都只是起提示作用,当看到此信息时只需确定程序没有错误,就可以不管它。此信息一般都会出现,
                         除非你在程序开始时设置不显示此信息。
             Message[302] D:\........\Nxxx.ASM 13 : Register in operand not in bank 0.  Ensure that bank bits are correct这只是提示你要确定使用
                            的寄存器是否在bank0内,当你bank选择正确后可以忽略此信息。
             Message[305] D:\…….\xxx.ASM 76 : Using default destination of 1 (file)这是因为在指令中没有指明操作结果的存放位置(incf  xxx)
                            而使用了系统默认的寄存器本身。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 05:10 , Processed in 0.053884 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表