Arrays 如何为常量数组(C30编译器)指定内存位置

Arrays 如何为常量数组(C30编译器)指定内存位置,arrays,memory-management,pic,microchip,Arrays,Memory Management,Pic,Microchip,我试图使用微芯片C30编译器在PIC24EP256G810处理器的辅助内存中的最高位置放置一个数组。数组的定义如下: const int __attribute__((space(auxflash), aligned(2048))) AuxFlashRows[8][128] { { 0x0000,etc,etc }, { 0x0000,etc,etc }, etc }; 上面的代码将把数据放在辅助内存空间中,但我不确定如何

我试图使用微芯片C30编译器在PIC24EP256G810处理器的辅助内存中的最高位置放置一个数组。数组的定义如下:

const int __attribute__((space(auxflash), aligned(2048))) AuxFlashRows[8][128]
{
    {
        0x0000,etc,etc
    },
    {
        0x0000,etc,etc
    },
    etc
};
上面的代码将把数据放在辅助内存空间中,但我不确定如何让编译器将其放在最高位置。刚才它将数组放在引导加载程序占用的位置


谢谢

IIRC您必须调整链接器文件(c30/support/pic24e/gld中的p24EP256GU810.gld)

e、 g.节目长度段:

程序(xr):原点=0x200,长度=0x2A9FE


并相应减少。

您不需要修改链接器脚本。除了空格()和aligned()之外,您只需在属性修饰符中添加address()关键字,然后硬编码所需的地址。在我的C30用户指南版本的第2.3.1节中有记录,但无论哪种方式,您都可以只搜索“属性”,在那里它们都被记录在一起。(对不起,表单正在吃我的下划线:)