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.

[参考译文] MSP430FR5957:使用 UART BSL 进行批量擦除、包括 IPE 数据

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1433472/msp430fr5957-mass-erase-including-ipe-data-using-uart-bsl

器件型号:MSP430FR5957

工具与软件:

我们使用 IPE 对器件进行保护。 我们希望能够将器件重置为出厂设置并使用新代码对其进行重新编程。 看起来 IPE 配置数据仅在首次在器件中启用时才会存储。 标准批量擦除操作不会擦除该存储器部分。

(SLAU367P) 9.6.1.1.1 IP 结构指针传输的梯形门机制:

启动代码会执行一个序列以确保 IPE 结构指针的完整性。 在执行引导代码时、有效的 IPE 签名1会触发 IPE 签名2 (IPE 结构指针源)传输到安全的非易失性系统数据区域(保存的 IPE 结构指针)。 该传输仅在不存在之前的安全 IPE 结构指针时发生一次。 在成功传输 IPE 结构指针之后、可通过任意值覆盖 IPE 签名、而不会影响现有的 IP 封装

(SLAU367P) 9.6.2 IP 封装删除:

在成功实例化受 IP 保护的存储器区域后、批量擦除仅擦除 IP 封装之外的存储器区域。 若要擦除主存储器中的所有存储器位置并移除 IPE 结构指针、必须执行特殊的擦除序列。 更多详细信息、请参阅通过 JTAG 接口对 MSP430进行编程。 有关如何从 IDE 启动此擦除的详细信息、请参阅《适用于 MSP430的 Code Composer Studio 用户指南》

文档中显示的将器件恢复为出厂默认值的唯一选项是需要使用 JTAG 接口。 是否有任何通过 UART BSL 实现此目的的替代方法?

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

    您好!

    阅读文档后、我看不到通过 BSL 重置 IPE 的任何方法。  正如您总结的那样、看起来只能通过 JTAG 接口进行完整的器件擦除。   

    谢谢!

    JD

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

    感谢您的快速响应 JD。 结论不是我所期望的,但生活有时是残酷的。

    还有一些信息,我不是完全理解。  中有注释  

    (SLAU367P) 9.6.2 IP 封装删除:

    注意:无效的 IP 封装初始化结构或使用无效目标(未指向有效的 IP 封装初始化结构)保存的 IPE 结构指针会导致在引导代码执行期间擦除所有非易失性存储器段、包括 IP 封装段和初始化结构。 该设置错误会导致下一次执行引导代码后器件完全未编程。 该机制可确保配置错误或存储器损坏不会泄露 IP 代码。

    案例1 - 无效的 IP 封装初始化结构:

    这种检查是否始终发生? 还是只初始化 IPE?

    案例2 - 带有无效目标的已保存 IPE 结构指针:

    如果我们将 IPE 部分(从 IPE 部分执行的代码)中的结构内容覆盖为无效配置并重新启动器件、是否会发生擦除?

    案例3 -是否可以通过在 IPE 部分之外运行代码的程序本身来触发此操作? 即使 不是直接通过 BSL、我们也可以使用 BSL 将不同的程序加载到不使用 IPE 区域的器件中、并执行一些代码来触发此擦除操作。

     令人厌烦的是、只有 JTAG 访问可用于复位受 IPE 保护的设备。  

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

    嗨、Ibon、

    我也在考虑这种方法,但我没有看到一个干净的方法去做。   

    案例1:我认为每次启动时都会发生这种情况。  我的理解是 IP 结构指针只锁定一次、但每次上电时、启动代码都会跳转到该指针以查找 IP 结构。  我确实认为"无效的"IP 结构会导致批量擦除。   我想"无效"IP 结构意味着 MPUCHECK 奇偶校验不匹配。   

    案例2:实际上、我认为这可能起作用。   

    案例3 -基于上述、看起来不是  

    希望这对您有所帮助、

    JD