【Keil】使用Keil5时出现的错误(持续更新)
目录
1、常见编译错误
- error C141: `syntax error near 'extern', expected 'hdata'`
(错误C141:在“extern”附近有语法错误,应为“hdata”)
这种错误可能的原因有很多,比较常见且难以发现的便是在调用头文件的时候被调用的头文件写的不完善而导致编译器对下一句进行报错让人摸不着头脑。
- *** WARNING : UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
***警告:未调用段,覆盖过程忽略
存在已定义函数未调用,很常见的警告
- *** WARNING : MULTIPLE CALL TO SEGMENT
***警告:多次调用分段
通常出现在中断和主函数中同时调用,编译器提示可能会出现逻辑错误。
- error C247: non-address/-constant initializer
不能使用变量给变量赋初值。
- error: L6236E: No section matches selector - no section to be FIRST/LAST.
错误:L6236E:没有与选择器匹配的节-没有第一个/最后一个节。
未添加启动文件
- 自动内存分配设置问题
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: ?DT?SYS
LENGTH: 0004H
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: ?DT?_DS1302BURSTREAD?DS1302
LENGTH: 0003H
这是keil在编译时会自动将你的局部变量存储在Memory Model设置的区域,一旦局部变量过多会产生错误。 这时候可以设置变量存储在PDATA或者XDATA,但这会在一定程度上拖慢执行速度。
- error: #268: declaration may not appear after executable statement in block
错误:#268:声明不能出现在块中的可执行语句之后
将定义、声明语句放在函数首行即可
2、常见逻辑错误
- 在对使用DAC时要注意变量是否会溢出,通常输出的电压都是带有小数点的,如果是用8位精度的DAC那么别拿要注意变量类型的转换,推荐在计算时使用double或者float型变量,判断时可以强制类型转换成int型,输出再转换成char型。
TIPS:强制类型转换保低不保高。
3、常见仿真错误
Connecting to target system lost!please reset your target system and try again.
版权声明:本文为weixin_43444989原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。