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:LAUNCHXL-F28379D 开发套件:无法将双核闪烁示例加载到 RAM 并运行

Guru**** 1821780 points
Other Parts Discussed in Thread: UNIFLASH, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1433024/tms320f28379d-launchxl-f28379d-dev-kit-cannot-load-and-run-dual-core-blinky-example-to-ram

器件型号:TMS320F28379D
主题中讨论的其他器件:UNIFLASHC2000WARE

工具与软件:

大家好、我基于 F28379D MCU 的进程间通信成功构建了双核 RAM 配置。 我需要一些关于 CPU2的 RAM 启动过程如何工作的教育。

我已经 在闪存配置中成功编译了定制的双核应用程序、通过 uniflash 命令行上传了它们、并成功运行了它们。 但是、当在 RAM 配置中重复此过程时、我根本无法让 CPU2引导。

为了实现  已知的起点、我从 C2000Ware 返回双核闪烁示例(driverlib/f2837xd/examples/dual/led)、并通过 CCS 为 RAM 目标进行编译。 无论是通过 CCS、Uniflash GUI 还是 uniflash 命令行进行刷写、都只能让 CPU1的 LED 闪烁。

我如何编译或刷写此示例代码是否存在潜在问题?

我的问题指向我的部分关于 CPU2如何启动的误解、因此感谢帮助。

uniflash 版本:v8.7.0

C2000Ware 版本:v5.02.00.00

CCS 版本:v12.8.0

操作系统: Ubuntu 12.10.

我的 uniflash 调用:

Flasher=/opt/ti/uniflash_/ dslite.sh

FLASH_board_config=configs/flash_board_config.ccxml

settings="--verbose -N --config=$FLASH_BOARD_CONFIG"

$FLASHER $settings -核心2 led_ex1_blinky_cpu2/cpu2_rm/led_ex1_blinky_cpu2.out
$FLASHER $settings -- core 0 led_ex1_blinky_cpu1/cpu1_rm/led_ex1_blinky_cpu1.out -- run


e2e.ti.com/.../uniflash_5F00_output.txt 

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

    Brian、您好!

    只是为了澄清、您在运行 led_ex1_blinky_CPU1和 led_ex1_blinky_CPU2示例时没有变化、对吗? 您应该能够通过以下步骤从 CCS 运行该示例:

    1. 通过依次选择"Project">"Import CCS Projects..."、将两个工程导入 CCS 工作区。 >>[在 C2000ware 中导航至 led_ex1_blinky_cpu1]
    2. 两个项目都应该自动导入并且被设定为 RAM 构建配置
    3. 通过右键点击每个项目名称并选择"Build Project"来构建两个项目  
    4. 转到 View >> Target Configurations 并导航至其中一个示例工程的目标配置文件
    5. 右键单击 CCXML 文件并选择"Launch Selected Configuration"以连接到调试程序
    6. 右键点击 CPU1、然后选择"Connect Target"
    7. 选择 Run >> Load >> Load Program 并导航至 led_ex1_blinky_cpu1.out
    8. 点击"Resume"按钮、开始在 CPU1上运行代码
    9.  在 CPU2上重复步骤7-11

    此致、

    Delaney

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

    感谢您的响应-您的步骤可以正常工作、尽管没有像我所期望的那样同步两个 LED。

    我现在只需要帮助将这转录到 uniflash 命令行中、我的目标是闪存到 RAM、并立即运行、而无需按下 LaunchPad 上的物理重启按钮。 您能协助吗?

    或者、如果您可以提供一个使用 uniflash GUI 刷写它的示例、那么我可以自行转录到命令行。

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

    Brian、您好!

    我将轮流由 Uniflash 专家向您提供帮助。

    此致、

    Delaney

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

    Brian、您好!

    下载第一个 RAM 应用程序后、您是否尝试过使用"-r"参数通过命令行界面进行重置?

     UniFlash 快速入门指南中对此 进行了介绍。

    此外、在调用 DSLite shell 之前为 CPU1和 CPU2应用程序生成软件包对您的过程是否有益?

    谢谢。此致、

    Charles

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

    你好,谢谢你的答复。 我已经尝试了一些排列、包括 CPU 和系统重置、首先交换哪个内核闪存、以及`--运行`开关的组合。 我将您的建议解释为:

    flasher=/opt/ti/uniflash_*/dslite.sh
    
    flash_board_config=configs/flash_board_config.ccxml
    
    settings="--verbose -N --config=$flash_board_config"
    
    $flasher $settings --core 2 led_ex1_blinky_cpu2/CPU2_RAM/led_ex1_blinky_cpu2.out
    
    $flasher $settings -r 0
    
    $flasher $settings --core 0 led_ex1_blinky_cpu1/CPU1_RAM/led_ex1_blinky_cpu1.out --run

    是这样吗?

    在这种情况下、uniflash 执行运行到完成、没有错误、但实际上只有 CPU1 从 LED 的状态判断引导(即红色 LED 保持亮起)。  

    为了完整起见、我会附加 CCXML 文件和二进制文件、但看起来我无法将文件附加到回复。 无论如何、闪烁源文件与 C2000Ware 示例中的内容大致相同、并 使用默认的 CCS 环境进行编译。

    提及"包"时、是否指的是 uniflash 可以生成的 zip 文件? 如果是、我还没有看到比通过我自己的 shell 脚本调用 uniflash 更有优势。