原创 Keil C 编译器常见警告与错误信息的解决方

2009-9-28 22:02 1948 9 11 分类: MCU/ 嵌入式

Keil C 编译器常见警告与错误信息的解决方<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


1Warning 280:’i’:unreferenced local variable


说明局部变量i 在函数中未作任何的存取操作;


解决方法:消除函数中i 变量的宣告。


2 Warning 206:’Music<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3’:missing function-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 用了指令#include “beep.h”,但却找不到所致;


解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中。


4 Compling:C:\8051\LED.C  Error 237:’LedOn’:function 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 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


说明程序中有调用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 型别的定义说明如对编译出错感兴趣的网友能否把你们常遇到的错误信息收集起来并提出最终的解决办法加以归纳以期共享。

文章评论2条评论)

登录后参与讨论

gujunyi1_407560534 2009-9-30 21:05

可以,转发是可以的,不过要记住最重要是自己要有收获!

用户36869 2009-9-30 15:51

学习一下,请问能转发吗?
相关推荐阅读
gujunyi1_407560534 2011-03-22 16:43
NP0,X5R,X7R,Y5V释义及其用途
这个是按美国电工协会(EIA)标准,根据不同介质材料而分类。这类参数描述了电容采用的电介质材料类别,温度特性以及误差等参数,不同的值也对应着一定的电容容量的范围。具体来说,就是:X7R常用于容量为33...
gujunyi1_407560534 2011-03-22 16:29
转贴:电容的选型
从电子产品的设计到采购来看,无源元件只是一个配角,其在整个电子产品中所占的物料成本仅约一成,但电子产品中的无源元件数量却是最多的。以电容为例,从2G发展到3G,仅一部手机中的MLCC数量就从平均165...
gujunyi1_407560534 2011-01-28 12:34
手把手将你用PADS Layout 2007.2生成Gerber文件
        本文主要讲述如何利用PADS 2007.2 Layout生成Gerber文件,由于内容较多,所以不再一一列出,这里仅贴出里面第一页的内容,总共14页。需要的博友们可以下载后观看,如有问...
gujunyi1_407560534 2011-01-12 16:10
DxDesigner的两个使用技巧-你一定用得着,而且很有帮助
...
gujunyi1_407560534 2010-11-22 13:47
VCC、VDD、VEE、VSS释疑汇总
在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢?1、解释VCC:C=Circuit 表示电路的意思,即接入电路的电压;VDD:D=Device 表示器件的意思,即器件内...
gujunyi1_407560534 2010-11-17 12:23
晶体振荡器专题介绍
1、晶振的作用       晶振是晶体振荡器的简称,分为有源晶振和无源晶振两种,有源晶振无需外接匹配电容,只要加电即可输出一定频率的周期波形,所以有源晶振一般是四个引脚;无源晶振严格来说不能叫晶振,只...
我要评论
2
9
关闭 站长推荐上一条 /2 下一条