打印
[AVR单片机]

ICC错误集锦

[复制链接]
4046|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Karlshen|  楼主 | 2009-10-22 20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手用ICC编程的时候,经常会出现一些错误,现在将常见的错误报告整理如下。
一、正常编译通过

CODE:
C:\icc\bin\imakew -f main.mak
  iccavr -c -IC:\icc\include\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\桌面\实验教程\LED应用\霓虹灯\main.c
  iccavr -o main -LC:\icc\lib\ -g -ucrtatmega.o -bfunc_lit:0x54.0x4000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk   -lcatmega
Device 1% full.
Done.

[Copy to clipboard]
这是我们最想看到的了,万事大吉。

二、工程中未加入.C文件

CODE:

C:\icc\bin\imakew -f main.mak
  iccavr -o main -LC:\icc\lib\ -g -ucrtatmega.o -bfunc_lit:0x54.0x4000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk   -lcatmega
unknown file type @main.lk, passed to linker
!ERROR unknown file type '@main.lk'
C:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1

[Copy to clipboard]

解决办法:将你的程序加入工程中,可以右键程序区>>ADD to project

三、程序没有后缀名,或者后缀名不正确。

CODE:

C:\icc\bin\imakew -f main.mak
C:\icc\bin\imakew.exe: 'main' is up to date
Done.

[Copy to clipboard]

这是一个很难理解的错误,它是由工程中的程序文件没有后缀名造成的。
解决办法:将原有文件移出工程,将文件的后缀名改为.C,然后再加入工程中。

四、没有main函数

CODE:
C:\icc\bin\imakew -f main.mak
  iccavr -c -IC:\icc\include\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\桌面\实验教程\LED应用\霓虹灯\main.c
  iccavr -o main -LC:\icc\lib\ -g -ucrtatmega.o -bfunc_lit:0x54.0x4000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk   -lcatmega
!ERROR file 'crtatmega.o': undefined symbol '_main'
C:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1

[Copy to clipboard]

解决办法,编写程序主函数MAIN。

相关帖子

沙发
Karlshen|  楼主 | 2009-10-22 20:26 | 只看该作者
五、没有选择目标芯片出现如下错误:

CODE:
C:\icc\bin\imakew -f main.mak
  iccavr -c -IC:\icc\include\ -e -l -g -Wa-W D:\桌面\实验教程\LED应用\霓虹灯\main.c
  iccavr -o main -LC:\icc\lib\ -g -Wl-W -bfunc_lit:0.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @main.lk
!E C:\icc\lib\crtAVR.o(41): Code address 0 already contains a value
!E C:\icc\lib\crtAVR.o(41): Code address 0x1 already contains a value
C:\icc\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1
[Copy to clipboard]


解决办法:project>>Options>>target>>device configuration 选择合适的芯片。

六、缺少分号

CODE:

C:\icc\bin\imakew -f main.mak
  iccavr -c -IC:\icc\include\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\桌面\实验教程\LED应用\霓虹灯\main.c
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(52): unrecognized statement
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(53): syntax error; found `}' expecting `;'
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(53): syntax error; found `end of input' expecting `}'
C:\icc\bin\imakew.exe: Error code 1
C:\icc\bin\imakew.exe: 'main.o' removed.
Done: there are error(s). Exit code: 1

[Copy to clipboard]

上面的报告说明了第52行缺少一个分号,预期分号的地方出现了“}”。
解决方法,在52行末尾添加分号。
类似的有:缺少}的报错
CODE:

C:\icc\bin\imakew -f main.mak
  iccavr -c -IC:\icc\include\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\桌面\实验教程\LED应用\霓虹灯\main.c
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(55): illegal statement termination
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(55): skipping `void'
!W D:\桌面\实验教程\LED应用\霓虹灯\main.c(55):[warning] calling function without prototype may cause errors
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(56): syntax error; found `{' expecting `;'
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(57): syntax error; found `end of input' expecting `}'
C:\icc\bin\imakew.exe: Error code 1
C:\icc\bin\imakew.exe: 'main.o' removed.
Done: there are error(s). Exit code: 1
[Copy to clipboard]


七:变量没有定义

CODE:

C:\icc\bin\imakew -f main.mak
  iccavr -c -IC:\icc\include\ -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:\桌面\实验教程\LED应用\霓虹灯\main.c
!E D:\桌面\实验教程\LED应用\霓虹灯\main.c(48): undeclared identifier `i'
C:\icc\bin\imakew.exe: Error code 1
C:\icc\bin\imakew.exe: 'main.o' removed.
Done: there are error(s). Exit code: 1

[Copy to clipboard]

解决办法:在程序开始前添加变量定义,比如unsigned char i;注意,定义变量要在函数的最前面进行,及在进行计算操作之前定义所有变量。

使用特权

评论回复
板凳
lovelyegle| | 2009-10-22 20:35 | 只看该作者
还有很多别的吧,不全

使用特权

评论回复
地板
wangwo| | 2009-10-23 22:15 | 只看该作者
支持楼主

使用特权

评论回复
5
laslison| | 2009-10-24 21:55 | 只看该作者
好东西

使用特权

评论回复
6
Karlshen|  楼主 | 2009-10-25 12:22 | 只看该作者
欢迎提供更多典型例子

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

734

帖子

1

粉丝