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.

[参考译文] TM4C1231H6PM:在首次加载新版本软件(这些软件已正常运行10年)后、将闪存程序禁用寄存器设置为0。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1414355/tm4c1231h6pm-flash-program-disable-registers-being-set-to-0-after-first-load-of-new-rev-of-software-that-s-been-working-fine-for-10-years

器件型号:TM4C1231H6PM
主题中讨论的其他器件:SEGGER

工具与软件:

CCS 10.4.0.00006、当我们最初刷写最新版本的软件时、FMPRE4至 FMPRE15全部设置为0。  看看它与先前版本的差异、我们的代码没有什么可以清除这些寄存器。  此时无法对该器件进行重新编程。  使用 Segger J-Link 和 Flasher JTAG 接口。

我有一个 TI JTAG 接口能够解锁这些 MPU、但这在生产中是不可行的。

它肯定闻起来像是 CCS 或 Segger 驱动程序中的错误。

谢谢、Doug。

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

    尊敬的 Doug:

     您可以显示注册浏览器窗口吗? 请参见下文。 只有 FMPRE0、 FMPRE1、FMPRE2 、FMPRE3 。  TM4C123没有寄存器(例如 FMPRE4到 FMPRE15)。 虽然您的器件可能由于其他原因而被锁定、但我认为这不是由于 FMPRE4-FMPRE15保护。  

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

    哦,你是对的,我在看错误的数据表!  当我有一个更有说服力的案例时、我将会回到你的身边。

    谢谢 Charles

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

    当我读到错误的数据表时、我会很懊恼、甚至可能不是最后一次。

    因为我拥有的电路板上的 CPU 已锁定、所以 在 TI JTAG 接口到达之前、我无法使用调试器来查看寄存器并且可以将其解锁。  但该软件具有内置监视器、可用于查看存储器、而且4个 FMPREx 寄存器全都是1、因此这不是问题。

    对可能发生什么以及我应该在哪里寻找有什么建议?

    谢谢、Doug

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

    更多信息: 错误为"在第0页长度为0x3E00的0x7FF0处写入存储器块时出现问题"

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

    尊敬的 Doug:

      获取 XDS 仿真器后、能否尝试解锁器件然后对器件重新编程? 该错误表明它无法写入0x7FF0处的存储器位置。 不过、我不知道为什么它无法写入内存。  

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

    谢谢 Charles、

    我有 XDS、但还没有用于连接的适配器、应该明天显示、从那时起就会开始使用。

    道格

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

    命令行: "ps C:\ti\ccs1011\ccs\ccs_base\common\uscif>.\dbgjtag.exe -f@xdf200 -Y unlock、mode=Tiva"

    它第一次工作、但失败了、因为它没有检测到 Vcc。  我想我已经解决了连接问题、但这次运行它时收到错误消息"the -f option was used、bboard config file was not found (使用了-f 选项、但是找不到板载配置文件或缺少读取权限)。  它的名称是:"xdf200.i"

    我已经扫描了整个\TI 目录、没有名为"xdf200.i"的文件(没有名为 xdf200.*的文件)。

    提供帮助。

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

    命令行开头的"PS"为".\dbgjtag.exe"

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

    不是的、"PS"确实存在(" Power Shell")。

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

    尊敬的 Doug:

     你没有键入旗标? 应用手册。 您编写了 XD f 而不是 XD 美国

    PS C:\ti\ccs1011\ccs\ccs_base\common\uscif>.\dbgjtag.exe -f@XD f 200 -Y 解锁、MODE=TIVA。  

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

    "那你为什么要这样对我?"

    %--)

    保持住。

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

    尊敬的 Doug:

     NP。 我很高兴提供帮助。

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

    好的、最后在 XDS200和我的10引脚 Tag-Connect 之间建立起有效的连接、根据 SPMA075运行解锁过程、但闪存不会擦除。

    接下来、Charles 将如何操作?

    谢谢、Doug

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

    我创建了一个新的工作区、并导入了有问题的项目、并将 JTAG 探针设置为 XDS200。  尝试刷新内存时出现以下错误:

    连接到目标时出错:

    (错误-1170 @ 0x0)

    无法访问 DAP。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、并/或尝试更可靠的 JTAG 设置(例如、降低 TCLK)。

    (仿真包9.4.0.00129)

    ---

    然后、我单击了 XDS200的"Verify"(验证)按钮、得到以下结果:

    [开始]

     

    执行命令:

     

    %CCS_BASE%/common/uscif/dbgjtag -f %boarddatfile>-rv -o -S 完整性

     

    [结果]

     

     

    --- [打印主板配置路径名]--------------------------------------------------------

     

    C:\Users\Doug\AppData\Local\TEXASI~1\CCS\

       ccs1011\0\0\BrdBat\testBoard.dat

     

    --- [打印重置命令软件日志文件]--------------------------------------------------------

     

    此实用程序已选择了一个560/2xx 类产品。

    该实用程序将加载程序"xds2xxu.out"。

    库构建日期为"2021年6月25日"。

    库构建时间为"16:23:59"。

    库软件包版本为"9.4.0.00129"。

    库组件版本为"35.35.35.5.0.0"。

    控制器不使用可编程 FPGA。

    控制器的版本号为"13"(0x0000000d)。

    控制器的插入长度为"0"(0x00000000)。

    此实用程序将尝试重置控制器。

    此实用程序已成功重置控制器。

     

    --- [打印重置命令硬件日志文件]--------------------------------------------------------

     

    此仿真器不会创建复位日志文件。

     

    --- [发生错误且此实用程序已中止]--------

     

    此错误是由 TI 的 USCIF 驱动程序或实用程序产生的。

     

    值为'-233'(0xffffff17)。

    标题为"SC_ERR_PATH_BROKed"。

     

    说明如下:

    JTAG IR 和 DR 扫描路径不能循环位、这些位可能已损坏。

    尝试扫描 JTAG 扫描路径失败。

    目标器件的 JTAG 扫描路径似乎已损坏

    卡在零故障下的通道。

     

    [结束]

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

    我应该注意的是、我搜索了一个减慢 TCLK 时钟速度的地方、但是我能在 Launch Config Properties -> Flash Settings -> Flash Settings 下找到的所有内容都是一个"Crystal Frequency"-不清楚这是什么、是 TCLK 时钟吗?

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

    尊敬的 Doug:

     您的错误日志指示 JTAG 扫描链已损坏。 这是硬件问题。 我认为减慢时钟不会有任何作用。 您可以尝试在已知良好的设备上解锁吗? 我想确保这不是工具问题。 如果您可以成功解锁已知正常的器件、则证明该工具(例如 XDS200和 dbgjtag.exe)工作正常。 问题是孤立在一个有问题的板上、您在帖子开始时说该板已在现场工作10年。

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

    我尝试对一个新的未编程电路板进行编程、但出现了同样的错误。  板使用 Segger 接口编程正常。  问题未仅局限于一块电路板上。  现场有数千个这样的板、任何已通过版本8软件编程的板都可以正常运行、但无法重新编程。

    请注意、根据 SPMA075、JTAG 接口只需要4条线路、某些示例中显示了这4条线路、但某些示例显示也连接了 RST_N;它没有连接到我们的电路板上、这是否有必要?

    谢谢、Doug

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现场有数千块这样的主板、任何已经过版本8软件编程的主板运行良好、但无法重新编程

    如果您有数千块电路板无法重新编程、则我认为这不是 MCU 问题。 为什么不选择这些板之一、对像闪烁这样的简单项目进行编程呢? 您有什么问题? 如果尝试使用 dbgjtag.exe 解锁器件、则必须使用受支持的调试探针(如 XDS200)。 不能将 dbgjtag.exe 与 Segger Jlink 一起使用。

    [报价 userid="333787" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1414355/tm4c1231h6pm-flash-program-disable-registers-being-set-to-0-after-first-load-of-new-rev-of-software-that-s-been-working-fine-for-10-years/5439292 #5439292"]

    请注意、根据 SPMA075、JTAG 接口只需要4条线路、某些示例中显示了这4条线路、但某些示例显示也连接了 RST_N;它没有连接到我们的电路板上、这是否有必要?

    [报价]

    您不需要 RST_N  

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

    我可以尝试 Blinky ,但我预计,如果程序真的很小,它会程序 OK ,将尝试它.

    我正在使用 XDS200来尝试解锁电路板。

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

    好的、进度。  我在 JTAG 接口中发现一根损坏的线。  所以我用 XDS200对锁定的开发板之一重新编程、结果显示以下错误:

    Cortex_M4_0:文件加载程序:验证失败:地址0x00000000的值不匹配请验证目标和内存映射。

    我运行了解锁例程、该例程成功了、然后尝试了使用 XDS200进行编程、也成功了。  尝试再次对其编程也成功、因此 Segger 接口似乎出现了错误。

    让我们将其称为已解决问题、然后我将向 Segger 提交问题单。

    再次感谢 Charles。