keil编译时出现错误和警告总结
(2018-04-11 03:22:41)
标签:
keil4编译警告error |
分类: STM32 |
1、ERROR L104: MULTIPLE PUBLIC DEFINITIONS重复定义
出现上述错误则是因为变量k重复定义,把你的头文件中的变量定义前加extern(只是变量声明不用初始化),再在某一个你要调用该变量的c文件的程序之前再定义(注意第一个调用的c文件要负责附带初始化该变量,其他调用的c文件就不需要初始化过程啦)
2、*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
解决办法: 说明:程序中有些函数(或片段)以前(调试过程中)从未被调用过,或者根本没有调用它的语句。 这条警告信息前应该还有一条信息指示出是哪个函数导致了这一问题。只要做点简单的调整就可以。不理它也没什么大不了的。
3、'DATA':SEGMENT TOO LARGE
解决办法:(1)内部直接寻址段使用溢出,可以将Option
(2)数据段超出芯片内部RAM范围,把一些数据变量放到外部数据存储器中去就可以了。
4、Limit:0800h BYTES
解决办法:2K限制说明你的KEIL不是注册版,你到网上找个注册机,算个号,填到KEIL里就能解开这个限制了。
5、破解keil软件注册报错:ERROR R208: RENEW LICENSE ID CODE (LIC)
解决办法:我电脑装上Keil C51 v8.02后,无论如何都不能激活成功,添加license ID一直提示“ ERROR R208: RENEW LICENSE ID CODE (LIC)”。改用修改TOOLS.INI文件的方法:找到keil安装目录下的TOOLS.INI文件,打开它,在最下面写上这一行IC0=LSXJ7-EDJF2-DQA02-3QVZL-FRG8T-C6WID(注册码可以用你的Keil_lic_v2.exe生成),保存退出,然后点 File 下的 License Management 显示已经注册成功。
调试后,提示2K代码的限制。这说明Keil其实还没有注册成功。同时编译时还会报错!应用程序错误。
关闭所有网络连接,然后进行注册方可。。。。
6、C8051F020 下载器JTAG U-EC5无法下载
解决办法:一种软件对USB口调试器(EC5和ToolStick)进行复位和固件升级。(如果没有显示设备序列号,可以重插上EC5后,点Refresh list),之后点Updata Fireware即可更新为最新固件。
7、keil\tools.ini.file could not be found
解决办法:那是因为keil软件没有安装好,重新安装一遍就好了。
8、requires ansi-style prototype
解决办法:原因应该是:你的主函数在调用该函数时,找不到函数原型
1)提示无M51文件
编译时候提示:
F:\...\XX.M51
File has been changed outside the editor,
reload
解决方法:
重新生成项目,产生STARTUP.A51即可。
(2)L15重复调用
***WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT:
CALLER1:
CALLER2:
解决方法:
-------------------------------------------------
五年专业设计经验,嵌入式linux,arm,stm32,fpga,电路PCB板,网络,GPS差分定位,等等解决方案,代码设计,联-系-方-式-微-信 : 253376326
--------------------------------------------------