【发布时间】:2019-09-24 11:34:46
【问题描述】:
我有一个软件,它分为两个二进制文件(加载到不同的内存中)。
因此我有两个链接器文件。
一个二进制文件运行并将第二个二进制文件加载到另一个内存中,第二个二进制文件运行。
两个代码都使用了一个函数,它由第一个代码加载到 RAM 中,所以在第二个代码中我调用这个函数实际上是跳转到它在 RAM 中加载的地址(在链接器中第一个 SW 的文件我已经定义了一个特定的部分,我强制加载这个函数)。
目前,这种机制对我来说是正确的。
我的问题是,是否可以跳转到标签或符号而不是特定地址?
理想情况下,在我的链接器文件中,我会使用标签来定义地址,而在代码中我会引用该标签。
也就是说,编译器和链接器都会理解该标记并将其转换为地址。
因此,如果我更改链接器中的地址,我也不必更改 JUMP 指令。
非常感谢
注意:gcc-arm-none-eabi-4_9-2015q3
【问题讨论】:
-
创建一个链接器文件,在其中导出与您要使用的地址相同的符号?通过一些类型转换,您可以将该值转换为指向您可以调用的函数的指针。
-
@PVA,你基本上是说你想推出你自己的动态链接器?