gnu非连续内存区域的链接器部分

dis*_*her 8 memory linker gnu regions

我正在尝试编写一个链接描述文件,将一个节内容写入两个非连续的内存区域.

我在这个邮件列表中找到了一个旧线程:"ld链接器脚本和非连续内存区域" http://sourceware.org/ml/binutils/2012-01/msg00188.html

我知道C28x编译器的一个特性就是这个问题是将这些部分拆分成多个内存段:(带或函数)

SECTIONS {.text:{*(.text)} >> FLASH1 | FLASH3}

这里描述:http: //processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

我试过没有成功.目前我必须手动填充第一个内存区域.但是很难搜索部分代码,我将来不会改变它,并且完全适合并填充第一个内存区域.

是否实现了GNU链接器中的这种功能?或者有没有人有更好的想法如何解决这个问题?

Chr*_*ins 1

我认为最简单的方法(也许是唯一的方法)是将您的部分分成两个部分,然后将一个部分分配给第一个内存区域,将第二个部分分配给第二个内存区域。

您可能已经看到了这一点,但这是链接脚本的非常简洁的描述: http://www.math.utah.edu/docs/info/ld_3.html

  • 我知道这是一个非常老的问题,但是有没有一种好的方法可以将其分成两个部分,而无需手动将 X 映射到 A 部分,将 Y 映射到 B 部分?我有三个不连续的内存来放置整个程序(.text、.data 和 .bss),并且将它们分开是很困难的。 (2认同)