找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 16541|回复: 4
收起左侧

为什么keil提示警告WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

[复制链接]
ID:320097 发表于 2018-5-1 21:43 | 显示全部楼层 |阅读模式
  我是初学者,看了半天程序应该没啥毛病呀,问题是编译器提示警告,基础东西搞不定,请教大师些
Build target '目标 1'
assembling STARTUP.A51...
compiling led3.c...
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?DELAY?LED3
Program Size: data=9.0 xdata=0 code=44
"led3" - 0 Error(s), 1 Warning(s).

  1. #include<reg52.h>
  2. sbit led1=P1^2;
  3. sbit led2=P1^3;
  4. void delay();
  5. void main()
  6. {
  7.    while(1);
  8.    {
  9.     led1=0;
  10.     led2=1;
  11.     delay();
  12.     led1=1;
  13.     led2=0;
  14.     delay();
  15.    }
  16. }

  17. void delay()
  18. {
  19.   unsigned int i,j;
  20.    for(i=500;i>0;i--)
  21.     for(j=114;j>0;j--);
  22. }
复制代码


回复

举报

ID:319871 发表于 2018-5-1 23:23 来自触屏版 | 显示全部楼层
L16警告就是告诉你有未被显式调用的程序段,由于连接器并不能确定是否有隐式调用(例如通过函数指针或者手工入出栈强制跳转之类的形式),所以该程序段占用的RAM空间都不得不独立保留,有可能造成额外的空间浪费。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

举报

ID:89528 发表于 2018-5-2 00:06 | 显示全部楼层
while(1);这句话多了分号,加上分号后,该语句后的程序不会被执行。

评分

参与人数 2黑币 +25 收起 理由
wenzedong + 5 赞一个!
admin + 20 回帖助人的奖励!

查看全部评分

回复

举报

ID:305706 发表于 2018-5-2 11:21 | 显示全部楼层
while(1);后面无法执行到
回复

举报

ID:320097 发表于 2018-5-2 21:22 | 显示全部楼层
cx301 发表于 2018-5-2 00:06
while(1);这句话多了分号,加上分号后,该语句后的程序不会被执行。

原来是这样,谢谢
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表