<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ICC錯誤集錦,看懂ICC AVR的報錯

ICC錯誤集錦,看懂ICC AVR的報錯

作者: 時(shí)間:2016-10-19 來(lái)源:網(wǎng)絡(luò ) 收藏

  新手用編程的時(shí)候,經(jīng)常會(huì )出現一些錯誤,現在將常見(jiàn)的錯誤報告整理如下。這里的一些錯誤是我為了展示而故意制造的,歡迎你提供你遇到的錯誤。排名不分先后:

本文引用地址:http://dyxdggzs.com/article/201610/311530.htm

  一、正常編譯通過(guò)

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -c -IC:iccinclude -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:桌面實(shí)驗教程LED應用霓虹燈main.c

  iccavr -o main -LC:icclib -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]

  這是我們最想看到的了,萬(wàn)事大吉。

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

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -o main -LC:icclib -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:iccbinimakew.exe: Error code 1

  Done: there are error(s). Exit code: 1

  [Copy to clipboard]

  解決辦法:將你的程序加入工程中,可以右鍵程序區>>ADD to project

  三、程序沒(méi)有后綴名,或者后綴名不正確。

  CODE:

  C:iccbinimakew -f main.mak

  C:iccbinimakew.exe: 'main' is up to date

  Done.

  [Copy to clipboard]

  這是一個(gè)很難理解的錯誤,它是由工程中的程序文件沒(méi)有后綴名造成的。

  解決辦法:將原有文件移出工程,將文件的后綴名改為.C,然后再加入工程中。

  四、沒(méi)有main函數

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -c -IC:iccinclude -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:桌面實(shí)驗教程LED應用霓虹燈main.c

  iccavr -o main -LC:icclib -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:iccbinimakew.exe: Error code 1

  Done: there are error(s). Exit code: 1

  [Copy to clipboard]

  解決辦法,編寫(xiě)程序主函數MAIN。

  五、沒(méi)有選擇目標芯片出現如下錯誤:

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -c -IC:iccinclude -e -l -g -Wa-W D:桌面實(shí)驗教程LED應用霓虹燈main.c

  iccavr -o main -LC:icclib -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:icclibcrt.o(41): Code address 0 already contains a value

  !E C:icclibcrt.o(41): Code address 0x1 already contains a value

  C:iccbinimakew.exe: Error code 1

  Done: there are error(s). Exit code: 1

  [Copy to clipboard]

  解決辦法:project>>Options>>target>>device configuration 選擇合適的芯片。

  六、缺少分號

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -c -IC:iccinclude -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:桌面實(shí)驗教程LED應用霓虹燈main.c

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(52): unrecognized statement

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(53): syntax error; found `}' expecting `;'

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(53): syntax error; found `end of input' expecting `}'

  C:iccbinimakew.exe: Error code 1

  C:iccbinimakew.exe: 'main.o' removed.

  Done: there are error(s). Exit code: 1

  [Copy to clipboard]

  上面的報告說(shuō)明了第52行缺少一個(gè)分號,預期分號的地方出現了“}”。

  解決方法,在52行末尾添加分號。

  類(lèi)似的有:缺少}的報錯

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -c -IC:iccinclude -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:桌面實(shí)驗教程LED應用霓虹燈main.c

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(55): illegal statement termination

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(55): skipping `void'

  !W D:桌面實(shí)驗教程LED應用霓虹燈main.c(55):[warning] calling function without prototype may cause errors

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(56): syntax error; found `{' expecting `;'

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(57): syntax error; found `end of input' expecting `}'

  C:iccbinimakew.exe: Error code 1

  C:iccbinimakew.exe: 'main.o' removed.

  Done: there are error(s). Exit code: 1

  [Copy to clipboard]

  七:變量沒(méi)有定義

  CODE:

  C:iccbinimakew -f main.mak

  iccavr -c -IC:iccinclude -e -DATMEGA -DATMega16 -l -g -Mavr_enhanced D:桌面實(shí)驗教程LED應用霓虹燈main.c

  !E D:桌面實(shí)驗教程LED應用霓虹燈main.c(48): undeclared identifier `i'

  C:iccbinimakew.exe: Error code 1

  C:iccbinimakew.exe: 'main.o' removed.

  Done: there are error(s). Exit code: 1

  [Copy to clipboard]

  解決辦法:在程序開(kāi)始前添加變量定義,比如unsigned char i;注意,定義變量要在函數的最前面進(jìn)行,及在進(jìn)行計算操作之前定義所有變量。

  歡迎你發(fā)布你遇到的錯誤和解決方法,或者你遇到的錯誤還沒(méi)解決的。

  八、在編譯時(shí)總是不能生成COF文件,不能進(jìn)行調試

  解決辦法:在編譯環(huán)境中,進(jìn)入Project -> Option -> Compiler中在Output format區選COFF/HEX格式

  九、請指點(diǎn)一下:

  我的程序出現下列錯誤提示,是不是我什么地方設置錯了呀。

  CODE:

  D:iccbinimakew -f tex.mak

  -lstudio -lfpavr

  want size 346

  lo 3910 hi 4096 size 187

  !E (37): area 'text' not large enough

  D:iccbinimakew.exe: Error code 1

  Done: there are error(s). Exit code: 1

  一點(diǎn)錯誤那行的時(shí)候就出來(lái)一個(gè)提示框,但沒(méi)有移到某一行上去。。。。

  ans1:還沒(méi)有確切的解釋?zhuān)赡茉颍簯撌嵌x的數組過(guò)大,減小數組的數量應該可以了

  ans2:這是超過(guò)編譯空間了,你可以到壓縮下代碼,project>options>compiler,選擇Enable code compression或者只有優(yōu)化代碼了

  十:無(wú)意中又發(fā)現一個(gè):

  too many arguments to `delay_1ms'

  問(wèn)題原因,函數的參數太多,比如上面一個(gè)定義的是delay_1ms(void),我確用了delay_1ms(1);改為delay_1ms();就好了。

  十一、!ERROR can't open file 'libiccavrlibsliccatmega-m.a'

  剛才問(wèn)了一下人,新建一個(gè)工程,然后把所有的C文件都導入里面,就沒(méi)有的問(wèn)題了,剩下一些語(yǔ)法錯誤。

  十二、7 的代碼大小限制的問(wèn)題,DEMO版超過(guò)4K不能編譯。

  D:PROGRA~1iccv7avrbinimakew -f mytest.mak

  D:PROGRA~1iccv7avrbinimakew.exe: Couldn't open mytest GetLastError() = 5

  Done: there are error(s). Exit code: 1

  (斑竹,我后來(lái)發(fā)現這好像是因為ICC編譯生成的某些文件有錯誤,把ICC生成的文件都刪掉,重新建立一個(gè)project,重新選擇Target,重新編譯就好了)

  十三、

  CODE:

  iccavr -o main -LD:avricclib -g -ucrtatmega.o -bfunc_lit:0x8c.0x10000 -dram_end:0x10ff -bdata:0x100.0x10ff -dhwstk_size:16 -beeprom:1.2048 -fihx_coff -S2 @main.lk D:PROTEU~1.7PROTEU~1.7JOHUmcuallCH375HFB.A -lcatmega

  Device 45% full.

  warning: COFF no struct tag '_CMD_PARAM' found for symbol index 1362

  Done.

  一個(gè)警告,搞不太清楚,以前starnewtech說(shuō)過(guò),好像是ram不夠用了。

  十四、重復定義 ,請在包含的頭文件里面用這種格式。

  #ifndef __config_H__

  #define __config_H__ 1

  //你的定義放這里。

  #endif



關(guān)鍵詞: ICC AVR

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>