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.

[参考译文] MSP432E401Y:BSL Scripter 问题

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1310844/msp432e401y-bsl-scripter-issue

器件型号:MSP432E401Y

我遇到了 BSL 脚本程序问题、它失败并显示无用的消息"[ACK_ERROR_MESSAGE]Unknown Error!"

我相信使用 Wireshark 时、仅传输一小部分数据、约传输1000k 文本文件的25%。  

我跟踪了故障、找到了

void BslE4xxEthernetResponseHandler::processResponse (uint8_t ack、std::vector *回应)

响应不是 TFTP_ACK 或 TFTP_ERROR 、而是 NULL。

欢迎就如何取得进展提出任何建议

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

    您好!

     我不是 BSL 脚本专家。 您说您正在尝试传输10万个文本文件。 1000k 为10MB。 我知道的 BSL 脚本程序用于对 MCU 上的固件映像进行编程或更新。 MCU 只有1MB 的闪存作为存储空间。  

    https://www.ti.com/lit/slau655

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

    传输的文件是一个包含十六进制数据的文本文件、因此像这样有2100行

    @4000
    00 FC 03 20 E9 32 04 00 11 B2 04 00 11 B2 04 00
    11 B2 04 00 11 B2 04 00 11 B2 04 00 11 B2 04 00
    11 B2 04 00 11 B2 04 00 11 B2 04 00 11 B2 04 00
    11 B2 04 00 11 B2 04 00 43 B5 04 00 C9 20 03 00
    2D E9 F0 4F 91 F8 3D 30 91 F8 3C 20 42 EA 03 22
    91 F8 3E 30 42 EA 03 42 91 F8 3F 30 AD F1 74 0D
    42 EA 03 62 08 92 91 F8 39 30 91 F8 38 20 42 EA
    03 22 91 F8 3A 30 42 EA 03 42 91 F8 3B 30 42 EA
    03 62 0C 92 91 F8 35 30 91 F8 34 20 42 EA 03 22
    91 F8 36 30 42 EA 03 42 91 F8 37 30 42 EA 03 62

    有趣的是、如果我缩短该文件(您只需在一行中添加一个"q"来终止数据)、那么它会传输、但显然只传输了一位程序。

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

    您的文件大小有多大? 您提到了10万。 这就是您使用的尺寸吗?

    我想知道、如果选择二进制而不是十六进制、会产生相同的问题吗?

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

    BSL 脚本程序需要使用文本格式的十六进制数据。 我可以使用 TI 调试器刷写代码。 我的引导加载程序位于地址0x0000、我的应用程序位于地址0x4000。 我使用"魔术包"方法进入引导加载程序。 数据开始传输、我可以使用 Wireshark 看到这一点、但不幸的是、它可以调节停止、BSL 脚本程序不是使用 ACK 或错误进行回复、而是接收到 NULL 并发出错误。

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

    尊敬的 Philip:

     您是否在未做修改的情况下尝试了库存以太网引导加载程序示例? 您是否看到同样的问题、或者这仅在您自己的应用程序上发生?

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

    问题已解决、当通过"魔术包"过程跳转到引导加载程序时、尽管禁用了处理器中断、但看门狗未启用、并且提供的 Watchdog_Close 方法没有与 MSP432E401Y 关联的代码、因此在进入引导加载程序之前出现了一点寄存器调整、从而解决了问题