硬汉嵌入式论坛

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

[有问必答] stm32 内部flash擦写时需要关中断吗

[复制链接]

13

主题

10

回帖

49

积分

初级会员

积分
49
发表于 2021-6-13 10:42:42 | 显示全部楼层 |阅读模式
stm32 内部flash擦写时需要关中断吗?我看官方例子里没有关中断。
官方文档里如下描述,感觉关不关中断也无所谓,即使触发了中断处理函数去读取flash执行程序也会被停住。

Any attempt to read the Flash memory on STM32F4xx while it is being written or erased,
causes the bus to stall. Read operations are processed correctly once the program
operation has completed. This means that code or data fetches cannot be performed while
a write/erase operation is ongoing.
所以请问大家内部flash要不要关中断


回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
发表于 2021-6-13 16:59:23 | 显示全部楼层
我没有关中断
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107778
QQ
发表于 2021-6-16 09:03:42 | 显示全部楼层
根据需要,可以不关闭中断,所有STM32系列都一样。

STM32H7内部Flash做擦写期间,程序是暂停执行的,包含中断服务程序,但双BANK器件略不同
http://www.armbbs.cn/forum.php?m ... id=96688&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2021-7-6 14:12:16 | 显示全部楼层
是否可以考虑把代码放在 SRAM 里执行,  写FLASH 的同时, 接收后面的数据
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107778
QQ
发表于 2021-7-6 14:58:10 | 显示全部楼层
Airwill 发表于 2021-7-6 14:12
是否可以考虑把代码放在 SRAM 里执行,  写FLASH 的同时, 接收后面的数据

可以的。本质上还是擦写内部Flash期间,内部Flash相关操作都要等待擦写完成。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-9-20 16:34:36 | 显示全部楼层
eric2013 发表于 2021-7-6 14:58
可以的。本质上还是擦写内部Flash期间,内部Flash相关操作都要等待擦写完成。

您好,在做IAP升级时,通过CAN接收数据,收到大于1024字节后编程内部Flash,没有关闭中断,在编程Flash时CAN还能响应中断接收数据吗,经过测试是成功升级了,但看手册说编程Flash不会响应中断
回复

使用道具 举报

41

主题

215

回帖

338

积分

高级会员

积分
338
发表于 2022-9-20 20:55:01 | 显示全部楼层
xuedidi 发表于 2022-9-20 16:34
您好,在做IAP升级时,通过CAN接收数据,收到大于1024字节后编程内部Flash,没有关闭中断,在编程Flash时 ...

你可以测试一下,一直擦flash,然后通过中断收数据,看掉不掉
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 04:33 , Processed in 0.186445 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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