我正在为ATSAM
使用MPLAB X
和XC32
编译器的设备编写代码。这个设备有 1Mbytes 的闪存,我需要分开 200kBytes 作为配置脚本的占位符(主代码将执行这个脚本)。
我试图在不弄乱链接器的情况下做到这一点。这就是我正在做的事情:
#pragma region name="plan_mem" origin=0xce000 size=0x32000
typedef struct {
uint16_t version;
//.... very long structure....
} Plan;
const Plan plan __attribute__((region("plan_mem"))) = {
0x1, //....
};
虽然代码仍然有效,但我确实收到了来自编译器warning: 'region' attribute directive ignored [-Wattributes]
的警告:最终地址确实被忽略了。
既然它来自 XC32 手册,为什么它被忽略了?
还有其他方法可以达到同样的效果吗?