![]() |
188610329 发表于 2024-6-22 20:13 我不太明白,擦除Flash的时候,CPU还能干别的事吗?不是要等擦除完成吗?难道擦除Flash的时候还能像DMA一样操作?如果能这样,那就好办了 |
我理解你的问题是,需要不断读取Flash,但擦除时会停止取指操作,MCU就像是卡了,但你给的手册 P33 的 Figure 4. STM32H743xI/G bus matrix ,看图它分为flash A 和flash B,我理解如果读取FLASHA时,可以对FLASHB进行擦除操作,在擦除的几秒时间内,SysTick_Handler()中断服务函数,uwTick记数器变化应该正常的。我的建议你应该理解吧? |
lkc8210 发表于 2024-6-21 10:52 这个不是H7xx的芯片吧 |
188610329 发表于 2024-6-22 20:13 STM32H743双bank把他分分应该不影响程序跑起来。 |
据说,STM是非常高级的芯片,这玩艺难道还是单线程?你发了擦除指令之后,只能象“落后的51”一样,等他完成了才能获得时钟权限么?不能先干别的事? |
yzwzfyz 发表于 2024-6-22 00:11 这颗MCU没有页而概念,只有扇区,一个扇区是128K,所以只能按照128K扇区擦除 |
擦128K是秒级,擦一页不需要这么多时间。 |
可以按页擦除啊,一页只有1k 3.3.3 Embedded Flash memory ![]() ![]() |
可以在程序初始化的时候擦除,就不会影响后面的实时性,当然启动时间也有要求的话,就没办法了 |
npn 发表于 2024-6-21 06:25 这个我知道,其实我问的是擦除时间长影响实时性的问题 |
qq475878026 发表于 2024-6-20 20:38 ST的高端MCU,STM32H743, 2M Flash, 最小擦除粒度确实是128K。 |
看你程序使用了多少字节EEPROM,使用数据磨损均匀算法写满再擦。 |
xiaobendan001 发表于 2024-6-20 16:56 STC8系列EEPROM扇区擦除几个ms。 |
要擦128K这么多?单位是不是有问题 |
怀疑读书不准确,当为ms级。将你读的书贴出来看看。 |
xiaobendan001 发表于 2024-6-20 16:56 秒,确实是1~2s, 规格书上写的,很奇怪很多用大容量的Flash都是怎么用的? |
秒还是毫秒?STM32不会用,STC也不用2秒吧 |