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.

[参考译文] MSP430F6779A:MSP430F6779A 引导加载程序设计帮助

Guru**** 2393915 points
Other Parts Discussed in Thread: MSP430F6779A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/697507/msp430f6779a-msp430f6779a-boot-loader-design-help

器件型号:MSP430F6779A

您好!

我正在使用采用 MSP430F6779A 微控制器的智能能量计设计。 根据智能仪表规范、必须具有远程固件更新(OTA)配置。  根据我的理解、当我们使用 MSPF6XX 系列时、可以根据我们的要求修改 BSL。 根据我们的要求,新映像将下载到 SPI 闪存,成功下载后,应用程序必须调用引导加载程序并从 SPI 闪存加载新映像。

1) 1)能否使用自定义 BSL 实现此目的?

2) 2)您是否有解决此要求的示例?

请帮助。

谢谢、此致

Sreekanth MK

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

    1-是。
    2 -将 BSL 视为一个简单的循环、当某个条件被置为有效时、该循环会将一组字节从 SPI 闪存复制到 MSP430中的某些闪存。 没什么特别的

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

    尊敬的 Mike:

    感谢重播。

    我浏览了应用报告 SLAA450,根据我的理解,我可以在引导时间(基于 BSL 保护函数返回值)或使用 Z 区函数调用 BSL。

    案例1:BSL 处于引导时间

    正如我之前所讨论的、新固件将下载到 SPI 闪存中、并且必须加载此映像。 由于按下按钮/任何辅助协处理器之类的过程不会有任何手动干预、因此我如何将 BSL 紧密连接到新固件。例如、如果我向一些通用寄存器(如0xDAA)(或将任何其他寄存器紧密连接到 BSL)放置一些密钥(如0xDAA)、 该值是否会在重新引导期间清除?? 如果可以、将代码添加到 BSL 保护函数会很容易、那么添加其他外设驱动程序(如 I2C/SPI)会增加代码大小。 那么、您能简要介绍一下这一点吗?

    CASE2:Z 区函数反向

    我们将 TI RTOS 用于应用器件。 如果我从禁用所有用户中断的用户代码中调用 BSL、仍然有一些 RTOS 中断将正常运行?? 那么、可以这样调用吗??

    此致

    Sreekanth MK

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

    引导加载程序是在 MCU 通电时执行的第一个代码。 那么、假设您编写引导加载程序以执行以下操作:

    1. MCU 上电后立即运行。
    2. 禁用所有中断。
    3. 读取 SPI 闪存的字节0。 如果字节0的值为1 (顺便说一下、我只是简化了这一点、因为在这里、我个人会添加加密以保护我的器件不使用注入的固件):
      1. 将固件从 SPI 闪存复制到 MSP430闪存中。
    4. 运行固件。

    案例1:步骤3将处理此问题。

    案例2:步骤2将处理此问题。

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

    除了上述内容、在定制 BSL 内、您还可以将外设接口从默认 UART 切换到 I2C 或 SPI。 我们在定制 BSL 的代码下载中提供了 I2C 示例。 您也可以添加其他代码来执行您所指的外部存储器引导过程。 对于其中的一些功能、您可能需要在 BSL 存储器范围之外隔离额外的闪存空间。

    此外、请记住、如果您正在执行 BSL 的软件调用、则需要将内核器件和 BSL 可能使用的任何外设恢复为其默认值、这些外设来自复位状态。 这样做的原因是、BSL 假定您刚刚退出复位、并且只根据运行需要更改模块设置、而无需显式配置每个寄存器。