如何向 IAR 中的 RAM 项目提供有关 ROM 的语义信息

问题描述

我正在尝试为基于 RAM 的图像制作一个 IAR 项目,其中包含将调用 ROM 代码代码。 这里的 ROM 是字面上的 ROM,而不是闪存。我知道我可以这样做,因为我有用于生成 ROM 的源 ELF 文件,并且我已经从 ROM 的 elf 中提取了符号并将它们提供给 IAR,这使链接器很高兴。问题是我以这种方式提供给 IAR 的符号信息只是一个符号名称到地址映射。

我希望能够实现的是向 IAR 提供更多语义信息,这样当我调试 RAM 映像并将其步入 ROM 时,我保留进行源代码级调试的能力。 有点像在应用程序域中单步执行 DLL 时保留完整语义调试的能力。在 IAR 中可以实现这样的事情吗?

链接器检查 ROM 和调用 RAM 之间的签名差异的能力并不重要,但仍然非常有价值。

出于好奇,这是否可以在其他工具中使用,例如 ARM GCC、Keil 等?

解决方法

这似乎可以使用 isymexport

此 PDF 包含有关该工具的信息: http://supp.iar.com/FilesPublic/UPDINFO/004916/arm/doc/EWARM_DevelopmentGuide.ENU.pdf