嵌入式技术william hill官网
直播中

王超

7年用户 1322经验值
私信 关注
[问答]

邮箱挂起时在rt_ipc_list_suspend()中导致bus fault是何原因?

芯片:gd32f303rct6
nano版本:3.1.5
main函数中:nSetUIToDisplayMQ(2, 0, SENT_KeyProcess, FREQ_250, 8+2*13, 0, 0, 0, 0); //此函数调用打包函数后再把地址传给解析函数。
过程都正常,但是消息处理进程再次调用vDisplayMQ_handle,因为等待消息挂起时,就出现bus fault 崩溃了。如果将8+2*13中的8改成从0-11中的其他数时,都没有问题。
2.jpg

出现问题的位置与“获取信号量卡在rt_ipc_list_suspend()的问题”一样
demo工程文件和代码都已上传,请大佬帮忙看看到底是什么问题。
工作流程是调用vDisplayLoad();//加载结构体数组,每个结构体在需要的时候都可以开启定时器。然后再初始化线程DisplayMQHandle_thread。随后发生测试代码nSetUIToDisplayMQ,正常处理。处理完后,再次挂起线程的时候报错。


回帖(2)

李明

2023-2-13 13:48:44
虽然死在rt_ipc_list_suspend中,但99.9%的可能性,根本原因并不在这个函数中的,重点关注你的这个参数的影响范围。
举报

王超

2023-2-13 13:48:51
已经解决了,确实是99.9%里面的问题。谢谢,指导。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分