这是什么意思啊 KEIL老是提示这个

sunnet2008 2010-08-23 12:09:42
这是什么意思啊
试用KEIL老是提示这个

Build target 'Target 1'
assembling STARTUP.A51...
compiling Text1.c...
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?KEYON?TEXT1
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_KEYNUM?TEXT1
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?SETKEY?TEXT1
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?UNDOKEY?TEXT1
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?DELAYKEY?TEXT1
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: IDATA
SEGMENT: ?STACK
LENGTH: 0001H
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: IDATA
SEGMENT: ?STACK
LENGTH: 0001H
*** ERROR L119: REFERENCE MADE TO ERRONEOUS SEGMENT
SEGMENT: ?C_C51STARTUP
MODULE: STARTUP.obj (?C_STARTUP)
ADDRESS: 0B8DH
Program Size: data=129.0 xdata=0 code=1528
Target not created
...全文
1847 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbing7 2010-08-24
  • 打赏
  • 举报
回复
Program Size: data=129.0 xdata=0 code=1528

DATA溢出,适当调整变量的存放区域。或者换更具有大存储空间的片子

另外那几个函数没有在工程里,把相应的LIB文件或OBJ文件再或源文件加入到工程里再编译即可
sunnet2008 2010-08-24
  • 打赏
  • 举报
回复
谢谢大家 结贴给分
schlafenhamster 2010-08-23
  • 打赏
  • 举报
回复
因为C51的栈有限,Keil使用变量重用的方法来解决这个问题,所以每个函数调用时都要分析其中的变量,如果有一个函数写了而从不调用,则编译器就不分析了,但给你一个警告。
你可以忽略这个警告,也可以把不调用的那个函数注释调(#if 0 #endif)
sunnet2008 2010-08-23
  • 打赏
  • 举报
回复
如果我还需要定义更多的变量呢??
sunnet2008 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pcvvv 的回复:]
data=129.0 超过了128B上限
选择compact 或者large模式
[/Quote]
pcvvv 更详细一些呢???
pcvvv 2010-08-23
  • 打赏
  • 举报
回复
data=129.0 超过了128B上限
选择compact 或者large模式
  • 打赏
  • 举报
回复
警告是因为存在没有被调用的函数,那个错误是你定义的局部变量超过了单片机栈的的大小。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧