硬汉嵌入式论坛

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

[STM32H7] STM32H743 FLASH bank2擦除问题

[复制链接]

1

主题

6

回帖

9

积分

新手上路

积分
9
发表于 2024-4-9 17:17:23 | 显示全部楼层 |阅读模式
最近在使用STM32H743做一个项目,代码储存在flash bank1,bank2是空闲的,想用bank2来储存数据,看资料说743的flash两个bank是独立的,可以同时操作,那在bank1储存的代码执行的时候,对bank2的扇区进行擦除,是否会影响bank1代码的执行?

我现在自己测试的情况是,我用的是rtthread RTOS,我用tcp写数据,之后触发bank2扇区擦除,但是执行擦除的操作的时候,我的程序运行会暂停,tcp连接会丢失,一些中断也会超时,擦除完成后才能恢复正常,我想问一下,这种情况是否正常?还是上面说的“743的flash两个bank是独立的,可以同时操作”这个理解有误,希望大神帮忙解答一下,谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106745
QQ
发表于 2024-4-10 08:23:10 | 显示全部楼层
这个理解是没问题的,这个操作俗称RWW Read-while-write,你看看你的擦写操作期间是不是做开关全局中断操作了。进入HAL API里面也看看。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2024-4-10 10:23:50 | 显示全部楼层
擦除是在rtthread的线程里面执行的,可以确认擦除期间没有关闭中断,在线调试可以看到中断都处于正常开启的状态,单步执行擦除的时候,也能看到keil的在线监控卡了一小会,有时候在线监控还会直接退出(在单步执行擦除的时候),还有什么方式能排查,或者让擦除的时候不影响tcp的连接
回复

使用道具 举报

3

主题

3

回帖

12

积分

新手上路

积分
12
发表于 2024-4-10 20:37:15 | 显示全部楼层
我也发现这个问题了,只要对flash进行擦除,在擦除的这段时间不会执行中断函数,最基本的时间基准定时器也不会进中断,可能擦除的时候hal库关闭了总中断,没具体看库的擦除操作
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 15:32 , Processed in 0.273658 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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