Thread 中讨论的其他器件:SYSBIOS
工具与软件:
我正在使用一个 TI RTOS 应用程序、执行大约25项任务、平均 CPU 负载小于20%。 最近我发现了一个问题、即应用程序最终出现异常、如下所示:
ti.sysbios.family.arm.m3.Hwi: line 1095: E_hardFault: FORCED
ti.sysbios.family.arm.m3.Hwi: line 1207: E_usageFault: INVSTATE: Invalid EPSR and instruction combination
Exception occurred in ISR thread at PC = 0x2002afdc.
Core 0: Exception occurred in ThreadType_Hwi.
Hwi name: {unknown-instance-name}, handle: 0x20007058.
Hwi stack base: 0x20032098.
Hwi stack size: 0x800.
R0 = 0x00000022 R8 = 0x0008ce4c
R1 = 0x2002afdc R9 = 0x0008baea
R2 = 0x40065000 R10 = 0x0008cfc0
R3 = 0x00059f3d R11 = 0x0008cfb4
R4 = 0x200297f0 R12 = 0x17380300
R5 = 0x00000006 SP(R13) = 0x20032820
R6 = 0x00000001 LR(R14) = 0x00062fbb
R7 = 0x00000040 PC(R15) = 0x2002afdc
PSR = 0x80000062
ICSR = 0x00423003
MMFSR = 0x00
BFSR = 0x00
UFSR = 0x0002
HFSR = 0x40000000
DFSR = 0x00000001
MMAR = 0xe000ed34
BFAR = 0xe000ed38
AFSR = 0x00000000.
我能够相当可靠地重现例外情况。 确定了以下几点:
-该错误与访问受互斥体保护的资源有关,
-使用 sleep 语句更改任务的计时行为,而互斥体是发出异常的触发器,但发生的时间不能确定。
然而、原则上允许无限期阻塞任务。 不过、例外情况是在一段时间后发生的、我不能解释原因是什么。 PC 的地址也引起了一些问题。
你有什么想法导致这样一个例外吗?
使用的 TI SDK 版本:
| TI RTOS TIVAC | 2.16.01.14. |
| TI 驱动程序 TIVAC | 2.16.01.13 |
| SYSBIOS | 6.45.02.31. |

