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:POR 后代码未执行

Guru**** 2535750 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE, SYSCONFIG, LAUNCHXL-F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1552779/tms320f28379d-code-not-executing-after-a-por

部件号:TMS320F28379D
主题中讨论的其他器件: UNIFLASHLAUNCHXL-F28379D、C2000WARESYSCONFIG

工具/软件:

尊敬的团队:

我们遇到了一个问题、可以观察到代码在切断 MCU 的电源后未执行、稍后又重新提供。

我们使用 TMS320F28379D 为电机控制应用设计了定制电路板。 目前我们正在通过 LaunchPad (LAUNCHXL f28379D) 为其供电、因为我们设计用于为该定制电路板供电 的另一块电路板 (Power board) 尚未到达。

我们刷写的代码(固件)是在定制板上简单闪烁的 LED。

因此、我们正在调查这种行为的问题是什么?

这是硬件问题还是固件问题?

我们感谢您帮助确定原因。 如果您有任何建议需要我们在此设计中进行检查和验证、请告诉我。

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

    您好团队:

    我们可以对此进行任何更新吗?

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

    您好、

    您是否已验证闪存已编程且 MCU 正在引导至闪存?

    谢谢、

    Ben Collier

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

    尊敬的 Benjamin Collier :

    非常感谢您的答复。

    没有、我没有验证。

    如何验证  闪存是否已编程以及 MCU 是否正在引导至闪存。

    您能指导我完成所需的步骤吗?

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

    您好、

    您将需要连接到器件并检查存储器中的闪存位置。  

    此外、检查链接器命令文件并确保将代码放置在闪存中。

    此致、

    Ben Collier

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

    您好、

    您能查看 TRM 的 ROM 代码和外设启动部分吗? 可以更改哪些引脚是引导模式引脚、或者只是对引导模式进行硬编码。 通常建议使用 BOOT 引脚、以便在需要执行某些调试步骤时可以选择不引导至闪存。

    此外、请确保您了解以下信息:  TMS320F28375D:如何在复位后强制 CPU2 进入 main

    此致、

    Ben Collier

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

    您好 Ben、

    感谢您的答复。

    我们确实发现了问题、显然是启动引脚。 在我们的定制电路板设计中将 GPIO72 和 84 拉为高电平后、我们看到器件在 POR 后正确引导并执行代码。

    此外、我还有一个问题、在我们的设计中、我们已经将 GPIO 84 用于其他目的、所以想知道是否通过通过 BOOTCTRL 寄存器重新编程/选择一些不同的引脚作为引导引脚、我们会 ALE 将引导模式更改为仅一次其他模式? 在执行此操作时、我们还需要注意什么?  

    我们还想知道、在未来设计自定义引导加载程序时、应如何配置这些引脚、引导模式应该是什么? 它会在这方面造成任何并发症吗?  

    谢谢你。

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

    您好、

    在我们的设计中、我们已经将 GPIO 84 用于其他目的、所以想知道是否通过通过通过 BOOTCTRL 寄存器重新编程/选择一些不同的引脚作为引导引脚、我们是否只能将引导模式更改为其他模式一次? 在执行此操作时、我们还需要注意什么?  [/报价]

    您将能够选择一次新的引导引脚、并且您将能够在上电时更改新引导引脚的状态、根据需要在不同的引导模式之间进行选择。  

    另外、我们想知道、将来在设计自定义引导加载程序时、应该如何配置这些引脚、引导模式应该是什么? 它会在这方面造成任何并发症吗?  [/报价]

    请告诉我您的自定义引导加载程序。  

    此致、

    Ben Collier

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

    您好 Ben、

    感谢您的答复。

    我们尚未确定自定义引导加载程序的架构、但它将是基于 CAN 的引导加载程序(我们将使用 CAN 将映像/二进制应用程序文件从工具传输到引导加载程序)。 它也可能基于我们在开发过程中面临的复杂性而构建的 UART。

    此外、在我们的设计中、我们尚未在这两个 GPIO 上使用任何外部上拉电阻、我们是否可以使用内部上拉[ GPIO_PIN_TYPE_PULLUP 指定  GPIO_setPadConfig () ]、然后使用它们进入 GET 模式 ( 闪存引导模式 在未编程的设备上默认设置)?

    您还能向我们提供资源/示例代码、以便使用 BOOTCTRL 寄存器通过固件更改引导模式、在执行此操作时是否需要遵循任何步骤?

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

    您好、

    此外、我们在这两个 GPIO 上的设计中尚未使用任何外部上拉电阻、我们是否可以使用内部上拉电阻[ GPIO_PIN_TYPE_PULLUP 指定  GPIO_setPadConfig () ]、然后使用它们进入 GET 模式 ( 闪存引导模式 在未编程的设备上默认为)?

    如果要使用引导引脚、则需要使用外部上拉电阻。 对于首次编程、您应该能够连接悬空的引导引脚、然后可以根据需要对新的引导引脚进行编程。 当 MCU 在应用程序中引导时、如果您选择使用引导引脚、则必须使用外部电阻器。 也可以对永久引导模式进行编程。 通常不建议这样做、尤其是在使用代码安全性时。 根据安全设置、在闪存引导模式下可能无法连接到器件。  

    请参阅以下应用手册以获取说明: https://www.ti.com/lit/pdf/spracp8

    此致、

    Ben Collier

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

    您好 Ben、  

    感谢您的反馈。

    我们正在探索使用 GPIO 42 和 43 作为引导引脚、而不是 72 和 84。 我们遵循 dcsm_security_tool 从导入示例工程  

    CCS IDE 中的“Resource Explorer“选项卡:C2000 实时微控制器/Embedded Software/C2000Ware (6.00.00.00)/English/Devices/F2837XD/F28377D/Examples/Driverlib/cpu1/dcsm/dcsm_security_tool

    我们对该工程中提供的 SysConfig 文件进行了以下更改:

    现在,一旦我们测试这些更改,在调试模式下,我们会在执行最后一行后观察到以下错误:  LB _c_int00

    观察以下图像:

    想知道为什么会发生这种情况呢?

    您能帮助我们解决这个问题吗?

    供参考:我们将首先使用 LAUNCHXL-F28379D 来测试这种引导引脚的重新配置更改、然后计划根据结果在我们的定制电路板上实施。 引脚 42、43 还不会通过连接到 3.3 的电阻器上拉/高电平。

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

    您好、

    您可以针对此问题发布新主题吗? 我们根据主题分配这些主题、这不再是我的专业领域。 由于这是一个新问题(并非我们最初遇到的问题)、因此我认为最好使用 DCSM 工具创建一个有关设置自定义引导引脚的新线程。

    此致、

    Ben Collier

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

    Sure Ben、

    非常感谢您的帮助、非常感谢!!

    我会做必要的。