搜索
查看: 2776|回复: 9

[已解决] Flash擦除时必须关闭数据缓存data cache 吗?

[复制链接]
回帖奖励 5 ST金币 回复本帖可获得 5 ST金币奖励! 每人限 1 次

该用户从未签到

16

主题

87

帖子

0

蝴蝶豆

高级会员

最后登录
2021-3-29
发表于 2019-7-6 01:13:17 | 显示全部楼层 |阅读模式
如题,stm32F4系列,初始化会开启数据缓存功能,那么在擦除flash的时候,需要关闭吗?不关闭会带来什么后果?FLASH_Unlock();

FLASH_DataCacheCmd(DISABLE);
擦除flash操作;
FLASH_DataCacheCmd(ENABLE);
FLASH_Lock();



标准库貌似没有在擦除时操作data cache,但是cube库在擦除完后会Flush data cache
回复

使用道具 举报

该用户从未签到

21

主题

1073

帖子

442

蝴蝶豆

论坛元老

最后登录
2021-5-10
发表于 2019-7-7 15:33:02 | 显示全部楼层

回帖奖励 +5 ST金币

不关闭缓存的话会发生缓存不一致现象。这种现象会引发大问题的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

87

帖子

0

蝴蝶豆

高级会员

最后登录
2021-3-29
 楼主| 发表于 2019-7-7 21:37:31 | 显示全部楼层
maxtch 发表于 2019-7-7 15:33
不关闭缓存的话会发生缓存不一致现象。这种现象会引发大问题的。

如果要擦除的页只是存储一些参数,没有存放程序,那会不会就没有影响呢
回复 支持 反对

使用道具 举报

该用户从未签到

21

主题

1073

帖子

442

蝴蝶豆

论坛元老

最后登录
2021-5-10
发表于 2019-7-8 10:47:13 | 显示全部楼层
miraclexue 发表于 2019-7-7 21:37
如果要擦除的页只是存储一些参数,没有存放程序,那会不会就没有影响呢 ...

参数读取就是要经过数据缓存的。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2019-7-8 16:16:04 | 显示全部楼层

    回帖奖励 +5 ST金币

    擦除未使用的Flash段,应该没有影响吧。

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    STMCU + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14

    主题

    256

    帖子

    2

    蝴蝶豆

    金牌会员

    最后登录
    2019-10-8
    发表于 2019-7-8 16:54:07 | 显示全部楼层

    回帖奖励 +5 ST金币

    对的,不关闭缓存的话会发生缓存不一致现象。

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    STMCU + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    87

    帖子

    0

    蝴蝶豆

    高级会员

    最后登录
    2021-3-29
     楼主| 发表于 2019-7-8 23:20:42 | 显示全部楼层
    maxtch 发表于 2019-7-8 10:47
    参数读取就是要经过数据缓存的。

    两个疑问:
    1、只要擦除后执行的代码只要和被擦除的页不相关,就没问题吧?
    2、假如相关,擦除和写入都要关闭数据缓存吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    87

    帖子

    0

    蝴蝶豆

    高级会员

    最后登录
    2021-3-29
     楼主| 发表于 2019-7-8 23:22:05 | 显示全部楼层
    toofree 发表于 2019-7-8 16:16
    擦除未使用的Flash段,应该没有影响吧。

    未使用指的是后面的代码没有在此flash段中,而且也没有访问此flash段?是这个意思?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    87

    帖子

    0

    蝴蝶豆

    高级会员

    最后登录
    2021-3-29
     楼主| 发表于 2019-7-8 23:22:38 | 显示全部楼层
    generalcircuits 发表于 2019-7-8 16:54
    对的,不关闭缓存的话会发生缓存不一致现象。

    擦除和写入都需要关闭?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    87

    帖子

    0

    蝴蝶豆

    高级会员

    最后登录
    2021-3-29
     楼主| 发表于 2019-7-15 23:18:42 | 显示全部楼层
    顶一个
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-4-26 16:01 , Processed in 0.172734 second(s), 41 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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