[其他ST产品] stm32H750使用FreeRTOS有时死机

[复制链接]
2214|14
 楼主| 内政奇才 发表于 2023-5-29 14:57 | 显示全部楼层 |阅读模式
stm32H750使用FreeRTOS,偶尔会出现所有线程停止运行的状况(流水指示灯不闪,程序不跑),此时点击触摸屏触发一下串口中断,所有的线程又会恢复运行,从堆栈调用情况看,有点像是串口发送时与串口接收冲突了,但是串口不应该是全双工的吗!不知道是不是Hal库搞得比较复杂带来的Bug,从图上可以看到,经过数次单步运行后程序自动退出了死机状态,同时RXNE标识被清零了(?单步调试触发的中断导致了串口发送状态退出)。
Pretext 发表于 2023-5-29 16:26 | 显示全部楼层
是不是运行的时候进入休眠模式了?
朝生 发表于 2023-5-29 16:27 | 显示全部楼层
应该不是HAL比较复杂带来的BUG。
芯路例程 发表于 2023-5-29 16:27 | 显示全部楼层
串口发送和接收导致的?怎么判断出来的?
一只眠羊 发表于 2023-6-6 20:37 | 显示全部楼层
死机?你可以弄log啊,看看死机在哪儿
未说出口的像你 发表于 2023-6-6 22:11 | 显示全部楼层
估计是你那里有逻辑冲突吧

失物招領 发表于 2023-6-7 01:03 | 显示全部楼层
你可能是需要加锁才能行吧

将爱藏于深海 发表于 2023-6-7 03:27 | 显示全部楼层
你有互锁吗?有的话可能就会避免的

白马过平川 发表于 2023-6-7 07:39 | 显示全部楼层
你每个功能都单独执行,不会死机吧?

caoenq 发表于 2023-6-7 08:49 | 显示全部楼层
HAL库是不是不允许全双工串口?好像在底层有hal->LOCK,不允许全双工使用。
西洲 发表于 2023-6-7 09:06 | 显示全部楼层
按理来说,串口发送和接收都会操作一个缓冲区,最好是分时复用才行

温室雏菊 发表于 2023-6-7 11:23 | 显示全部楼层
还能退出死机状态?

故意相遇 发表于 2023-6-7 14:05 | 显示全部楼层
你程序有看门狗吗?能好点

风凉 发表于 2023-6-7 16:33 | 显示全部楼层
感觉是串口有问题,就是逻辑不对导致

捧一束彼岸花 发表于 2023-6-7 21:04 | 显示全部楼层
你可以给串口发送和接收都设定个优先级,就串口接收高于发送就好了

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

本版积分规则

204

主题

1309

帖子

1

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