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.

[参考译文] LAUNCHXL-F28379D:如何使用 CCS Theia [led_ex1_blinky]刷写两个 CPU 程序

Guru**** 2481985 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1450335/launchxl-f28379d-how-to-flash-both-cpu-programs-using-ccs-theia-led_ex1_blinky

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:C2000WARESysConfig

工具与软件:

我不确定如何使用 F28379D 微控制器的 DriverLib 中的 led_ex1_blinky 练习示例来刷写两个 CPU 程序。 CPU1程序正在运行、但当我尝试运行 CPU2程序时、两个 LED 都不闪烁。

我将使用 Debug Project、然后停止调试器来刷写程序。 我没有找到一种方法来同时刷写两个程序。 有人能指导我做这个吗?

谢谢。

我找到了该视频、但这是 Eclipse 版本的 CCS、因此它不是最新的。

https://www.ti.com/video/series/c2000-f2837xd-microcontroller-one-day-workshop-series.html?keyMatch=C2000%20workshop&tisearch=universal_search

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

    大家好、Lucas:

    CCS 20是基于 VS 代码的 CCS、因此虽然 IDE 看起来彼此不同、但它们支持相同的基本调试功能、例如调试项目。 您正在运行的示例是设计用于在 CPU1上运行的单核示例。 如果您想在 CPU2上运行示例、则必须将 外设的所有权转移到 CPU2等 请参阅 C2000Ware 中提供的多核示例、了解如何在代码中执行此操作。

    这些 E2E 还可以在此过程中提供有用的资源:

    (+) CCS/TMS320F28379D:如何将 CPU1和 CPU2固件组合在一起- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    (+) TMS320F28388D:如何仅调试 CPU2? - C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    此致、

    Aishwarya.

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

    您好、Rajesh。

    我之前讨论过 C2000Ware_5_01_00_00\driverlib\f2837xd\examples\dual\led 中的闪烁示例。

    led_ex2_sysconfig_cpu1.c 和 led_ex2_sysconfig_cpu2.c 似乎负责2个 CPU 之间的同步。 我的问题是如何在两个 CPU 都正确刷写的情况下进行调试、因为我似乎一次只能刷写一个 CPU。

    谢谢。

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

    Lucas、

    有关更多信息、请参阅此 E2E :(+) TMS320F28379D:调试:所有内核的自动连接和闪存- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    此致、

    Aishwarya.

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

    这些示例在 Eclipse 版本的 CCS 中运行良好、但是 GUI 随着 Theia 版本的使用而改变。 我要寻找一种方法来执行 CCS Theia 中链接所述的相同操作。

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

    Lucas、

    我懂了。 在 CCS Theia / 20上、使用 launch.json 文件的概念实际上、该过程非常简单。 此处提供有关此方面的更多信息:  7.1.调试概述—Code Composer Studio Theia 1.5.0文档. 以下是为示例创建配置的步骤、该示例同时使两个 CPU 闪烁、并且可以进行复制以与任何软件示例配合使用:

    1. 导入 示例。
    2. 右键点击"led_ex1_blinky_cpu1">"Debug Project"。
    3. 在"Debug Core Selection"弹出窗口中、选择两个要加载程序的内核、然后按"OK"。 您是否想在每次启动此项目时记住此选择、由您决定。 注意:此弹出窗口将在新项目的首次启动和/或未选择"Remember my selection"(记住我的选择)按钮时显示。
    4. launch.json 中的启动配置现在将如下所示:                                      
      {
                  "name": "led_ex1_blinky_cpu1",
                  "type": "ccs-debug",
                  "request": "launch",
                  "projectInfo": {
                      "name": "led_ex1_blinky_cpu1",
                      "resourceId": "/led_ex1_blinky_cpu1"
                  },
                  "launchSettings": {
                      "coresToLoadForProjectLaunch": [
                          "C28xx_CPU1",
                          "C28xx_CPU2"
                      ]
                  }
              }
    5. 此时、CCS 将加载程序并停止内核。 运行程序。  

    此致、

    Aishwarya.

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

    我尝试过您所说的、但这会在两个 CPU 上加载相同的程序。 如何为每个 CPU 指定不同的程序?

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

    Lucas、

    让我 明天就这个问题与您联系。

    此致、

    Aishwarya.

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

    Lucas、

    我相信您可以使用相同的 launch.json 文件来处理该问题。 我来联系 CCS 版本以便进一步评论。

    此致、

    Aishwarya.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我试过您所说的、但这将在两个 CPU 上加载相同的程序。 如何为每个 CPU 指定不同的程序?[/QUOT]

    请查看第7.2.2节: https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_debug-main.html#launch-configurations

    您可以指定一个 连接 定义多个的对象 个内核 对象、每个内核一个。 每个核心对象可以具有一个 的影响  指定要为该内核加载的程序的属性。 CPU1的内核对象可以指定要为 CPU1加载的程序、CPU2的内核对象对于 CPU2具有相同的功能。 有关连接、内核和程序对象/属性的示例用法、请参阅部分的最后一个屏幕截图。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以指定 连接 定义多个的对象 个内核 对象、每个内核一个。 每个核心对象可以具有一个 的影响  指定要为该内核加载的程序的属性。 CPU1的内核对象可以指定要为 CPU1加载的程序、CPU2的内核对象对于 CPU2具有相同的功能。 请参阅一节中的最后一个屏幕截图、了解连接、核心和程序对象/属性的示例用法。

    下面我们举例说明:

           {
                "name": "LAUNCHXL-F28379D.ccxml",
                "type": "ccs-debug",
                "request": "launch",
                "targetConfig": "/c:/Users/xxxxxxx/ti/CCSTargetConfigurations/LAUNCHXL-F28379D.ccxml",
                "connections": [
                    {
                        "name": "Texas Instruments XDS100v2 USB Debug Probe",
                        "cores": [
                            {
                                "name": "C28xx_CPU1",
                                "program": "C:/Users/xxxxxxx/workspace_ccstheia2/led_ex1_blinky_cpu1/CPU1_RAM/led_ex1_blinky_cpu1.out"
                            },
                            {
                                "name": "C28xx_CPU2",
                                "program": "C:/Users/xxxxxxx/workspace_ccstheia2/led_ex1_blinky_cpu2/CPU2_RAM/led_ex1_blinky_cpu2.out"
                            }
                        ]
                    }
                ]
            }

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

    我已经尝试了上述两个连接的配置文件、但它仍然在两个 CPU 上加载 led_ex1_blinky_cpu1.out 程序。 以下是我为启动该程序所执行的步骤:

    1. 单击错误所在的绿色箭头
    2. 它会请求将程序加载到哪个内核上。 我同时选择这两者并单击"确定"。
    3. 当我看到"调试"选项卡时、我看到 CPU2的调用堆栈位于 led_ex1_blinky_cpu1.c 中、应该不是如此

    我已经以.zip 形式附加了两个工程、可能是工程配置文件中有问题了?

    新年快乐!

    e2e.ti.com/.../led_5F00_ex1_5F00_blinky_5F00_dual.zip

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "led_ex1_blinky_dual",
                "type": "ccs-debug",
                "request": "launch",
                "projectInfo": {
                    "name": "led_ex1_blinky_cpu1",
                    "resourceId": "/led_ex1_blinky_cpu1"
                },
                "targetConfig": "led_ex1_blinky_cpu1/targetConfigs/TMS320F28379D.ccxml",
                "groupInfo": [
                    {
                        "name": "group_0",
                        "syncMode": true,
                        "cores": [
                            "Texas Instruments XDS100v2 USB Debug Probe/C28xx_CPU1",
                            "Texas Instruments XDS100v2 USB Debug Probe/C28xx_CPU2"
                        ]
                    }
                ],
                "connections": [
                    {
                        "name": "Texas Instruments XDS100v2 USB Debug Probe",
                        "cores": [
                            {
                                "name": "C28xx_CPU1",
                                "program": "led_ex1_blinky_cpu1/CPU1_RAM/led_ex1_blinky_cpu1.out"
                            },
                            {
                                "name": "C28xx_CPU2",
                                "program": "led_ex1_blinky_cpu2/CPU2_RAM/led_ex1_blinky_cpu2.out"
                            }
                        ]
                    }
                ],
            }
        ]
    }

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

    您似乎正在为项目会话使用启动功能。 请使用无工程调试会话。

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

    当我尝试删除 launch.json 中的 projectInfo 字段时、系统提示工程没有目标配置文件。 点击绿色的调试按钮如何进入项目之外?

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

    请对 CCXML 文件进行无工程(手动)启动。 这将为该 ccxml 文件创建启动。 您可以在此启动条件下进行修改、以便为每个 CPU 加载单独的*。out 文件。  

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

    这似乎可以解决我的问题。 不过、我对这种方法有一些担忧:

    1. debug less 的启动配置位于工作区的.theia 文件夹中。 我不得不打开文件资源管理器、然后在 Theia 中拖动该文件、因为它是一个隐藏文件夹。
    2. 我必须放置到可执行文件的绝对路径、这对代码可移植性非常不利。 是否还有其他方法可以仅使用相对路径来实现此目的?

    感谢您的所有帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    调试最小的启动配置位于工作区的.theia 文件夹中。 我必须打开文件资源管理器、然后在 Theia 中拖动文件、因为它是一个隐藏文件夹。

    在"Debug"视图中有一个用于打开 launch.json 文件的按钮:

    https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_debug-main.html#debug-view

    它看起来像一个小齿轮图标:

    [报价 userid="634695" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1450335/launchxl-f28379d-how-to-flash-both-cpu-programs-using-ccs-theia-led_ex1_blinky/5594991 #5594991"]我必须放置可执行文件的绝对路径、这对代码可移植性非常不利。 是否有其他方法可以仅使用相对路径来执行此操作?

    可以使用变量。  ${workspaceFolder}可能是最有用的一个、它指的是工作区文件夹的位置(CTRL+SPACE 打开自动完成建议):

    谢谢

    Ki