打印
[STM32F0]

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

[复制链接]
387|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梧桐uuu|  楼主 | 2025-4-12 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用 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通常分为多个扇区或页,程序代码通常存储在起始地址

使用特权

评论回复
5
木木guainv| | 2025-6-8 09:25 | 只看该作者
在程序设计时,明确划分出存储配置数据、参数等的专用区域,并与代码区隔离

使用特权

评论回复
6
Jiangxiaopi| | 2025-6-8 11:35 | 只看该作者
在程序设计时,明确划分出存储配置数据、参数等的专用区域,并与代码区隔离

使用特权

评论回复
7
荣陶陶| | 2025-6-8 14:06 | 只看该作者
通过库函数[size=0.875]HAL_FLASH_Unlock[size=0.875]HAL_FLASH_Erase[size=0.875]HAL_FLASH_Program确保操作规范,避免误操作

使用特权

评论回复
8
Zhiniaocun| | 2025-6-8 16:33 | 只看该作者
写入前确认目标地址在预设的数据存储区内,防止越界覆盖代码区

使用特权

评论回复
9
Zuocidian| | 2025-6-8 19:11 | 只看该作者
根据芯片手册计算可用存储空间,确保数据写入不超过划分区域

使用特权

评论回复
10
Puchou| | 2025-6-8 21:41 | 只看该作者
在写入数据前,仅解锁目标扇区,其他区域保持锁定状态,降低误操作风险

使用特权

评论回复
11
Xiashiqi| | 2025-6-9 09:18 | 只看该作者
系统启动时校验Flash中代码和数据的完整性,检测是否被意外覆盖

使用特权

评论回复
12
小海师| | 2025-6-9 11:41 | 只看该作者
系统启动时校验Flash中代码和数据的完整性,检测是否被意外覆盖

使用特权

评论回复
13
Haizangwang| | 2025-6-9 13:55 | 只看该作者
写入过程中若发生错误,立即停止操作并报警,避免损坏程序区

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

22

帖子

0

粉丝