我正在尝试使用Microchip C30编译器将阵列放置在PIC24EP256G810处理器的辅助存储器中的最高位置。该数组定义如下:
const int __attribute__((space(auxflash), aligned(2048))) AuxFlashRows[8][128]
{
{
0x0000,etc,etc
},
{
0x0000,etc,etc
},
etc
};
上面的代码会将数据放在辅助存储空间中,但我不确定如何让编译器将它放在最高位置。刚才它将数组放在引导加载程序占用的位置。
由于
答案 0 :(得分:0)
IIRC你必须调整链接器文件(c30 / support / pic24e / gld中的p24EP256GU810.gld)
e.g。程序长度段:
program(xr):ORIGIN = 0x200,LENGTH = 0x2A9FE
并相应减少。
答案 1 :(得分:0)
您不需要修改链接描述文件。除了space()和aligned()之外,您还必须在属性修饰符中添加address()关键字,并对您想要的地址进行硬编码。它在我的C30用户指南版本的2.3.1节中有记录,但无论哪种方式,您都可以搜索“属性”,它们都记录在一起。 (对不起,表格正在吃掉我的下划线:)。