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.

[参考译文] TM4C1290NCPDT:bootcfg 复位

Guru**** 2538950 points
Other Parts Discussed in Thread: TM4C1290NCPDT, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/916931/tm4c1290ncpdt-bootcfg-reset

器件型号:TM4C1290NCPDT
主题中讨论的其他器件:TM4C123UNIFLASH

您好!

我的 BOOTCFG 编程错误、其值 为 FFFF3EFE、这与我在电路板上使用的引脚不匹配。  我正在使用其他帖子中提到的闪存命令。  由于 NW 为1、我假设我仍然可以使用我所需的新值 FFFF92FE 对其重新编程。  但是、每次我重新启动时、它都会恢复为旧值。

这使我认为我需要首先擦除闪存

我使用 LM 闪存编程器完成了调试端口解锁序列、并选择了 Fury、DustDevil、TM4C123和 TM4C129类。  我在这个过程中使用了 Stellaris ICDI 板。  我已经使用对话框描述的顺序完成了几次解锁。  但是、每次我重新启动 TM4C129时、BOOTCFG 仍然保留旧值。

我是否在正确的轨道上、我做了什么错?  我是否可以在 TM4C1290NCPDT 上重写 BOOTCFG?

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

    下面是有关症状的更多信息。  以下屏幕显示解锁过程已完成。  下电上电后、不会执行程序、因此我假设至少部分闪存被擦除。  但是、当我下载新程序并在引导过程中中断部分时、我注意到 BOOTCFG 和 EEPROM 都没有复位、它们会保留其旧值。

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

    对于解锁操作、我也尝试了 Uniflash。  但是、解锁按钮只会导致错误提示 Error! 模块关闭。  如果您对使用 TI 工具将 BOOTCFG 恢复为原始值的可重现程序有任何见解、我们将不胜感激。  EEPROM 也应根据数据表进行擦除。

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

    您好!

     解锁序列应批量擦除器件的主闪存、EEPROM 和任何非易失性寄存器(例如、user0/user1/bootcfg)。 您是否有可重试的 LaunchPad?

     我想你重新编程 BOOTCFG、与 Amit 在这篇文章中描述的内容类似、对吧?

    https://e2e.ti.com/support/microcontrollers/other/f/908/t/535559?tisearch=e2e-sitesearch&keymatch=bootcfg

    易失性 U32 bootCfgReg = HWREG (SYSCTL_BASE + BOOTCFG_OFFSET);
    bootCfgReg &= 0xfffffffcU;
    FLASH_CTRL->FMA = 0x75100000U;
    FLASH_CTRL->FMD = bootCfgReg;
    FLASH_CTRL->FMC = 0xa4420008U;  

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

    您好、Charles、

    是的、我将使用与 Amit 的帖子类似的程序对其进行编程。

    我在定制板上取得了突破、但要实现这一目标却是一场艰难的努力。  首先,我在我之前的帖子中讲错了,我说闪存的程序区域被擦除了。  我了解、即使具有 Stellaris ICDI 的 LM 闪存编程器说"解锁完成"、也没有擦除任何闪存。

    其他帖子建议解锁操作需要多次尝试才能生效。  我用 Stellaris ICDI 试用了 LM 闪存编程器大约5次。  每次它说"解锁完成"、但在下电上电后、我的程序仍然运行、指示它未被擦除、并且 EEPROM 和 BOOTCFG 都保留了它们的旧值(不对 FFFF 进行复位)。

    当我在 Uniflash 中尝试使用 Stellaris ICDI 时、我收到了我之前提到的错误。

    最后、我切换到使用 XDS110。  在 Uniflash 中、我注意到 GUI 中不存在解锁选项、即使它适用于 ICDI 也是如此。

    我转到命令行并从那里运行命令。  路径与文档不匹配:

    C:\ti\uniflash_6.0.0\desktopdb\content\TIC扩音器\win\ccs_base\common\uscif>dbgjtag -f @xds110 -Y 解锁、mode=Tiva

    执行解锁过程。

    在器件上电时使 RESET 有效并保持复位状态。
    按任意键继续。

    释放 RESET。
    按任意键继续。

    对电路板进行下电上电以完成解锁过程。

    重启后、我的程序未运行、因此我知道它已被擦除。  bootcfg 读回 0xFFFFFFFE、然后我能够对我的新值进行编程。  EEPROM 也被擦除。

    我想我在这里的抱怨是、使用 Stellaris ICDI 的记录方法根本不起作用、浪费了一些时间。  如果过程中未首先显示 ICDI、我本会直接转到 XDS110。

    感谢您参与交谈!  我担心这会花费大量的调试时间、但它在 XDS110上运行正常。  如果 ICDI 仍然是支持的恢复方法、我想知道其他人是否已在 TM4C1290NCPDT 上成功使用 ICDI。

    对于可能看到我的帖子的其他人、下面是我的 Uniflash 版本信息:

    C:\ti\uniflash_6.0.0\desktopdb\content\TIC扩音器\win\CCS_base\common\uscif>dbgjtag.exe

    实用程序构建日期为"2020年23日"。
    实用程序构建时间为'17:45:31'。
    实用程序软件包版本为'9.1.1.00002'。
    实用程序组件版本为'35.0.0'。

    谢谢、
    Chris Norris

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

    尊敬的 Chris:

     很高兴您这次能够解锁器件。 我们始终支持 ICDI 和 LM 闪存编程器。 我不知道为什么您无法使用 ICDI 解锁器件。 这对我来说总是成功的。 如果您遇到相同的问题、并且无法使用 ICDI/LM 闪存编程器解锁、请打开新的线程、我们很乐意提供帮助。