需要将const数据放置在特定位置,但该区域位于文本部分的中间。

需要将const数据放置在特定位置,但该区域位于文本部分的中间。,c,gcc,linker,C,Gcc,Linker,我需要在最终二进制文件中的精确位置(内部闪存)放置2KB常量数据。此位置当前位于内存的文本部分内 我能想到的唯一合乎逻辑的方法是拆分代码,以便在内存{..}定义中保留所需的区域,并显式地为其余代码提供新的节名 有一种非常优雅的方法可以做到这一点吗?如果您有一个自定义的嵌入式目标平台,您可能应该为该目标创建一个自定义链接器脚本。这样一个自定义脚本当然可以将初始化的常量数据放在任何它喜欢的地方,无论是在输出文件中,还是在“加载”文件(运行或编程到闪存)时使用不同的地址。是的。。你的链接器是你的朋友

我需要在最终二进制文件中的精确位置(内部闪存)放置2KB常量数据。此位置当前位于内存的文本部分内

我能想到的唯一合乎逻辑的方法是拆分代码,以便在内存{..}定义中保留所需的区域,并显式地为其余代码提供新的节名


有一种非常优雅的方法可以做到这一点吗?

如果您有一个自定义的嵌入式目标平台,您可能应该为该目标创建一个自定义链接器脚本。这样一个自定义脚本当然可以将初始化的常量数据放在任何它喜欢的地方,无论是在输出文件中,还是在“加载”文件(运行或编程到闪存)时使用不同的地址。是的。。你的链接器是你的朋友(或者,至少,不是一个死敌,尽管你从阅读精美手册和与脚本斗争中得出了任何结论:)。我知道这应该是一个定制的解决方案,我想了解不同的可能性。我考虑的一个方法是将文本部分放在要显式放置的2KB常量数据之前。然后放入2KB常量数据,随后所有剩余的文本部分都跟随它。。肯定是添加了新代码。