Keil C51编译错误警告解决方法积累

发布者:快乐时刻最新更新时间:2016-12-12 来源: eefocus关键字:Keil  C51  编译错误警告 手机看文章 扫描二维码
随时随地手机看文章

1. Warning 280:’i’:unreferenced local variable
说明局部变量i 在函数中未作任何的存取操作。
解决方法消除函数中i 变量的宣告。
2. Warning 206:’Music3’: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 型别的定义

相关描述:
Keil C51编译错误总结:http://www.laogu.com/wz_2531.htm
Keil C51编译错误警告解决方法积累:http://blog.csdn.net/rtgchym/article/details/6209933
Keil C51编译错误:http://zlgc.usx.edu.cn/kc/dgdz/news_more.asp?id=1206
Keil C51错误的解决办法:http://wenku.baidu.com/view/9aac92257375a417866f8fa7.html
C51-keil编译常见错误和警告处理:http://www.docin.com/p-615871167.html

关键字:Keil  C51  编译错误警告 引用地址:Keil C51编译错误警告解决方法积累

上一篇:Keil C51与Keil RealView MDK常见错误
下一篇:Keil C51与Keil ARM共存

推荐阅读最新更新时间:2024-03-16 15:24

C51单片机学习笔记(一)——搭建开发环境及烧写工具
1.搭建软件开发环境及使用(Keil uVision) 目前常用的有Keil uVision2、Keil uVision3、Keil uVision4,这些软件可以很方便的在网络上下载,我这里使用的是Keil uVision4. ** 1. 创建一个工程:(以点亮一个发光二极管为例) 菜单点击Project - New uVision Project ,给工程命名、选择储存位置然后保存 选芯片,根据自己的单片机型号选择对应的芯片,我使用的是AT89C52 之后弹出 是否将系统自带的初始化文件添加到工程?一般选择是,这是主界面左边Project面板会显示新建的工程。 新建源程序文件 点击File - New ,在软件
[单片机]
<font color='red'>C51</font>单片机学习笔记(一)——搭建开发环境及烧写工具
S3C2440的Keil启动文件S3C2440.s添加中断配置
前言 本文主要描述如何在Keil自带的S3C2440.s文件中添加中断配置及中断地址映射,从而可以在中断产生时跳转到用户代码中的中断服务函数。目前在TQ2440开发板是实测可用。 工程源代码下载 本文所有代码都是截取代码,“…”代表其还有上下文。可根据代码中上下文的残缺部分找到该代码添加的位置。 一,添加中断相关寄存器地址符号映射 因为原始S3C2440.s文件中不含中断相关寄存器的地址,所以需要在开头添加: ... ; * RAM_INTVEC: when set the startup code copies exception vectors ; * from execution address to
[单片机]
基于C51单片机的按键识别原理图
  每按下一次开关 SP1 ,计数值加 1 ,通过 AT89S51 单片机的 P1 端口的 P1.0 到 P 1.3显示出其的二进制计数值。   ( 1 . 把 “ 单片机系统 ” 区域中的 P3.7/RD 端口连接到 “ 独立式键盘 ” 区域中 的SP1 端口上;   ( 2 . 把 “ 单片机系统 ” 区域中的 P1.0 - P1.4 端口用 8 芯排线连接到 “ 八路发光二极管指示模块 ” 区域中的 “ L1 - L8 ” 端口上;要求, P1.0 连接到 L1 ,P1.1 连接到 L2 , P1.2 连接到 L3 , P1.3 连接到 L4 上。
[单片机]
基于<font color='red'>C51</font>单片机的按键识别原理图
单片机定时器T0测量外部脉冲时间C51程序
数码管显示部分电路图 51单片机程序代码: #include reg51.h #define UCHAR unsigned char #define UINT unsigned int sbit KEY=P3^2; UCHAR table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; UINT conter; void inittime(void) { KEY=1; conter=0; TMOD=0x09; TH0=0X00; TL0=0X00; EA=1;
[单片机]
单片机定时器T0测量外部脉冲时间<font color='red'>C51</font>程序
KEIL for ARM 自带的例子程序虚拟串口调试
1.先安装Keil for ARM,可参考我上篇博文 Keil uVision4注册机 下载及安装 2.然后如下图双击 3.然后用 VSPD 虚拟2个串口(com1 ,com2) 4。然后在 kiel 的命令行输入 MODE COM1 4800,0,8,1 ASSIGN COM1 5.然后在串口调试助手中输入进行如下设置,并运行程序,hello world 就出现了
[单片机]
<font color='red'>KEIL</font> for ARM 自带的例子程序虚拟串口调试
c51: 串口通信2
一、程序功能 pc向c51发送字符串 hello ,c51收到 hello 表示通信测试正常,点亮P1.0脚。向pc发送 ok 二、代码 /*程序功能: pc向c51发送字符串 hello ,c51收到 hello 表示通信测试正常,点亮P1.0脚。向pc发送 ok */ #include reg52.h #define uchar unsigned char //定义变量 uchar recbuf ; //接收数据缓存 uchar recnum; //定义引脚,P1口的0脚控制指示灯, //light=0,表示指示灯亮,light=
[单片机]
C51的数据存储区域类型有哪些?
C51的数据存储区域类型有哪些?各种存储区域类型是哪种存储空间,存储范围是什么?如何将变量定义存储到确定的位置? 答:bit 片内数据区的位寻找区,位地址0x00~0x7f,128位(字节地址0x20~0x2f) data 直接寻址片内数据区的低128字节 bdata 片内数据区的位寻址区0x20~0x2f,也可字节访问,16字节 idata 间接寻址片内数据区的256字节,与MOV @Ri 对应 pdata 分页寻址片外数据区的256字节,与MOVX @Ri 对应,P2不变 xdata 片外数据区的全空间,64KB code 全部程序存储空间,64KB 绝对定位关键字_at_ ,指针,库函数的绝对定位宏。
[单片机]
keil c51中定义XDATA,CODE等类型的结构体方法
定义CODE型: typedef struct MenuItem { int i; unsigned char j; }code _MenuItem; //数据存放于FLASH中 定义XDATA型: typedef struct MenuItem { int i; unsigned char j; }xdata _MenuItem; //数据存放在外部RAM中 使用示例: _MenuItem m0_main ; //定义一个_MenuItem 类型的结构体数组
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved