快捷搜索: 王者荣耀 脱发

KEIL/LX51: WARNING L48: IGNORED RECURSIVE CALL 解决办法

一、Keil官网解决办法链接

(忽略的递归调用)

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

    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_v5C51BIN文件夹中的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. 更多信息:

    Refer to in the LX51 User’s Guide. Refer to for C51 Version 9.60a.

7. 附件下载:

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

经验分享 程序员 微信小程序 职场和发展