一、Keil官网解决办法链接

LX51: WARNING L48: IGNORED RECURSIVE CALL
(忽略的递归调用)

二、原文中文翻译

本文内容适用于以下版本:

  • PK51 version 9.60
  • PK51 version 9.60a
  • LX51 version 4.66.97.0
1. 警告提示:

当使用PK51 v9.60(a)的链接器LX51(v4.66.97.0)时,可能会看到大量无用的L48警告

*** WARNING L48: IGNORED RECURSIVE CALL
    CALLED:  FUNCTION2/MODULE
    CALLER:  FUNCTION1
2. 产生原因:

当使用LX51(v4.66.97.0)的C编译优化等级9(Common Block Subroutines) 或以上时,可能会出现这种无用的警告。

优化等级9或以上时,编译器提取相同的代码段(*.LST文件中的 L?[num]) ,链接器会把这些代码段错误的解释为函数入口;

因此,链接器会检测出并不存在的函数依赖关系,并产生警告提示。

3. 解决办法:

LX51(v4.66.99.0)和更新的版本中,已经解决这个问题。文末附件为LX51.exe(v4.66.99.0)。

下载并解压LX51.exe文件,替换C:\Keil_v5\C51\BIN文件夹中的LX51.exe即可;

如果Keil安装在其他路径,找到对应文件进行替换。

4. 版本说明

这个问题仅出现在LX51(v4.66.97.0)中已经解决,除了PK51 V9.60(a)的其他版本中未发现这个问题;

5. 发行说明

LX51(v4.66.99.0)和LX51(v4.66.97.0)唯一的改变就是这个L48警告,可以在PK51 V9.60a的发行说明中找到备注;

Corrected: somehow not only function names were listed in the call tree and warning L48: IGNORED RECURSION, CALL REMOVED appeared

注意:附件LX51(v4.66.99.0)的发行日期是2019.12,也就是说,为了使用这个版本,keil的许可证日期必须在2019.12以后。

6. 更多信息:
7. 附件下载:

Keil官网下载LX51.exe (需要填写相关信息)
关注作者公众号:回复LX51(v4.66.99.0),获取百度网盘下载链接。

关于作者

微信公众号:萤火虫的电子笔记

分享嵌入式软件、硬件知识;

关注8051单片机、STM32、Linux、AltiumDesigner、Vscode、Keil和物联网等相关领域。

欢迎转发,请注明出处及作者。关注微信公众号,获取最新文章动态。
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐