EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
keil 是使用比较广泛的 单片机开发环境,在使用的过程中,工程编译完毕后可能会出现错误或者警告。对于错误必须要改,但是对于警告而言,你可以忽略。但值得一提的是,搞技术的人多多少少都有点强迫症,如果把警告在那里放着,你看着肯定不舒服,对于经常出现的警告和错误我大体总结了一下,希望对大家能有所帮助。
! S, H7 t @6 n" e; A" O$ K1. Warning 280:’i’:unreferenced local variable 8 M" O, r/ V5 o& f
说明 局部变量 i 在函数中未作任何的存取操作;
$ k& R% Y% ?( W% `( J+ }( F. G解决方法 消除函数中 i变量的声明;
9 z8 |0 f3 b/ ~# K2 o7 }9 s( V
4 A/ h6 i5 g" ]2 Warning 206:’LED_Init’:missing function-prototype 6 t' c. v2 {- G# _
说明 LED_Init( )函数未作声明 或未作外部声明,所以无法给其他函数调用; : C! L0 @" g! E' D+ N( v
解决方法 将叙述LED_Init (void)写在程序的最前端声明,如果是其他文件的函数则要写成 extern void LED_Init (void),即作外部声明;
( t" L V8 O; L1 m$ C0 q' U* z& ^! ?3 Compling :C:\8051\MANN.C
! T* O u# D+ A+ L# s/ S1 nError:318:can’t open file ‘led.h’: B) M$ E3 L. l+ i
说明 在编译 C:\8051\MANN.C 程序过程中 由于 main.c 用了指令#include “led.h”,但却找不该文件;
6 h# C {* T- W解决方法 编写一个led.h 的包含档并存入到 c:\8051 的工作目录中;
' m4 z" d. o& f( i u ?
4 Compling:C:\8051\LED.C% D8 k0 x( a" M9 K6 r" y" v
Error 237:’Led_ON’:function already has a body
/ y5 X3 D# d+ ^% W& w* b说明 Led_ON( )函数名称重复定义 即有两个以上一样的函数名称;
9 ^4 Z: @- Z5 p; _& Y$ T& I解决方法 修正其中的一个函数名称 使得函数名称都是独立的; ) h! f. ]+ c* @' n' B
5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS3 n. R* V0 U4 f
SEGMENT: ?PR?_DELAYX1MS?DELAY
' Z/ U, ~& r! z1 `: A4 g说明 DelayX1ms( )函数未被其它函数调用 也会占用程序记忆体空间;* o& r% X Y# m1 f( r/ C. ?
解决方法 去掉 DelayX1ms( )函数 或利用条件编译#if …..#endif,可保留该函数并不编译;
" ?/ _# y! W6 R- |6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP
: W6 z: B# e" [0 m' T, Z* t( N+ LFROM : 0025H1 `- |# \/ i9 |, @8 _
TO: 0025H
& t: b* C V/ q1 ^- s7 R说明 外部资料ROM 的 0025H重复定义地址;
" Y+ i+ i3 }3 N2 @' ^4 ]1 N, Y解决方法 外部资料 ROM的定义如下;
2 f2 A9 W6 Y3 LPdata unsigned char XFR_ADC _at_0x25 其中 XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在 0x25 处并修正它;
. g3 ~' q. {: H. b) |" `: \
7 WARNING 206:’DelayX1ms’: missing function-prototype+ \5 h! ?% R3 y
C:\8051\INPUT.C6 a# e& A8 g9 z5 {! h1 R
Error 267:’DelayX1ms‘:requires ANSI-style prototype C:\8051\INPUT.C" w. L, r/ ?2 q' c% O7 C+ R5 M
说明 程序中有调用DelayX1ms 函数 但该函数没定义 即未编写程序内容或函数已定义但未作声明;
+ L2 f/ z( q+ S" z; K: G解决方法 编写 DelayX1ms 的内容 编写完后也要作声明或作外部声明可在 delay.h的包含档宣告成外部 以便其它函数调用;
, U% f' u2 w! M( K2 Y8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL
- o. {1 j: X/ X/ w0 |' t& N: `SYMBOL:MUSIC3
: U2 d. R! Q8 G( FMODULE:C:\8051\MUSIC.OBJ(MUSIC)
/ j% F+ y8 G' Z& y6 w***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL
) Y7 ]# H1 a, u6 S5 ?7 gSYMBOL:MUSIC3
2 c; ]3 t" ^& q3 j4 j! }0 l# a% UMODULE:C:\8051\MUSIC.OBJ(MUSIC)
6 a' i5 p# j' TADDRESS:0018H- o' u! `$ l4 l+ n
说明 程序中有调用 MUSIC3函数,但未包含该函数的.c加入到工程中;: s' u. H' H6 t$ W1 X, z8 D
解决方法:将包含MUSIC3函数的MUSIC.c文件添加到工程文件中去;
6 X) @* F; b/ Z* w1 d7 {7 F
& ^9 [/ b, ?6 |; J/ z J' ^8 g; V |