什么是“乒乓操作”?设用户可存储的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 跳转至页
双缓冲-兵乓操作
关键词: 双缓冲
共1条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
