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. 附件下载:
分享嵌入式软件、硬件知识;