keil中常見(jiàn)的幾種警告,當然,相對于過(guò)錯的,警告的程度不及過(guò)錯的嚴重性,有時(shí)候忽略,會(huì )呈現意想不到的過(guò)錯。先看看常見(jiàn)的幾種過(guò)錯,分析出來(lái)現的原因。
1. Warning 280:’i’:unreferenced local variable
闡明 局部變量 i 在函數中未作任何的存取操作
解決方法 消除函數中 i變量的宣告
2 Warning 206:’Music3’:missing function-prototype
闡明 Music3( )函數未作宣告 或未作外部宣告 所以無(wú)法給其他函數調用
解決方法 將敘述void Music3(void)寫(xiě)在程序的最前端作宣告 假如是其他文件的函數則要寫(xiě)成 extern void Music3(void),即作外部宣告
3 Compling :C:\8051\MANN.C
Error:318:can’t open file ‘beep.h’
闡明 在編譯 C:\8051\MANN.C 程序過(guò)程中 因為 main.c 用了指令#include “beep.h”,但卻找不到所致
解決方法 編寫(xiě)一個(gè) beep.h 的包括檔并存入到 c:\8051 的作業(yè)目錄中
4 Compling:C:\8051\LED.C
Error 237:’LedOn’:function already has a body
闡明 LedOn( )函數稱(chēng)號重復界說(shuō) 即有兩個(gè)以上相同的函數稱(chēng)號
解決方法 批改其中的一個(gè)函數稱(chēng)號 使得函數稱(chēng)號都是獨立的
5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAYX1MS?DELAY
闡明 DelayX1ms( )函數未被其它函數調用 也會(huì )占用程序記憶體空間
解決方法 去掉 DelayX1ms( )函數 或運用條件編譯#if …..#endif,可保存該函數并不編譯
6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP
FROM : 0025H
TO: 0025H
闡明 外部材料ROM 的 0025H重復界說(shuō)地址
解決方法 外部材料 ROM的界說(shuō)如下 Pdata unsigned char XFR_ADC _at_0x25 其中 XFR_ADC 變量的稱(chēng)號為0x25,請查看是否有其它的變量稱(chēng)號也是界說(shuō)在 0x25 處并批改它
7 WARNING 206:’DelayX1ms’: missing function-prototype
C:\8051\INPUT.C
Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\8051\INPUT.C
闡明 程序中有調用DelayX1ms 函數 但該函數沒(méi)界說(shuō) 即未編寫(xiě)程序內容或函數已界說(shuō)但未作宣告
解決方法 編寫(xiě) DelayX1ms 的內容 編寫(xiě)完后也要作宣告或作外部宣告 可在 delay.h的包括檔宣樂(lè )成外部 以便其它函數調用
8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL
SYMBOL:MUSIC3
MODULE:C:\8051\MUSIC.OBJ(MUSIC)
***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL:MUSIC3
MODULE:C:\8051\MUSIC.OBJ(MUSIC)
ADDRESS:0018H
闡明 程序中有調用 MUSIC 函數 但未將該函數的含擴檔 C 加入到工程檔Prj 作編譯和銜接
解決方法 設 MUSIC3 函數在 MUSIC C里 將 MUSIC C添加到工程文件中去
9 ***ERROR 107:ADDESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: _DATA_GOUP_
LENGTH: 0018H
***ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: VOLUME
MODULE: C:\8051\OSDM.OBJ(OSDM)
ADDRESS: 4036H
闡明 data 存儲空間的地址規模為 0~0x7f,當共用變量數目和函數里的局部變量 假如存儲模式設為SMALL 則局部變量先運用作業(yè)寄存器R2~R7作暫存 當存儲器不行用時(shí)則會(huì )以 data型別的空間作暫存的個(gè)數超越 0x7f 時(shí)就會(huì )呈現地址不行的現象
解決方法 將以 data 型別界說(shuō)的公共變量修改為 idata型別的界說(shuō)
10 “*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL”
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
假如你在用C51編譯器呈現上面的警告,這個(gè)僅僅初學(xué)者和大意者才會(huì )犯的過(guò)錯:沒(méi)把C文件添加到項目中!
別的,還有可能是因為存在沒(méi)有被調用的現已界說(shuō)的函數,或許相關(guān)的現已界說(shuō)的變量沒(méi)有運用。
“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL”
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
假如你在用C51編譯器呈現上面的警告,這個(gè)僅僅初學(xué)者和大意者才會(huì )犯的過(guò)錯:沒(méi)把C文件添加到項目中!
別的,還有可能是因為存在沒(méi)有被調用的現已界說(shuō)的函數,或許相關(guān)的現已界說(shuō)的變量沒(méi)有運用。
“*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL”
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
假如你在用C51編譯器呈現上面的警告,這個(gè)僅僅初學(xué)者和大意者才會(huì )犯的過(guò)錯:沒(méi)把C文件添加到項目中!
別的,還有可能是因為存在沒(méi)有被調用的現已界說(shuō)的函數,或許相關(guān)的現已界說(shuō)的變量沒(méi)有運用。
說(shuō)明:本頁(yè)面文章由()整理發(fā)布.文章地址: http:///gongsixinwen/280.html
|