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-F28027F:复位时擦除代码

Guru**** 2582405 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/652758/launchxl-f28027f-code-being-erased-on-reset

器件型号:LAUNCHXL-F28027F
Thread 中讨论的其他器件:controlSUITE

你(们)好

我不熟悉 C2000开发、现在刚刚起步。 我有 F28027F LDK、我面临一个小问题:

当我刷写代码并尝试通过 CCS 对其进行调试时、所有操作都是按应有的方式进行的。 但是、在我对系统进行下电上电后、MCU 会恢复到开箱即用体验代码、而不是我加载到 CCS 中的代码。 您能帮助我理解它为什么会这样运行吗? 如何运行我在复位时使用 CCS 刷写的代码?

注意:3个开关、GPIO34、TDO、TRST、处于 ON 位置。

提前感谢

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

    根据您的描述、当您从 RAM "刷写"实际运行程序的器件时、就会出现这种情况。 这将解释为什么您的器件恢复到开箱即用程序、因为您尚未实际擦除和重新编程器件的闪存存储器、并且它设置为从闪存引导。

    检查 CCS 工程中使用的链接器命令文件(.cmd 文件)、它可能是 RAM 文件。 如果您想要对闪存进行编程、则必须更改为闪存链接器命令文件、您可以通过更改活动编译配置(查看工程属性)来实现该操作。

    如果您的项目没有闪存链接器命令文件、您可以在 controlSUITE 中找到:C:\ti\controlSUITE\device_support\f2802x\v230\f2802x_common\cmd

    有关器件引导模式的信息、请阅读 http://www.ti.com/lit/sprufn6的第2.9节。

    希望这对您有所帮助、
    Kevin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    此外、如果您只想擦除器件的闪存以删除开箱即用代码、则可以执行以下操作:

    1.连接到目标器件并处于 CCS 调试视图中
    2.转至 View -> Other -> Debug Folder -> Control Panel
    3.单击"On-Chip Flash"并向下滚动至右侧的"Erase Flash"

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

    大家好、Kevin

    感谢您的参与。 先前出现的链接器命令文件是 RAM 1、正如您所解释的、这就是代码在下电上电时丢失的原因。

    我尝试通过转至 Properties -> General -> Linker CMD file 并选择 F2802x_generic_flash.cmd 和 F28027.cmd 来更改链接器命令文件。 但是、在选择其中任何一个时、程序不是按应有的方式工作。 更改链接器命令文件的过程是否正确? 我是否需要做更多的事情? 我有一个 F28027F launchpad。 您能告诉我要使用哪个文件吗?

    再次感谢您的参与。

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

    您好、Teja、

    我相信你已经接近了、但你可能还需要做更多的事情。 F2802x_general_flash.cmd 应该适合您的用途。

    您遇到的问题可能是项目中的多个链接器命令文件。 当想要从闪存运行程序时、您的项目应该只有 F2802x_generic_flash.cmd 有效。 在您的项目中、右键单击您拥有的其他链接器命令文件、然后选择"从编译中排除"、这将使文件灰显并将其从当前编译中排除。

    它应如下所示:

    如果您的项目还没有 RAM 和闪存构建配置、您还可以创建 RAM 和闪存构建配置、以便在从 RAM 或闪存运行之间轻松切换。 这可以通过转至 Properties (属性)--> General (常规)--> Manage Configurations (管理配置)(右上角)--> New (新建)来完成。 然后、您可以设置一个闪存配置来包含闪存链接器命令文件、同时排除 RAM 文件、反之亦然、RAM 构建配置。 然后、通过右键单击项目、滚动到"编译配置"、然后设置要激活的配置、可以在编译之间轻松切换。

    如果您想深入了解链接器命令文件或想要了解更多信息、请查看此 wiki!

    http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

    希望这对您有所帮助、

    Kevin

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

    尊敬的 Kevin:

    我对迟迟不作出答复表示歉意。 感谢您的意见。

    我排除了其他链接器文件、但仍然无法使其正常工作。 我为您拍摄了一个小剪辑、以便更好地了解更改链接器文件时发生的情况。 请 在此处查看:https://youtu.be/ZZlfguVC30w

    在该程序中、我只在占空比变化的 GPIO0和 GPIO1上生成20kHz 方波。 在更改链接器文件时、您可以看到该程序是干网的。 我已在 属性中检查了器件。 它设置为 F28027。 但是、我有 F28027F。 我认为这没有任何影响。

    谢谢

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

    您可能需要使用 LauchPad 上的引导模式选择开关来让您的器件从闪存正常运行。 请查看引导 ROM 指南的第2.9节"引导加载程序模式": http://www.ti.com/lit/sprufn6

    构建项目后、您是否收到任何警告/错误(检查控制台)? 我没有深入研究过您正在使用的链接器命令文件、但我想不会有任何问题。

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

    大家好、Kevin!

    感谢您的参与。 我将会看一下。

    谢谢