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.

[参考译文] TMS320F28052F:对校验和失败采取的操作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/711551/tms320f28052f-actions-taken-upon-failed-checksum

器件型号:TMS320F28052F

大家好、我一直在为电机驱动器的 DFU 应用中实施串行闪存编程器实用程序。 我在这方面取得了成功、主要是因为 e2e 社区提供了反馈、并且正在添加项目的最后内容。

到目前为止、如果 serial_flash_programmer -> F05_DownloadImage 的校验和失败、则返回"12"、该值表示退出代码以停止应用。 这可能会将半编写的代码保留在微闪存中、如果运行的话、这可能会对我的项目造成破坏。 由于我的应用程序运行的设置可能会受到显著噪声的影响、因此噪声可能会导致一些要写入闪存的块损坏。

我希望做的是重新启动擦除和应用程序下载过程、或者只是擦除所有闪存、如果发生校验和错误、则将其留空。 我更愿意重新分支到应用程序自动波特、以重新建立与驱动器的连接、然后重新下载应用程序文件。 但是、如果这是不可能的、我宁愿将微控制器擦除、而不是将其包含可能的破坏性代码。  

这两种选择中的任何一种是否可行,如果可行,今后的最佳方法是什么? 程序员中是否有一个错误代码可指示内核重新启动下载过程/擦除闪存?

我们的主要想法是向微控制器发送某种命令、以便它分支回自动波特、但我们不知道如何这样做、以至于它不能被解释为块写入。

感谢您的任何和所有指导、

James

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

    我们将对此进行研究。 如果我有好的建议、我会再次回应。 感谢您对此的耐心等待。

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

    《技术参考手册》有一章介绍了引导加载程序格式。 此外、串行闪存编程器应用报告(AR)还提供了一些有关所使用通信协议的信息。

    www.ti.com/.../sprabv4b.pdf

    您可以随意修改主机和器件代码以实现此目标。

    当器件接收 DFU 的数据时、它将继续接收数据块、直到数据块大小为0x0000。 一旦发生这种情况、内核将分支到刚刚下载和编程的映像的入口点。 此时、您可以修改代码以使主机和器件进行通信、从而执行一些其他功能。

    希望这对您有所帮助。

    此致、
    SAL