我正在测试一个为Renesas RL78微控制器编写的C软件。软件还在开发中,所以有些功能还没有实现,但还没有被调用。因此,链接器删除了这些功能,该链接器输出清单中的下列条目:
CODE
Segment part 42. NOT NEEDED.
LOCAL ADDRESS
===== =======
function_name我的目标是在目标系统上执行这些函数的单元测试,所以我需要将代码显示在输出ELF文件中。我如何告诉链接器保留未使用的函数?我已经尝试过将优化级别设置为None,并将模块类型设置为Program或Library。我还定义了一个名为CODE的代码段。所有这些操作都没有对链接器输出产生预期效果。
我不能修改源代码(从技术上讲,我可以修改我想要的任何东西,但我不能提交任何东西),所以调用main()所需的所有函数都不是一种选择。
发布于 2016-03-31 08:21:09
我找到了相关的技术注释,它建议如下:
因为我使用了xlink,所以我尝试了第一个选项,并且成功了。下面是快速引用的选项:
-gsymbol1[,symbol2,symbol3,…] Requires global entries下面是如何在IDE中设置该选项:

由于M.M问我如何使用代码的其余部分不调用的单元测试函数,下面是我的调试器的屏幕截图。基本上,一旦到达主循环,它就停止目标,为函数创建一个人工堆栈框架并调用它。

https://stackoverflow.com/questions/36313006
复制相似问题