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.

[参考译文] F29H850TU:F29H850TU (CPU3-EVM) 多 CPU:调用 ePWM/GPIO driverlib API 时、SOM 主环路停止进展(单步执行时有效)

Guru**** 2800955 points

Other Parts Discussed in Thread: F29H850TU

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1623834/f29h850tu-f29h850tu-som-evm-multi-cpu-cpu3-main-loop-stops-progressing-when-calling-epwm-gpio-driverlib-apis-works-when-single-stepping

器件型号: F29H850TU

您好:

我正在使用的器件 F29H850TU 在上 SOM EVM (CPU1 + CPU3) 中运行。

CPU 到外设的配置似乎正确:我可以配置 独立 PWM 和 GPIO 对于 CPU1 和 CPU3、我还可以通过调试器/观察窗口(例如,更改 PWM 周期、切换 GPIO)来控制它们。

但是、我在上看到了异常的运行时行为 CPU3

当我调用 driverlib 函数时、例如:  
EPWM_setTimeBasePeriod (EPWM1XLINK_BASE、PERIOD_Cnt2);  
GPIO_writePin (myGPIO0_TEST_CPU3、1);  

中导出 CPU3 main.c (在主循环内部)while(1)、软件看起来“粘住“、主循环不再进程(例如,在内部停止更新的虚拟变量增量)while(1)。  

观察结果

  • 我有一个 RTDMA 中断 ISR 已配置。 ISR 按预期运行。
  • 何时发生、以及 I 暂停 CPU3 、程序计数器始终位于内 RTDMA ISR (不在 NMI 中)。
  • 如果我使用、则在停止后 单步执行 、CPU3 能够执行 driverlib 调用并继续。
  • 然后按 继续/恢复 、则问题返回:CPU3 再次出现卡滞现象、并且中的代码while(1)未执行。

我尝试过的

  • 编译器优化已禁用 CPU 启动。
  • 我测试了 led_ex1_blinky_cpu1_cpu3_multi示例。 即使我添加了额外的代码、该示例也可以正常运行。
  • 我将工程设置与示例进行了比较、但到目前为止找不到根本原因。

您能否告知、是什么原因导致 CPU3 仅在调用某些 driverlib API (ePWM/GPIO) 时才停止在主循环中进行进程、而 RTDMA ISR 会继续运行? 我怀疑缺少配置/设置(所有权,保护,中断/确认等)、但我目前卡住了。

此致、
Gökhan μ s

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    我们首先检查有关 RTDMA 的一些内容:

    • 您能否确认是否正在清除 DMA ISR 中的触发器? 或者、 如果不存在 dma_clearTriggerFlag()、请将它添加到您的 ISR 中。
    • 您还能否验证 RTDMA ISR 执行频率? 例如、如果您在 ISR 中添加了一个易失性计数器、并在~1 秒左右后停止并检查计数、那么计数器的值是多少?

    此致、

    Allison