Keil C 編譯器常見警告與錯誤資訊的解決方法
1. Warning 280:'i':unreferenced local variable
說明區域變數i 在函數中未作任何的存取操作解決方法消除函數中i 變數的宣告

2 Warning 206:'Music3':missing -prototype
說明Music3( )函數未作宣告或未作外部宣告所以無法給其他函式呼叫
解決方法將敘述void Music3(void)寫在程式的最前端作宣告如果是其他檔的函數則要寫成extern void Music3(void),即作外部宣告

3 Compling :C:\8051\MANN.C
Error:318:can't open file 'beep.h'
說明在編譯C:\8051\MANN.C 程式過程中由於main.c 用了指令#i nclude "beep.h",但卻找不到所致解決方法編寫一個beep.h 的包含檔並存入到c:\8051 的工作目錄中

4 Compling:C:\8051\LED.C
Error 237:'LedOn': already has a body
說明LedOn( )函數名稱重複定義即有兩個以上一樣的函數名稱
解決方法修正其中的一個函數名稱使得函數名稱都是獨立的

5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAYX1MS?DELAY
說明DelayX1ms( )函數未被其它函式呼叫也會佔用程式記憶體空間解決方法去掉DelayX1ms( )函數或利用條件編譯#if …..#endif,可保留該函數並不編譯

6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP
FROM : 0025H
TO: 0025H
說明外部資料ROM 的0025H 重複定義位址
解決方法外部資料ROM 的定義如下Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 變數的名稱為0x25,請檢查是否有其它的變數名稱也是定義在0x25 處並修正它

7 WARNING 206:'DelayX1ms': missing -prototype
C:\8051\INPUT.C
Error 267 :'DelayX1ms ':requires ANSI-style prototype C:\8051\INPUT.C
說明程式中有呼叫DelayX1ms 函數但該函數沒定義即未編寫程式內容或函數已定義但未作宣告
解決方法編寫DelayX1ms 的內容編寫完後也要作宣告或作外部宣告可在delay.h 的包含檔宣告成外部以便其它函式呼叫

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 則區域變數先使用工作寄存器R2~R7 作暫存當記憶體不夠用時則會
以data 型別的空間作暫存的個數超過0x7f 時就會出現地址不夠的現象
解決方法將以data 型別定義的公開變數修改為idata 型別的定義

arrow
arrow
    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()