[STM32F0] 片内flash 中写入数据如何避免覆盖程序

[复制链接]
598|12
 楼主| 梧桐uuu 发表于 2025-4-12 10:00 | 显示全部楼层 |阅读模式
本帖最后由 梧桐uuu 于 2025-7-28 22:29 编辑

用 STM32F071VTB 。想在片内flash 中存储少量配置数据。数据在程序运行过程中可能会发生变化,因此我需要能够从应用程序写入flsah。写入flash的代码已经根据应用手册写好了,想问的问题时如何避免将存储的程序代码覆盖掉。

yzdel7 发表于 2025-6-5 22:03 来自手机 | 显示全部楼层
用编译器生成map文件,看存储的情况,将存储的配置数据存在flash末端。
codingtuzi 发表于 2025-6-5 22:36 | 显示全部楼层
这个要自己在做程序的时候把控。
坦白讲,这个模拟的EEPROM并不好用。
xiaoqizi 发表于 2025-6-7 23:03 | 显示全部楼层
Flash通常分为多个扇区或页,程序代码通常存储在起始地址
木木guainv 发表于 2025-6-8 09:25 | 显示全部楼层
在程序设计时,明确划分出存储配置数据、参数等的专用区域,并与代码区隔离
Jiangxiaopi 发表于 2025-6-8 11:35 | 显示全部楼层
在程序设计时,明确划分出存储配置数据、参数等的专用区域,并与代码区隔离
荣陶陶 发表于 2025-6-8 14:06 | 显示全部楼层
通过库函数[size=0.875]HAL_FLASH_Unlock[size=0.875]HAL_FLASH_Erase[size=0.875]HAL_FLASH_Program确保操作规范,避免误操作
Zhiniaocun 发表于 2025-6-8 16:33 | 显示全部楼层
写入前确认目标地址在预设的数据存储区内,防止越界覆盖代码区
Zuocidian 发表于 2025-6-8 19:11 | 显示全部楼层
根据芯片手册计算可用存储空间,确保数据写入不超过划分区域
Puchou 发表于 2025-6-8 21:41 | 显示全部楼层
在写入数据前,仅解锁目标扇区,其他区域保持锁定状态,降低误操作风险
Xiashiqi 发表于 2025-6-9 09:18 | 显示全部楼层
系统启动时校验Flash中代码和数据的完整性,检测是否被意外覆盖
小海师 发表于 2025-6-9 11:41 | 显示全部楼层
系统启动时校验Flash中代码和数据的完整性,检测是否被意外覆盖
Haizangwang 发表于 2025-6-9 13:55 | 显示全部楼层
写入过程中若发生错误,立即停止操作并报警,避免损坏程序区
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

60

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部