探讨 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 大扇区怎么存储用户数据问题的主要内容,如果未能解决你的问题,请参考以下文章

stm32系列单片机都有哪些外设接口模块

stm32系列单片机都有哪些外设接口模块

如何使用STM32F4 的CCM RAM

如何使用STM32F4的DSP库

stm32f4单片机怎么读取ps2键盘的按键信息

stm32f405和stm32f407的区别