keil 是使用比較廣泛的單片機開發環境,在使用的過程中,工程編譯完畢后可能會出現錯誤或者警告。對于錯誤必須要改,但是對于警告而言,你可以忽略。但值得一提的是,搞技術的人多多少少都有點強迫癥,如果把警告在那里放著,你看著肯定不舒服,對于經常出現的警告和錯誤我大體總結了一下,希望對大家能有所幫助。 1. Warning 280:’i’:unreferenced local variable 說明 局部變量 i 在函數中未作任何的存取操作; 解決方法 消除函數中 i變量的聲明; 2 Warning 206:’LED_Init’:missing function-prototype 說明 LED_Init( )函數未作聲明 或未作外部聲明,所以無法給其他函數調用; 解決方法 將敘述LED_Init (void)寫在程序的最前端聲明,如果是其他文件的函數則要寫成 extern void LED_Init (void),即作外部聲明; 3 Compling :C:\8051\MANN.C Error:318:can’t open file ‘led.h’ 說明 在編譯 C:\8051\MANN.C 程序過程中 由于 main.c 用了指令#include “led.h”,但卻找不該文件; 解決方法 編寫一個led.h 的包含檔并存入到 c:\8051 的工作目錄中; 4 Compling:C:\8051\LED.C Error 237:’Led_ON’:function already has a body 說明 Led_ON( )函數名稱重復定義 即有兩個以上一樣的函數名稱; 解決方法 修正其中的一個函數名稱 使得函數名稱都是獨立的; 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 function-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 說明 程序中有調用 MUSIC3函數,但未包含該函數的.c加入到工程中; 解決方法:將包含MUSIC3函數的MUSIC.c文件添加到工程文件中去; |