Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

片上 Flash 读写

说明

  • 某些 MCU 允许从 Code Flash 中划出一块区域, 作为参数存储或掉电保存区域.
  • 设计这类区域时, 首先要确认扇区大小, 擦除粒度和链接脚本中的地址布局.

分区要点

ch32v307 一类芯片为例, 需要先根据手册与链接脚本确认可用地址:

FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K
USER  (rw) : ORIGIN = 0x0040800,  LENGTH = 32K

若映射到运行地址, 则用户区可能对应:

  • 0x8040800 ~ 0x8048800

开发要点

  • 地址必须满足擦除扇区对齐要求.
  • 写入前通常需要 unlock.
  • 修改前往往要先按页或按扇区擦除.
  • 写完后要重新 lock, 并做好读回校验.

风险点

  • 若与程序区重叠, 可能直接导致程序异常或无法启动.
  • 频繁擦写要关注寿命与掉电保护.
  • 参数结构最好带版本号, 校验和或冗余副本.

适用场景

  • 保存出厂参数, 校准值, 序列号.
  • 保存少量配置项或升级状态标记.
  • 在没有外部 EEPROM / FRAM 时做轻量持久化.

相关文档