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.

[参考译文] TMDSCNCD28388D:如何使用 CCS 加载和运行 c28和 cm 代码、使 Enet 示例运行良好

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1223164/tmdscncd28388d-how-to-use-ccs-to-load-and-run-c28-and-cm-code-so-enet-examples-run-well

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

我不熟悉 C2000Ware、CCS 和现代 TI 架构。 我接触过的最后一个 TI 电路板是早在90年代就出现的 C44 Maranello 电路板。 我在以太网示例方面遇到了难题(需要 CPU_1和 CM 上协调加载和代码启动)...

创建目标配置 C2000Ware_4_03_00_00 和 A TMDSCNCD28388D 开发板。

尝试的第一个示例是针对以太网:项目的示例  Enet_lwip enet_lwip_udp

这两个测试都失败、因为它们在中卡在循环中 以太网_resetModule() 函数(在 Ethernet.c 中)。

我起初没有意识到 必须参与 CPU_1才能使示例(目标是 ARM/CM)正常工作。 通过搜索此论坛、我了解到 C28 CPU_1必须运行代码来设置 GPIO 以便时钟驱动以太网(至少这是我的理解)。

根据我在该论坛中的阅读、我应该能够使用项目 ETHERNET_C28x_CONFIG 和的 GPIO、以配置以太网的 GPIO。 或者、如果我首先在工程设置中定义符号"Ethernet"、我可以使用项目"cm_common_config_C28x"。

但是、从论坛帖子中似乎看出、开发人员必须强制事情按特定的顺序发生... 在运行这些 ARM 项目中的一个之前、必须以某种方式首先运行 CPU_1代码(或者运行到一个断点)。 有人说要加载 C28项目、然后加载 CM (ARM)项目、再运行 C28项目(在首次设置断点后)、最后运行 CM 代码。 我认为 CCS IDE 提供了一种完成必要舞蹈的方法、但我需要有关如何实现它的说明。

如何使用 CCS 工具将代码加载(但不启动)到 CPU_1上、然后将代码加载(但不启动)到 CM 上、再仅调试/运行 CPU_1、最后运行已加载到 CM 中的代码? 我不明白如何使用 CCS 在不运行两个程序的情况下加载它们、然后分别重新连接并启动加载的程序以强制执行顺序。

此外、CM 项目配置为从开箱即用的闪存运行。 我在调试时看到一些消息:(如果我理解正确)您不应从 CPU_1上的 RAM 运行程序和从 ARM 上的闪存运行程序、因为上传/闪存进程将覆盖 RAM、从而干扰加载的 C28x 程序。 我可能只是混淆和误解我所阅读的内容以及所涉及的问题。

基本上、我需要了解如何加载 C28x 示例、CM 示例、并按适当的顺序一起运行它们。 我不太了解如何使用 CCS 工具。

以下是我读过的一些我参考的帖子:

e2e.ti.com/.../ccs-tms320f28388d-unable-to-run-ethernet-examples

e2e.ti.com/.../tmdscncd28388d-stop-with-ethernet_resetmodule-in-lwip

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

    您好!

    CPU1 (C28x1)是此器件中的主内核、必须在其他内核之前连接和加载。 时钟和其他基本系统初始化必须由 CPU1应用程序完成。 例如、如果您要运行 CM 示例、则应向 CPU1加载一个执行系统初始化的基本应用程序。

    对于以太网、您可以在以下项目中找到此初始化已完成-  ETHERNET_C28x_CONFIG  已预处理以太网符号的 CM_COMMON_CONFIG_C28x。  

    要运行,您可以按照以下步骤操作  

    1.  

    在 Target Configurations 下、右键点击 F28388D 的目标配置文件、然后选择‘Launch Selected configuration’。  

    2.连接 CPU1,加载  ETHERNET_C28x_CONFIG  CM_COMMON_CONFIG_C28x 然后运行二进制文件。
    3。连接 Cortex_M4内核(CM 内核)、然后将以太网示例加载到其中。  
    4.然后运行 CM 内核。
    此致
    Siddharth
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。 这解决了将应用示例定序为在 CPU1完成系统初始化后运行的问题。 但我想知道-通常如何才能保证 CM 上的应用程序执行延迟、直到以已部署或自动配置在 CPU1上完成系统初始化、而无需使用调试器手动加载和启动每个程序?

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

    您好!

    CPU2和 CM 需要在完成系统初始化后由 CPU1应用程序引导。这可以通过使用 driverlib 函数 Device_bootCPU2和 Device_bootCM 来完成

    有关更多详细信息、请参阅以下指南

    software-dl.ti.com/.../intro.html