这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » [学习笔记]变量想放哪里就放哪里!

共3条 1/1 1 跳转至

[学习笔记]变量想放哪里就放哪里!

院士
2024-02-18 00:01:09     打赏

版主最近也在研究固件版本号保存,固件升级,OTA什么的。其中,一个技术知识点就是变量存放,我们需要将变量存放在指定的Flash地址中。只有这样,我们的程序在运行时,才能准确的读取到我们想要的内容。

经过一番查询,发现Keil软件已经为我们想好办法了!而且特别地简单!

__attribute__((at(address)))

你看,简单吧!只需要在变量声明的地方后面添加如上的属性即可。举一个例子:

const uint32_t _version __attribute__((at(0x0801F000))); /* RO */

这样我们就将保存版本的变量保存到了Flash最后一页的前4个字节了。未来我们在升级的时候,只需要在固件文件里面直接修改0x0801F000地址的数据内容即可更新程序的固件版本号。

亲爱的网友们,你们学会了吗?

ota.png

参考文档


    1. https://developer.arm.com/documentation/dui0375/g/Compiler-specific-Features/--attribute----at-address----variable-attribute?lang=en





关键词: 变量     地址     属性    

高工
2024-02-18 09:20:22     打赏
2楼

谢谢分享


高工
2024-02-18 10:52:40     打赏
3楼

为什么要放置到最后一片section里面啊?


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]