什么是“乒乓操作”?设用户可存储的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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
| 三分钟快速上手搭建nRF Connect SDK开发环境(VSCode)被打赏¥25元 | |
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
我要赚赏金
