找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1900|回复: 3
收起左侧

keil 警告WARNING L13: RECURSIVE CALL TO SEGMENT,如何解决

[复制链接]
ID:743654 发表于 2021-1-4 17:11 | 显示全部楼层 |阅读模式
10黑币
本帖最后由 cheney03 于 2021-1-4 17:14 编辑

2.png 1.png
如图,是我函数调用数量过大吗,如何解决?

下面是我其中的一个子函数,通过按键判断调用别的函数

void Host_Debug_Current_Debug() //主机调试菜单——探头电流调试
{

  Uint flag=0;
  flag++;
  while(flag==1)
        
   {  
         Key_scan();
         if(KeyState)
          {
           KeyState=0;
           if(KEY==KEY_OK)
             {
               Disp_Probe_Current_Debug();
               Probe_Current_Debug();//探头电流调试
                  
         }         
           if(KEY==KEY_UP)
             {
                   Disp_Host_Debug();
                   Host_Debug();//主机调试
                 }
           if(KEY==KEY_DOWN)
             {
                   Disp_Host_Debug_Distance_Debug();
                 Host_Debug_Distance_Debug();//探头提离调试
                 
                 }

                  
           flag=0;
           }
        }
}



回复

使用道具 举报

ID:235200 发表于 2021-1-4 20:19 | 显示全部楼层
只给了一个函数不好判断,只有把整个程序一起编译才可判断出来
回复

使用道具 举报

ID:743654 发表于 2021-1-5 08:45 | 显示全部楼层
csmyldl 发表于 2021-1-4 20:19
只给了一个函数不好判断,只有把整个程序一起编译才可判断出来

其他函数类似,就有很多这样的函数,然后通过按键状态判断调用,是不是我程序耦合度过高,有时还会有溢出情况。
回复

使用道具 举报

ID:739545 发表于 2021-1-5 10:02 | 显示全部楼层
应该是递归函数嵌套过多导致,一个函数一般嵌套不要超过3次
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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