器件型号: AM623
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号: AM623
e2e.ti.com/.../example.syscfg.zipe2e.ti.com/.../Release.map.zip
尊敬的 Kevin:
IpcNotify_getReadMailbox (pInterruptConfig->coreIdList[core]、&mailboxBaseAddr、&hwFifoId、&userId);
您是否知道在上述 API 中的哪条语句发生异常?
如故障地址报告所示、地址显示为 GPIO。
此外、 请在将故障地址和 IPC 地址 MPU 区域配置为严格排序后尝试运行应用程序、并查看问题是否重现。
此致、
Tushar
您好,感谢您的答复。
我尝试将 GPIO 地址区域的 MPU 属性设置为 Device、但问题未解决。 我执行了以下最新的测试、可以快速重现问题:
每个 25µs 都有一个来自 PRU 的总线中断。 在该中断处理程序内、我只切换 GPIO 级别、而不调用任何 FreeRTOS API。
同时、有一个主任务每 500ms 运行一次、并打印字符串“main task is running“。
运行几分钟后、系统会报告错误并抛出以下异常之一(并非总是相同的例外)。 有时它会报告:
使用故障是由于尝试切换到无效状态而引起的
在其他情况下、它会报告类似的 UsageFault。
最重要的观察是、当我将这个主任务的堆栈从 DDR 移动到内部 IRAM 时、这两个问题都会立即消失、并且系统正常运行。
因此、我想确认以下几点:
当任务栈位于 DDR 中时、如果高频中断反复中断执行并导致 DDR 中频繁进行栈推挽/砰砰声操作、这是否会导致 CPU 在完成后无法正确从中断返回?
或者、这是否意味着任务栈根本不应放置在 DDR 中?
错误日志:e2e.ti.com/.../cm1.txte2e.ti.com/.../cm2.txte2e.ti.com/.../8561.example.zipe2e.ti.com/.../8561.Release.zip