[STM32F4] 内部Flash写入的时候能不能跑程序?会不会卡死?

[复制链接]
 楼主| 童雨竹 发表于 2025-5-7 07:29 | 显示全部楼层 |阅读模式
我用Flash写数据,感觉程序卡顿一两秒,是Flash接口锁住了总线吗?
Clyde011 发表于 2025-5-7 07:33 | 显示全部楼层
尝试先写缓存,空闲再烧。
公羊子丹 发表于 2025-5-7 07:34 | 显示全部楼层
Flash写入时CPU是会阻塞的。
周半梅 发表于 2025-5-7 07:35 | 显示全部楼层
有些型号可以边写边跑RAM段程序。
帛灿灿 发表于 2025-5-7 07:36 | 显示全部楼层
用EEPROM仿真区会不会好点?
 楼主| 童雨竹 发表于 2025-5-7 07:37 | 显示全部楼层
你有跑中断吗?会不会也被锁了?
万图 发表于 2025-5-7 07:37 | 显示全部楼层
看下程序是不是直接写主Flash区了?
Wordsworth 发表于 2025-5-7 07:38 | 显示全部楼层
我是DMA写RAM然后定期写Flash。
Bblythe 发表于 2025-5-7 07:39 | 显示全部楼层
Flash擦写一次要几毫秒的。
Pulitzer 发表于 2025-5-7 07:40 | 显示全部楼层
会不会写频繁把Flash写坏了?
Uriah 发表于 2025-5-7 07:41 | 显示全部楼层
你在跑FreeRTOS没?可能调度出问题。
夜阑风雨 发表于 2025-5-12 15:30 | 显示全部楼层
    在STM32F4内部Flash写入时程序仍可运行,但会出现卡顿现象,原因是Flash接口锁住了总线

别乱了阵脚 发表于 2025-5-12 15:53 | 显示全部楼层
   CAN总线上的每个节点都有一定负载效应,支线过长会使这些负载效应累积,加重总线负载,影响通信速率和稳定性,尤其在高速通信时更为明显。

暖了夏天蓝了海 发表于 2025-5-12 16:00 | 显示全部楼层
    在STM32F4中,执行Flash的写入或擦除操作时,任何对Flash的读操作都会导致总线阻塞。这是因为Flash的编程/擦除控制器(FPEC)在操作期间会独占总线,阻止其他访问请求,直到操作完成。

淡漠安然 发表于 2025-5-12 16:30 | 显示全部楼层
   由于程序代码存储在Flash中,总线被锁时CPU无法从Flash读取指令,导致程序执行暂停,表现为卡顿。

远山寻你 发表于 2025-5-12 17:00 | 显示全部楼层
   一般来说你可以去掉终端电阻试试,也许会好使

光辉梦境 发表于 2025-5-12 17:30 | 显示全部楼层
    在Flash操作期间,若发生中断,CPU需等待总线解锁后才能响应中断服务例程,导致中断响应延迟,进一步加剧卡顿。

夜阑风雨 发表于 2025-5-12 17:30 | 显示全部楼层
    若总线两端未正确接入120Ω终端电阻,或多个节点错误接入终端电阻,会引起总线波形畸变,导致通信异常。

江河千里 发表于 2025-5-12 18:00 | 显示全部楼层
优化Flash操作频率,减少不必要的Flash写入,合并多次小数据写入为一次大数据写入,降低总线占用时间。

一秒落纱 发表于 2025-5-12 18:00 | 显示全部楼层
       使用DMA或双缓冲机制,将待写入数据先存储在RAM中,再一次性写入Flash,减少总线占用时间。

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

本版积分规则

155

主题

5860

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部