首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何迫使IAR链接器保持未使用的功能?

如何迫使IAR链接器保持未使用的功能?
EN

Stack Overflow用户
提问于 2016-03-30 15:16:01
回答 1查看 2.2K关注 0票数 1

我正在测试一个为Renesas RL78微控制器编写的C软件。软件还在开发中,所以有些功能还没有实现,但还没有被调用。因此,链接器删除了这些功能,该链接器输出清单中的下列条目:

代码语言:javascript
运行
复制
CODE
  Segment part 42. NOT NEEDED.
       LOCAL                   ADDRESS         
       =====                   =======         
       function_name

我的目标是在目标系统上执行这些函数的单元测试,所以我需要将代码显示在输出ELF文件中。我如何告诉链接器保留未使用的函数?我已经尝试过将优化级别设置为None,并将模块类型设置为Program或Library。我还定义了一个名为CODE的代码段。所有这些操作都没有对链接器输出产生预期效果。

我不能修改源代码(从技术上讲,我可以修改我想要的任何东西,但我不能提交任何东西),所以调用main()所需的所有函数都不是一种选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-31 08:21:09

我找到了相关的技术注释,它建议如下:

  • IAR链接器-g选项
  • IAR ILINK链接器--保留选项
  • 在汇编程序中使用REQUIRE关键字
  • 使用__root扩展关键字

因为我使用了xlink,所以我尝试了第一个选项,并且成功了。下面是快速引用的选项:

代码语言:javascript
运行
复制
-gsymbol1[,symbol2,symbol3,…] Requires global entries

下面是如何在IDE中设置该选项:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36313006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档