首页 > 解决方案 > 使用 XC32 预留闪存空间

问题描述

我正在为ATSAM使用MPLAB XXC32编译器的设备编写代码。这个设备有 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 手册,为什么它被忽略了?

还有其他方法可以达到同样的效果吗?

标签: cmplabxc32

解决方案


推荐阅读