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.

[参考译文] TMS320F28379D:如何使双 CPU 从闪存运行

Guru**** 2589280 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1104997/tms320f28379d-how-to-make-dual-cpu-run-from-flash

器件型号:TMS320F28379D
主题中讨论的其他器件:LAUNCHXL-F28379DC2000WARE

尊敬的 TI 专家:

我希望在电源复位后从闪存运行双 CPU、但我还无法成功。

我正在使用 LaunchxL-F28379D。

我从导入了示例项目 /driverlib/f2837xd/example/dual/led

一个是 LED_ex1_blinky_CPU1、另一个是 LED_ex1_blinky_CPU2。

由于这些配置用于 RAM、我更改了 CPU1的编译配置'CPU1_FLASH_Standalone '和 CPU2的'CPU2_FLASH'。

编译成功、并使用 CCS 调试将.out 分别加载到 CPU1内核和 CPU2内核中。

当我运行时、它无法正常工作。

在 Device_bootCPU2的以下部分中、我跟踪并发现 CPU1正在阻止

    //
    // Wait until CPU02 control system boot ROM is ready to receive
    // CPU01 to CPU02 INT1 interrupts.
    //
    do
    {
        bootStatus = HWREG(IPC_BASE + IPC_O_BOOTSTS) &
                     C2_BOOTROM_BOOTSTS_SYSTEM_READY;
    } while ((bootStatus != C2_BOOTROM_BOOTSTS_SYSTEM_READY));

我在代码下面进行了注释、

#ifdef _STANDALONE
#ifdef _FLASH
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
    Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
#else
    //
    // Send boot command to allow the CPU2 application to begin execution
    //
    Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);

#endif // _FLASH
#endif // _STANDALONE

然后、它运行良好。

但发生了另一个问题。

在我按下"S"重置按钮后、CPU1工作正常、但 CPU2未运行其代码。

我认为这是因为 CPU1未使用 Device_bootCPU2引导 CPU2。

除了将构建配置..._RAM 更改为..._FLASH 或..._FLASH_standalone 之外、我没有做任何更改。

还有什么需要我做的吗?

期待从 TI 专家处获得任何指南。

提前感谢您。

James Kim

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

    您好!

    在连接调试器的情况下、无法运行 DEVICE_BOOTCPU2函数。 这就是为什么您看到 Device_bootCPU2仅在独立配置中调用的原因。

    因此  、当调试器连接时、请使用 cpu_flash 配置、调试 器将负责引导 CPU2。 在独立 运行期间、切换到 CPU1_FLASH_ONstandalone  配置。 您仍然可以通过 CCS 加载.out。 加载后、您可以执行加电复位以进行独立执行

    此致、

    Veena

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

    您好、Veena、

    感谢您的快速回答。

    我同时成功地运行了双 CPU。

    谢谢你。

    此致、

    James。