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.

[参考译文] MSPM0L1105:安全地址空间、通过引导加载程序更新应用代码

Guru**** 3001220 points

Other Parts Discussed in Thread: MSPM0G3507, MSPM0G3519

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1654594/mspm0l1105-safe-address-space-updating-application-code-through-bootloader

器件型号: MSPM0L1105
Thread 中讨论的其他器件: MSPM0G3507、 MSPM0G3519

我们正在编写代码来更新此处理器上的应用程序代码、通过我们的应用程序进入引导模式、上传新代码。 我们的应用程序从闪存中的地址 0x0 开始。 我注意到这是不可取的。 这是真的吗? 我们是否需要将应用程序代码从 0x8000 开始重定位到闪存中的空间?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到了警告、这不可取。 这是真的吗?

    我 不确定您在哪里看到这一点、但只要您正确处理引导和应用程序之间的跳转、一切都将顺利。

    引导加载程序和 BSL

    固件更新功能可以分为两部分、

                   #1 是闪存中的两种映像处理机制、有一个引导加载程序可处理 M0 闪存中的两部分固件

                   #2 是编程协议和闪存操作(擦除,编程,验证)、这是其固件更新解决方案

    这两部分包含多种解决方案、可以根据用户的要求进行组合。

     

    解决方案:

    #1 是闪存中的两种图像处理机制

    1. 软件处理的启动映像:映像 1 槽位和映像 2 槽位需要不同的链接器文件

    联机文档(启动映像管理器): https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__APjkYg9RWxwM6nRUc3InzA__MSPM0-SDK__a3PaaoK__LATEST

    SDK 路径:c:\ti\mspm0_sdk_2_10_00_04\examples\nortos\LP_MSPM0G3507\boot_manager

    1. MSPM0 双组解决方案

    文档演示 (&Demo):

    下载链接:

    访问代码:    

    联机简要文档: https://www.ti.com/lit/an/spradn2/spradn2.pdf

     

    #2 是编程协议和闪存操作(擦除,编程,验证)

    1. 请参阅 辅助 BSL。

    辅助 BSL 解决方案有两个部分:

    基于闪存的 BSL 协议:有助于快速修改您的协议。

    闪存操作演示:直接用作您自己的引导加载程序的闪存操作示例。

    SDK 文件路径:c:\ti\mspm0_sdk_2_10_00_04\examples\nortos\LP_MSPM0G3507\bsl\secondary_bsl_i2c

    MSPM0 引导加载程序 (BSL) 实现(修订版 C) https://www.ti.com/lit/pdf/slaae88

    MSPM0 引导加载程序用户指南 https://www.ti.com/lit/pdf/slau887

    1. 基于 MSPM0 SDK 手动创建闪存操作。

    SDK 路径:c:\ti\mspm0_sdk_2_10_00_04\examples\nortos\LP_MSPM0G3519\driverlib\flashctl_xxx