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.

[参考译文] MSP430F5529:UART BSL 唯一条目

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1293084/msp430f5529-uart-bsl-unique-entry

器件型号:MSP430F5529

我们目前正在为 msp430f5529开发 FOTA、我们正在我们的一个电路板上使用该 MCU。 该板连接到另一个板载 STM32F405的板、并与 UART 进行连接。  

这一基于 STM 的电路板通过 UART 连接到另一个 HMI 微处理器。 我们要将固件文件发送到 HMI、然后文件将被存储在那里。 当用户获得更新许可时、UART 会将该文件传输到基于 STM 的电路板、并且该电路板会将该文件传输到基于 MSP430的第一个电路板、而完全不进行存储。 即、到 MSP 和 STM32的实时传输只是此事务中的代理。  

现在、

我要寻找的是以下内容-  

我们不想使用 SLAU319AF - MSP430 闪存器件引导加载程序(BSL) I E 中说明的 BSL 方法硬件。我们不想使用 DTR 和 RTS 引脚、但只想使用 Rx 和 Tx。  

2.我们需要通过软件复位微控制器来把微控制器拉至引导集。 (软件复位)  

3.如果满足上述两个条件,则还请提供一些指导,说明如何在 BSL 和安全性更新失败时实现升级/更新回退的安全性。  

这方面的例子将会很受欢迎。  

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

    是的、我们确实支持软件调用、但它需要应用包含调用代码。  

    您可以参阅此文档

    https://www.ti.com/lit/an/slaa600d/slaa600d.pdf 

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

    此软件代码在 perl 及其基于 PC 的实用工具中编写。 我必须将此完整代码写入基于 STM32的控制器板、我在上面对此进行了解释以调用 MSP430。 是否有任何由微控制器而不是 PC/处理器执行此操作的文档?   

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

    PERL 文件只用于将 TI-TXT 格式文件转换为可以在 C 代码项目中调用的 C 文件。 它使用一个 MSP430来更新另一个 MSP430。

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

    您是否具有此方面的示例代码? 因为阅读完您提供的文档后、我很难对齐所有内容并从头开始。  

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

    代码可从此处下载

    https://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBoot/latest/index_FDS.html 

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

    感谢您的代码、Gary。 这就消除了我的许多疑虑。 最后一个问题、然后再解析该线程。 我可以看到有一个名为 Host_Examples_的程序、它会将单个或双个应用程序加载到目标中。 基本上、这个任务将由我正在使用的 STM32控制器完成。 需要进行哪些更改才能将此代码修改为 STM32。 我可以理解它完全不同的器件、但您能否简单地解释一下。  

    让我再重写一下、以便更好地理解。  器件的 HMI 将接收文件(如您所说、该文件将采用 ti-text 格式)。HMI 处理器将通过 UART 按字节将该文件传输到 STM32。 STM32会逐字节将其从 UART1传输到不同 UART2上的 MSP430。  

    所以,在这种情况下,经文者在哪里。 我想脚本程序会安装在 HMI 处理器中。 我检查了您提供的代码、特别是主机示例。 但有一点不太清楚、那就是示例只是在代码中加载已经编写的 app1或 App2。  

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

    我想当主机仅是 MSP 器件时会使用 MSP 引导。 当主机是 STM 处理器或微控制器时该怎么办

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

    您需要将...\Flash\MSPBoot_2_00_00_01MSPBoot\STM\SCRU200_F5529_Target 中的代码移植 Host_Examples_到 Host_Examples。 对于映像文件、需要下载到 MSP430、您需要使用 perl 脚本将其转换为可由主机(STM)调用的 C 代码文件。更详细信息、请参阅 应用手册中的第4.1.2.1节。

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

     STM 将从 HMI 处理器获取 c 代码文件。 STM 如何通过 UART 收集所有二进制数据、并创建一个 c 文件代码、以发送给 TARGET (MSP)、即使我将主机应用程序移植到 STM 也是如此。 目前 STM 控制器没有剩余的存储空间来保存任何内容。 这就是为什么我提到 STM 将只接收字节并发送给 MSP、不会存储任何内容的原因。 我是否可以接收一个字节而不将整个文件代码保存到缓冲区中、我只需处理一个字节并根据 BSL 协议将其发送到 MSP。  

    1. * HMI 处理器需要什么格式来将此数据发送到中间 STM 控制器,以便我可以处理字节,检查其 CRC ,而不是完整的应用程序 CRC ,因为在主机中没有像您的代码这样编译的应用程序。 它接收字节、按照代码中检查16位 CRC 的函数来检查其 CRC、然后 将其转换为 BSL 命令、并通过 UART 发送到 MSP。 你能清楚地擦除 一些东西吗? 我可以使用十六进制、intel、ti txt 等格式编译目标代码。 并将其馈送到 STM。 请明确说明这一点和程序。  第   4.1.2.1节 不提供此类信息。 在发送了多个 messeges 后,怀疑仍然是因为它是从我所张贴的第一条消息,这是指向的。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    还要告诉我、是否可以将 P3.3和 P3.4用于 UART、用于此类基于软件的 BSL 闪存。 正如我所看到的、P1.1和 P1.2由 USRT 用于 BSL 闪存。 这是可行的吗?

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

    Gaurav、您好!

    很抱歉回复延迟。 对于 BSL 协议 、您可以遵循第 2.4.2.1节"基于 BSL 的协议"

    MSPBoot–适用于 MSP430微控制器的主存储器引导加载程序(修订版 D)(TI.com) 

    由于引导加载程序是完全开源的、因此您可以使用器件上的任何 UART 端口。