硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1484|回复: 12
收起左侧

[Flash] STM32官方用FLASH模拟EEPROM问题

  [复制链接]

12

主题

53

回帖

89

积分

初级会员

面霸

积分
89
发表于 2025-1-23 10:08:24 | 显示全部楼层 |阅读模式
ST官方提供了一个使用内部Flash模拟EEPROM的模块,叫X-CUBE-EEPROM

请教下使用过该模块的高手,这个模块可以在boot和app同时使用吗,使用场景是app保存参数,boot读取参数。我自己实验的结果是,两者无法互通,boot不能读到正确的参数。
回复

使用道具 举报

21

主题

81

回帖

144

积分

初级会员

积分
144
发表于 2025-1-23 10:21:46 | 显示全部楼层
flash不就是存储数据吗。直接hal操作就好了,按照demo解锁 擦 写 读 上锁。不存在APP保存的数据在boot读不到,注意操作步骤及读写地址。
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-1-23 10:44:03 | 显示全部楼层
这种程序思路就是尽量减少擦除次数,也就是擦一次扇区(一般1k以上)多次写入数据实际数据在flash上
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-1-23 10:47:33 | 显示全部楼层
这种程序思路就是尽量减少擦除次数,也就是擦一次扇区(一般1k以上)多次写入数据,数据还在flash上
本质还是flash操作,从这块排查,出问题的话可以回读flash研究一下在boot和app存在什么差异
回复

使用道具 举报

12

主题

53

回帖

89

积分

初级会员

面霸

积分
89
 楼主| 发表于 2025-1-23 11:21:39 | 显示全部楼层
Hzzz 发表于 2025-1-23 10:21
flash不就是存储数据吗。直接hal操作就好了,按照demo解锁 擦 写 读 上锁。不存在APP保存的数据在boot读不 ...

直接操作flash肯定是没问题,现在问题是老工程用的这个模拟EEPROM,里面有一层虚拟地址的映射,不太清楚其中原理,但boot和app对相同的虚拟地址读,读到的值是不一样的
回复

使用道具 举报

4

主题

192

回帖

204

积分

高级会员

积分
204
发表于 2025-1-23 17:50:46 | 显示全部楼层
有的不适合模拟 比如H750,一页128K.。。。
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2025-1-24 11:49:26 | 显示全部楼层
有实现源码吗?哪位朋友可以提供个下载链接?谢
回复

使用道具 举报

12

主题

38

回帖

74

积分

初级会员

积分
74
发表于 2025-1-24 16:02:17 | 显示全部楼层
竟然没说支持F系列
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-1-24 17:38:06 | 显示全部楼层
本帖最后由 踩姑娘的小蘑菇 于 2025-1-25 08:29 编辑
Alo9611 发表于 2025-1-24 16:02
竟然没说支持F系列

F系列支持的,包括easyflash也支持
回复

使用道具 举报

2

主题

71

回帖

77

积分

初级会员

积分
77
发表于 2025-1-25 08:37:46 | 显示全部楼层
Alo9611 发表于 2025-1-24 16:02
竟然没说支持F系列

F支持x-cube-eeprom,包括easyflash也支持
不过这种组件不支持g0和g4,同一个地址多次写入会报错,官方描述:Programming a previously programmed address with a non-zero data is not allowed. Any
such attempt sets PROGERR flag of the FLASH status register (FLASH_SR)
F系列上多次写入只是结果可能不符合预期,并不会报错
回复

使用道具 举报

12

主题

53

回帖

89

积分

初级会员

面霸

积分
89
 楼主| 发表于 2025-3-9 00:45:17 | 显示全部楼层
踩姑娘的小蘑菇 发表于 2025-1-25 08:37
F支持x-cube-eeprom,包括easyflash也支持
不过这种组件不支持g0和g4,同一个地址多次写入会报错,官方 ...

老哥官方有明确说不支持G0和G4吗,我现在用的就是G473,感觉用着挺正常
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2025-3-9 13:26:28 | 显示全部楼层
1350280419 发表于 2025-3-9 00:45
老哥官方有明确说不支持G0和G4吗,我现在用的就是G473,感觉用着挺正常

是因为架构问题,可能驱动没适配。
这里贴G系列Flash的一些特性:
Gx 系列不支持反复写,已经写入 0xFF 后,无法修改成其他值
写入 8 字节对齐
带 ECC 校验,访问 ECC 错误的数据,会产生 NMI 异常。物理层有限制,因此不能完全做到掉电安全。
回复

使用道具 举报

6

主题

27

回帖

50

积分

初级会员

积分
50
发表于 2025-3-12 15:58:27 | 显示全部楼层
flash模拟eeprom还是自己写比较好,方便管理和拓展,用索引递增代替擦除原内容
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 03:49 , Processed in 0.042340 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表