探讨 STM32F4 系列单片机 ROM 大扇区怎么存储用户数据问题
Posted 快乐的老鼠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了探讨 STM32F4 系列单片机 ROM 大扇区怎么存储用户数据问题相关的知识,希望对你有一定的参考价值。
看完这个扇区地址分布内心是崩溃的,因为之前用的F1都是2KB一个扇区,每个扇区存储一个结构体,假如程序里用到5个结构体,只需要占用5个扇区即可。
现在扇区最小16KB,如果将前面几个扇区作为用户存储数据区域,不可避免就得要用BootLoader了,写这个玩意要不是为了升级,真的非常没有必要,那有没有
什么巧妙的方法可以不用BootLoader就能将用户数据存储在扇区1位置呢?
答案是定义一个const变量,大小16KB,用at指定地址0x8004000,我现在遇到一个问题就是定义const的变量必须初始化,我不可能写16KB的0xFF吧,不知道大家是怎么
解决这个问题的?
const u8 flash_map[16 * 1024] __attribute__((at(0x08004000)))=;
当定义好flash_map后,就可以放心的擦写该扇区,存储用户的数据了。
这个方法有2个缺点: 生成的程序较大, 每次下载固件之后之前存储的数据都丢失了.
至于如何利用16KB存储多个结构体,这个问题也不难解决。
以上是关于探讨 STM32F4 系列单片机 ROM 大扇区怎么存储用户数据问题的主要内容,如果未能解决你的问题,请参考以下文章