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.

[参考译文] TMS320F28P650DK:如何设置要由 CPU2驱动的 UARTB 外设

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499627/tms320f28p650dk-how-to-set-up-a-uartb-peripheral-to-be-driven-by-cpu2

器件型号:TMS320F28P650DK
主题:C2000WARE 中讨论的其他器件

工具/软件:

我们有一个使用 UARTB 的工作原型、其中 DMA 在 CPU1全双工上运行。
当我尝试将代码移至 CPU2时、无法使其正常工作。
我没有看到任何 DMA 中断:RX 或 TX。
具体而言、在运行时调试期间查看 UARTB 寄存器时、所有值都为0。
我首先想到的是未执行初始化、并且/或者 UARTB 寄存器无法从 CPU2写入。

我已将代码单步执行到 board.c UART INIT、似乎正在运行预期的 INIT 代码。

此外、我还确认了通过 CPU 和 DMA 启用外设和 R/W 访问。

我可能会遗漏一些常见的注意事项吗?

任何帮助都将非常感谢!

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

    您好:

    澄清一下、是否将 UART 分配给 CPU2? 必须使用 CPU1将 UART 外设分配给 CPU2。  您是否在代码中执行此操作?  此代码必须在配置时钟和引脚的 CPU1上运行、然后将外设分配给 CPU2。 完成此操作后、CPU2可以开始使用 它。

    您应该能够参考 位于的现有 MCAN 双核示例  \driverlib\f28p65x\examples\c28x_dual\mcan\ (mcan_cpu1_allocal_to_CPU2)并为 UART 更新它

    请告诉我这是否会改变您看到的行为。

    此致、

    Allison

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

    感谢您为我提供一个有效的例子。

    //
    //将 EtherCAT 分配给 CPU2
    //
    SysCtl_selectCPUForPeripheralInstance (SYSCTL_CPUSEL_MCANA、SYSCTL_CPUSEL_CPU2);

    我有一种感觉,我只是错过了一些东西...

    另一种依赖 SYSCFG 的情况可能不是最佳策略!