在不更新C文件的情况下将C文件内容分配到特定内存中

时间:2013-11-29 17:16:52

标签: c compiler-construction

我正在使用Windriver编译器套件(5.9.3),而我正在使用C编程。

我想将包含在一个H / C文件中的常量变量放入RAM内存


约束:

  1. 我无法手动修改H / C文件,因此我无法添加编译指示来定义要在我的链接器中使用的部分。
  2. H / C文件仅包含常量声明
  3. 我的所有代码都位于ROM中并在启动时加载到RAM中

  4. 变量声明如下:

    H档案:extern const int toto;

    C档案:const int toto = 1;


    解决方案吗

    默认情况下,常量称为“。text”部分,因此我使用-Xconst-in-text = 4编译器选项将常量放在“.data”部分中。 然后我将所有“.data”部分分配到RAM内存中。问题是我将所有常量都放在RAM内存中,而不仅仅是定义到我的H / C文件中的常量。

    我已经找到了一些选项,只能将我的H / C文件中的常量定位到RAM内存中,但我无法成功。我看到的唯一选择是修改我的makefile并使用-Xconst-in-text = 4选项编译我的C / H文件,并且不使用此选项编译所有其他文件。这样就可以了解我正在寻找一种解决方案,它允许我使用-Xconst-in-text = 4选项编译所有文件。

    你有解决方案吗?

    您知道我是否可以告诉链接器将除一个文件以外的所有文件的所有部分放入特定的内存中?

    您是否认为可以创建一个包含我无法更改的H / C文件的H / C文件,并在此文件中使用“pragma define section”(并且此pragma应用于包含的变量)?< / p>

    由于

0 个答案:

没有答案