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.

[参考译文] C2000WARE:在双核 LED 闪烁示例中加载 CPU2 工程时出现[LAUNCHXL-F28P65X]错误

Guru**** 2874300 points

Other Parts Discussed in Thread: C2000WARE, LAUNCHXL-F28P65X, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1628257/c2000ware-launchxl-f28p65x-error-when-loading-cpu2-project-in-dual-core-led-blink-example

器件型号: C2000WARE
主题中讨论的其他器件: LAUNCHXL-F28P65XSysConfig

  CCS 版本: 20.2.0.12__1.8.0  

  C2000Ware 版本: C2000Ware_6_00_01_00

问题说明: 我正在使用 LAUNCHXL-F28P65X 上的双核 LED 闪烁示例。

  1. 当我注释掉 CPU1 工程中的 CPU2 引导相关代码和仅刷写 CPU1 时、LED 会按预期闪烁。

  2. 但是、当我将 CPU2 引导代码包含在 CPU1 中并尝试将 CPU2 工程加载/写入器件时、会遇到以下错误:

C28xx_CPU1:如果在一个内核上完成擦除/编程 (E/P) 操作、则另一个内核不应从共享 RAM (SR) 执行、因为它们用于 E/P 代码。 对选定的闪存组进行编程后、可以从 SR 开始执行用户代码。

C28xx_CPU1:只有 CPU1 片上闪存插件可以为 CPU1 和 CPU2 闪存操作配置时钟。 调用 CPU1 闪存操作时插件会自动配置 PLL。 但是、如果用户想要仅执行 CPU2 闪存操作而无需在当前会话中执行 CPU1 操作、则应在调用 CPU2 闪存操作之前点击 CPU1 的片上闪存插件中的“配置时钟“按钮。 使用该按钮时、闪存插件将使用 INTOSC 作为时钟源、在 200MHz 处配置 CPU1/CPU2 的时钟。 插件将保留这样的 PLL 配置、用户应用程序应根据应用程序的要求配置 PLL。

C28xx_CPU1:在使用闪存插件执行任何闪存操作之前、(a) 请选择应映射到哪个 CPU (CPU1 与 CPU2) 的闪存组 — 该选择应在 CPU1 闪存插件 GUI 中完成。 (b) 请选择用户希望闪存插件擦除的闪存组(在 CPU1 闪存插件 GUI 和 CPU2 闪存插件 GUI 中)

C28xx_CPU2:如果在一个内核上完成擦除/编程 (E/P) 操作、则不应从共享 RAM (SR) 执行另一个内核、因为它们用于 E/P 代码。 对选定的闪存组进行编程后、可以从 SR 开始执行用户代码。

C28xx_CPU2:只有 CPU1 片上闪存插件可以为 CPU1 和 CPU2 闪存操作配置时钟。 调用 CPU1 闪存操作时插件会自动配置 PLL。 但是、如果用户想要仅执行 CPU2 闪存操作而无需在当前会话中执行 CPU1 操作、则应在调用 CPU2 闪存操作之前点击 CPU1 的片上闪存插件中的“配置时钟“按钮。 使用该按钮时、闪存插件将使用 INTOSC 作为时钟源、在 200MHz 处配置 CPU1/CPU2 的时钟。 插件将保留这样的 PLL 配置、用户应用程序应根据应用程序的要求配置 PLL。

C28xx_CPU2:在使用闪存插件执行任何闪存操作之前、(a) 请选择应映射到哪个 CPU (CPU1 与 CPU2) 的闪存组 — 该选择应在 CPU1 闪存插件 GUI 中完成。 (b) 请选择用户希望闪存插件擦除的闪存组(在 CPU1 闪存插件 GUI 和 CPU2 闪存插件 GUI 中)

C28xx_CPU2:GSxMSEL 寄存器配置正确

C28xx_CPU2:闪存编程器:擦除组 0 FMSTAT(某些器件上的 STATCMD)值= 65(十进制)时出错。 操作已取消 (0)。

C28xx_CPU2:文件加载程序:内存写入失败:未知错误

C28xx_CPU2:GEL:文件:C:\Users\PNE\workspace_ccstheia\led_ex2_blinky_sysconfig_CPU2\flash\led_ex2_blinky_sysconfig_CPU2.out:加载失败。

我的修改:

  1. 添加了 _LAUNCHXL_F28P65X预定义符号 “C2000 Compiler“选项中找到。

问题:

  1. F28P65X LaunchPad 是否需要专门用于双核运行的其他符号或构建配置?

  2. 示例的链接器命令文件 (.cmd) 是否需要进行特定的修改、以避免 CPU2 闪存过程中发生存储器冲突?

  3. 在 CCS 中连接和加载两个内核时、我是否应该遵循特定的顺序?