Thread 中讨论的其他器件:TDA4VH
工具/软件:
说明:
我正在 尝试将动态网状网络 组件集成到基于 TDA4VH (J784S4) 的定制 ECU 上的现有系统中。 该系统以前使用了静态网状网络、新的动态实现已经过我们算法团队在非嵌入式环境中的功能验证。
在 MCU2_0 (R5F) 上集成期间、内核在调用 os_start () 后不久崩溃。 执行最终在低级预取中止处理程序中结束、特别是在无限循环中。
此问题仅在集成了新组件时发生。 如果没有它、系统将启动并正常运行。
异常上下文:
- CPSR = 0x197
- IFAR = 0x12411CE2
- IFSR = 0xD
- DFAR = 0x0
- DFSR = 0x0
- IFSR = 0xD 指示由于不可缓存区域上的外部中止而导致指令提取中止。
- 指令地址 0x12411CE2 似乎无效或未映射。
- 通过反汇编进行调试不稳定 — 检查崩溃地址会导致调试器中断或挂起。
- 这强烈建议在调度程序启动后立即进行损坏或无效的函数指针调用。
到目前为止、我检查过的内容:
- 没有堆栈溢出的迹象 (uxTaskGetStackHighWaterMark()) 或 CPU 过载 (LoadP_getCPULoad())。
- 我想逐步浏览代码以跟踪导致故障的原因、但降低编译器优化级别(以提高调试可见性)会导致不同的运行时行为、因此我无法在这种情况下重现相同的问题。
工具链:
- IDE:Code Composer Studio 12.4.0
- 调试器:Blackhawk XDS560V2
问题:
如何跟踪在 OS_START () 之后触发这种无效执行的原因?
在这样的早期阶段、是否有 TI 推荐的工具或调试策略来识别指令提取中止、尤其是考虑到调试器在故障地址处变得不稳定?