一种基于编译期实现的 MCU 固定地址数据存储方法_mcuviewer 内存固定
文章目录
- 一、代码示例:将变量固定到 Flash 0x08001000
- 二、__attribute__((at(addr))) 的作用
- 三、__attribute__((at(addr))) 可能导致的问题
- 四、运行时修改 Flash 存储的变量
- 五、在 GCC(STM32CubeIDE)中实现同样功能
- 六、读取特定地址数据
- 七、综合示例(Bootloader版本信息及编译时间的存储与读取机制)
在嵌入式开发中,有时我们需要在 Flash 指定地址存储特定的标志位或常量数据,例如 Bootloader 标志、固件版本信息、校验码等。这时,可以使用 __attribute__((at(addr)))
关键字,将变量固定存放在指定的 Flash 地址。
一、代码示例:将变量固定到 Flash 0x08001000
以下代码用于将 custom_data 变量固定到 Flash 地址 0x08001000,并赋值 0x12345678:
#define CUSTOM_FLAG_ADDR 0x08001000#define