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.

[参考译文] MSP430F2132:MSP430 BSL 错误密码问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/603085/msp430f2132-msp430-bsl-error-password-question

器件型号:MSP430F2132

在进入 BSL 之后、我向 BSL 发送错误密码、 我认为 ACK shoud 为0xA0、但实际上是0x90、为什么? 以及如何判断密码 是否正确?

例如、我已经将一个代码下载到 MSP430F2132、然后我第二次下载该代码、我使用如下命令:

80 10 24 24 E0 FF 20 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 9B 34.

BSL 返回0x90

为什么不使用0xA0?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您已经提供了正确的密码、则器件将保持解锁状态、直到启动另一个 BSL 条目、因此即使在执行了错误的密码命令之后、也会提供 DATA_ACK 响应。 否则、这种情况下的 DATA_ACK 将指示已执行批量擦除(0xFFE0至0xFFFF 均为0xFF)、从而使提供的密码对 BSL 条目有效。 MSP430F2132中包含的 BSL 版本2.02具有由位于中断矢量表地址(0xFFDE)下方的闪存数据字控制的增强安全特性。 如果这个值不是0x0000、那么当发送一个错误的密码时、整个闪存地址空间将被擦除。 您将需要验证 BSL 密钥、当前程序存储器内容以及器件 BSL 的状态。

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


    如果我在 BSL 条目启动后提供了正确的密码、则器件正确响应、DATA_ACK 为0x90。 没关系。


    但是、如果我在 BSL 条目启动后提供了错误密码、我想知道除了批量擦除之外、器件是否响应。 如果器件响应、则为0x90或0xA0。


    现在、我在 BSL 条目启动后提供了错误密码、器件响应0x90和批量擦除、我不知道为什么它是0x90。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您已经使用正确的密码输入了 BSL、然后提供了错误的密码、BSL 应该使用 DATA_ACK 进行响应、并且不执行任何更改(批量擦除或其他)、因为器件已经被解锁。 只有在启动另一个 BSL 条目后、错误的密码才会导致 DATA_NACK。 为什么在 BSL 已解锁时尝试发送不正确的密码? 如果您想知道您发送的第一个密码是否有效、则应该已通过原始响应进行确认、或者您可以尝试接收数据块。

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

    尊敬的 Ryan:

    我正在开发编程器。 有时、客户会将代码下载到新器件、并下载几次以测试编程器、有时客户 会将代码下载到不知道密码的器件。通常他们会将代码文件用作 密码 文件。  无论在何种情况下、我希望下载一次都能成功。

    因此,在我的应用程序中,当我提供密码时,我将判断器件的退货情况。  如果返回值为0x90、我认为密码正确、如果返回值为0xA0或其他数据、或者超时、我认为密码不正确、那么 在批量擦除后 、我将提供默认密码(全部为0xFF)、以便下载继续。

    但在进入第一个 BSL 之后、如果我提供了错误密码、器件也会返回0x90、因此我无法判断密码是否正确、因此我不会提供默认密码(全部为0xFF)、也不会退出下载。

    因此我请求帮助、当我提供错误密码时、为什么器件返回0x90。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果已输入 BSL 且数据包已正确格式化、则返回0x90。 执行简单命令以接收数据块(或其他一些受密码保护的命令)、如果拒绝、您将知道尚未输入 BSL。

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

    谢谢

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

    [引用 USER="Ryan Brown1">BSL 如果您已经使用正确的密码输入了 BSL、然后提供了错误的密码、则 BSL 应该使用 DATA_ACK 进行响应、并且不执行任何更改(批量擦除或其他)、因为器件已经解锁。 [/报价]

    我知道、需要一个特殊序列来涉及 BSL、但密码不是预压缩的。