最近在开发了一个国民技术的N32WB031芯片的串口IAP升级方案。
在国民的技术资料里看到了一个有意思的变量定义,还是第一次见:
extern int Image$$ER_IROM1$$Base;
初见这个定义方式,并不清楚是什么意思,而且在工程里没有找到这个变量的原始定义,而且这种定义方式也是第一次见,从变量名上看,感觉是个IROM1有关系的,然后在Keil的魔术棒里也是有这个设置的。

大胆猜测,是不是就是把这个起始地址跟这个变量绑定了呢?
国民的资料里有发现是是这么使用的:
#define CURRENT_APP_START_ADDRESS (uint32_t)&Image$$ER_IROM1$$Base
定义当前的APP起始地址为取这个变量的地址,从而可以佐证确实是把起始地址跟这个变量绑定了,这么做的意义是不是为了防止开发的时候忘记修改了APP程序的中断向量表呢?只需要在APP程序的魔术棒里设置一次就好了。智能的获取中断向量表地址。