这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 双缓冲-兵乓操作

共1条 1/1 1 跳转至

双缓冲-兵乓操作

工程师
2026-05-18 22:57:55     打赏
什么是“乒乓操作”?设用户可存储的Flash空间为8KB
把这 8KB 分成两块 4KB 的区域(A区 和 B区),轮流使用。就像打乒乓球一样,数据在 A 和 B 之间来回“切换”。
就是:用两块等大的 Flash 区域轮流存数据,一边写新数据,一边保留旧数据,提高可靠性和寿命。
具体是怎么工作的?
假设:
A区:4KB
B区:4KB
运行逻辑大致是:
当前数据存 A区
当需要更新数据时:
不直接覆盖 A区(因为 Flash 不能随便改)
而是把新数据写到 B区
写完后:
标记 B区为“最新有效数据”
A区变成“旧数据”
下一次更新:
再写回 A区(擦除后)
两块区域继续来回切换
为什么要这么做?
Flash 有几个特点:
1.不能直接覆盖写(必须先擦除)
2.擦除是按块(比如 4KB)进行
3.掉电时容易写一半导致数据损坏
“乒乓操作”的好处:
1. 防止数据损坏(掉电保护)
写新数据时,旧数据还在另一块里
→ 写失败也不丢数据
2. 避免频繁擦写同一块(延长寿命)
A / B 轮流用
→ 平衡 Flash 擦写次数
3. 保证数据始终有一份是完整的
任何时刻至少有一块是“可用的”
为什么“有效只有 4KB”?
因为:
8KB 被分成两块
任意时刻只用其中一块存“有效数据”
另一块是备用 / 正在更新



关键词: 双缓冲    

共1条 1/1 1 跳转至

回复

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