这个为什么报错*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
时间: 2023-07-23 14:55:28 浏览: 143
这个警告通常出现在使用交叉引用和覆盖技术(overlay)的程序中。它表明程序中存在未被调用的代码段,无法被覆盖,因此被忽略。
具体来说,覆盖技术是一种将程序分成多个模块的方法。这些模块可以在运行时加载和卸载,从而节省内存空间。每个模块都被分配到内存中的不同区域,称为“覆盖区”。当程序需要调用某个模块时,该模块的代码被加载到内存中的覆盖区,并被执行。而未被调用的模块则不会被加载,从而节省内存空间。
当出现“UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS”警告时,意味着程序中存在一个未被调用的代码段,它不会被加载到内存中的任何覆盖区。这可能会导致程序出现异常行为或崩溃。
要解决这个问题,可以检查程序中的所有代码段,并确保它们都被正确的调用。如果有未被调用的代码段,可以将其删除或者将其与其他代码段合并。
相关问题
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_FILL_PICTURE?OLED *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAY_50MS?OLED *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?OLED_DISPLAY_ON?OLED *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?OLED_DISPLAY_OFF?OLED *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?OLED_ON?OLED *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_OLED_SHOWNUM?OLED *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_OLED_DRAWBMP?OLED Program Size: data=46.0 xdata=0 code=6157 creating hex file from "OLED"... OBJECT TO HEX FILE CONVERTER OH51 V2.7.0.0 COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2001 GENERATING INTEL HEX FILE: OLED.hex *** ERROR: UNKNOWN RECORD TYPE 49H *** OH51 ABORTED. "OLED" - 0 Error(s), 7 Warning(s). Build Time Elapsed: 00:00:01
这段信息包含了一些警告和一个错误。警告信息是由编译器生成的,表示某些代码段没有被调用,但是由于可能会被其他代码段调用,因此编译器没有将其从可执行文件中删除。这些警告信息通常不影响程序的正常运行,只是告诉你一些没有被使用的代码段被忽略了。
错误信息是由转换工具生成的,表示转换工具无法识别记录类型 49H。可能的原因是 HEX 文件格式出现了错误,或者转换工具版本不兼容。建议检查 HEX 文件格式是否正确,并尝试更新转换工具版本。
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS keil报错什么问题
这个错误通常是由于Keil编译器的内存管理机制引起的。当编译器发现某个段(segment)没有被调用(即在程序中没有被引用)时,它会将其标记为"UNCALLED SEGMENT",并在链接过程中被忽略掉。
这个问题可能是由于以下几个原因导致的:
1. 某个函数或变量没有被正确声明或定义,导致编译器无法识别它们。
2. 程序中存在一些无用的代码或数据,它们虽然存在,但从未被引用。
3. 程序中存在一些未被正确调用的函数或变量,导致编译器无法确定它们是否需要被链接进来。
解决这个问题的方法通常是通过对代码进行优化、整理和清理,以确保每个函数和变量都被正确声明和调用。同时,也可以通过修改编译器的内存管理参数来调整其行为,以避免出现这个错误。
阅读全文