1 前言
编译过程中,指定数据绝对存储地址在实际项目中会经常使用到或者必须用到,这样使得项目实现某些功能可以非常灵活,常用的场景有:
-
IAP升级时候,中断向量表存储
IAP升级,STM32F0系列Cortex-M0内核芯片,192字节中断向量表需存储在RAM起始地址(0x20000000)中 -
在指定flash地址存储固件信息,用于查询固件信息,或者升级过程对固件进行校验
—项目名称
—项目唯一id号
—版本号
—编译时间
—编译器版本
2 实现方法
指定数据绝对存储地址,实现方法与编译器相关,不同编译器实现方式不一样;常用的有Keil、IAR、Gcc,Keil AC5和AC6版本编译器实现方法也不同。
例如,定义一个u32变量data,存储起始地址在0x20010000上,不同编译器下实现如下。
- Keil AC5编译器:
uint32_t dat