大家好,最近学习在STM32F7上使用FreeRTOS,程序运行一段时间后进入HardFault_Handler,该时间不定。故障分析器给的报错信息为“总线,存储器管理或使用失败(FORCED)”,“精准的数据访问冲突(PRECISERR)”。
其中工程中线程共6个。线程A每秒打印时间;线程B负责串口1发送命令;线程C负责接收串口1数据,并通过队列给线程D、线程E、和线程F发送数据;线程D负责通过队列获取C发送的数据,并将数据处理后通过队列将结果发送给线程F;线程E负责将接收的数据保存到SD卡;线程F负责将接收的数据通过串口2发送出去。其中线程优先级从大到小为C=E>D>F>B>A,每个线程使用堆栈空间设的在10*1024左右。
附件图片为程序运行时抓取的各线程情况,其中线程G并不是我所创建,程序通过STM32CubeIDE生成后就有,而且线程名称也是乱码,不知道是什么情况,死机会不会是G造成的那?
该问题没有任何头绪,特来求助各位大佬!
优先级范围不该是0-31?怎么出现32的?