stm32 flash半页写入

Posted

技术标签:

【中文标题】stm32 flash半页写入【英文标题】:stm32 flash half page writing 【发布时间】:2016-07-11 18:56:05 【问题描述】:

当我在 stm32 微控制器上执行从闪存到闪存的半页写入时,我是否需要一个 RAM 缓冲区来保存这些读取值然后再写入它们?我的意思是我有 2 个独立的闪存区域,我想将一些数据从第一个区域复制到第二个区域。我需要创建缓冲区并先读取一个半页然后再写入还是可以同时进行?

编辑: 我想执行闪存页面复制 - 将闪存中的一块内存复制到闪存中的不同地址

【问题讨论】:

你能改写你的问题吗?你想做一个flash page copy吗?还是 eeprom 仿真? 【参考方案1】:

如果您需要将另一半数据保留在目标 Flash 页面中,则需要先读取它们,然后再擦除页面并复制源页面的一半。然后将临时存储的数据再次写回。 否则,您可以只擦除页面并写入源页面的一半。 请注意,如果断电,您将丢失临时存储的数据。

【讨论】:

【参考方案2】:

答案是我需要先将数据处理到临时缓冲区,因为在写入闪存时,读取操作会停止,因此无法从不同的页面读取。

【讨论】:

以上是关于stm32 flash半页写入的主要内容,如果未能解决你的问题,请参考以下文章

STM32 Flash 写入导致多个 HardFault 错误

了解STM32参考手册中的写入flash流程

将全局声明的缓冲区写入 FLASH 时出现 STM32 Hardfault 异常

如何在 STM32F4、Cortex M4 上写入/读取 FLASH

基于STM32的Flash读写详解

基于STM32的Flash读写详解