EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
keil 是使用比较广泛的单片机开发环境,在使用的过程中,工程编译完毕后可能会出现错误或者警告。对于错误必须要改,但是对于警告而言,你可以忽略。但值得一提的是,搞技术的人多多少少都有点强迫症,如果把警告在那里放着,你看着肯定不舒服,对于经常出现的警告和错误我大体总结了一下,希望对大家能有所帮助。: @4 V/ p6 [( S2 L
1. Warning 280:’i’:unreferenced local variable" h0 C* G, F/ A
说明 局部变量 i 在函数中未作任何的存取操作;
; m6 \& a+ v" P解决方法 消除函数中 i变量的声明;% {1 w* m7 F3 B* K! l/ L5 ]
+ V/ @9 I* }2 x2 P8 B/ `7 W: _
2 Warning 206:’LED_Init’:missing function-prototype; m! V9 |0 s: `$ D
说明 LED_Init( )函数未作声明 或未作外部声明,所以无法给其他函数调用;
/ \# @8 `" D$ ^6 q4 \解决方法 将叙述LED_Init (void)写在程序的最前端声明,如果是其他文件的函数则要写成 extern void LED_Init (void),即作外部声明; 5 P8 z/ ?% j- @( W7 F- U
3 Compling :C:\8051\MANN.C. h! p. t u+ k3 k* p9 J% j
Error:318:can’t open file ‘led.h’8 N9 ?7 a- r" i' X% z" m+ J
说明 在编译 C:\8051\MANN.C 程序过程中 由于 main.c 用了指令#include “led.h”,但却找不该文件;
# f/ m7 u/ P8 ]解决方法 编写一个led.h 的包含档并存入到 c:\8051 的工作目录中; - J; D5 u1 d2 s0 ]4 a
4 Compling:C:\8051\LED.C
# |) _: l3 v- I3 DError 237:’Led_ON’:function already has a body3 P# d: H+ s% c Q
说明 Led_ON( )函数名称重复定义 即有两个以上一样的函数名称;0 \# Z2 S1 @: E( T( [
解决方法 修正其中的一个函数名称 使得函数名称都是独立的; `3 W. d. V* w: L" Y+ a8 P) j
5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS
" b" [% B2 ^3 C9 VSEGMENT: ?PR?_DELAYX1MS?DELAY
' i! Q: j$ J; P( d3 o4 x说明 DelayX1ms( )函数未被其它函数调用 也会占用程序记忆体空间;% p2 f( y6 e/ j/ D- F
解决方法 去掉 DelayX1ms( )函数 或利用条件编译#if …..#endif,可保留该函数并不编译; * @- e5 ?$ j) U4 s1 y
6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP# @2 T9 v8 Z) v7 o7 e0 ^- P1 l4 C
FROM : 0025H
]9 C1 A l2 y+ L3 kTO: 0025H0 E2 a+ {9 }$ p, d& { l
说明 外部资料ROM 的 0025H重复定义地址;) l# K* B# ^. x+ T- Q
解决方法 外部资料 ROM的定义如下;
2 H4 S K0 ~7 F- L3 \' r4 E" ?0 RPdata unsigned char XFR_ADC _at_0x25 其中 XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在 0x25 处并修正它;
) B8 z5 D8 t* K% q6 h7 WARNING 206:’DelayX1ms’: missing function-prototype
9 K! h: W) d0 F+ m( aC:\8051\INPUT.C
2 s; [3 w8 B2 WError 267:’DelayX1ms‘:requires ANSI-style prototype C:\8051\INPUT.C* W6 n& D8 }9 ^& e
说明 程序中有调用DelayX1ms 函数 但该函数没定义 即未编写程序内容或函数已定义但未作声明;' g1 ^$ B5 B) \- I6 H w
解决方法 编写 DelayX1ms 的内容 编写完后也要作声明或作外部声明可在 delay.h的包含档宣告成外部 以便其它函数调用;
4 h4 R8 S" Q8 n% G7 g8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL1 S- A9 y, H/ \ s1 i
SYMBOL:MUSIC38 Z" b) W# P( `0 w9 O7 U* h. q
MODULE:C:\8051\MUSIC.OBJ(MUSIC)6 T8 c+ A, D1 G$ @+ X& O; \
***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL
- w C) X' v( k- [) E5 a( TSYMBOL:MUSIC3
J- }% T1 b( u) l6 [MODULE:C:\8051\MUSIC.OBJ(MUSIC)% v) h E2 S: j
ADDRESS:0018H
3 ?$ R9 E# l0 k6 b( _3 K0 E说明 程序中有调用 MUSIC3函数,但未包含该函数的.c加入到工程中;0 I N2 [8 w9 ^2 i* w7 l+ x" \
解决方法:将包含MUSIC3函数的MUSIC.c文件添加到工程文件中去;
2 n+ z1 \- W* y3 w& V3 i" h
+ g/ S; N6 C; }, { |