ZHCUAO3 February 2023 MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
次级引导加载程序示例作为 SDK 示例的一部分提供以供参考。本节对此进行更加详细的介绍。
描述
此次级引导加载程序示例支持对存储器中的数据进行编程/验证,其 BSL 协议格式与器件中的主 BSL (ROM BSL) 相同,并且可以采用与 ROM BSL 相同的方式调用。
它支持以下主要功能
它使用 UART 接口与主机通信。
此示例负责次级引导加载程序的实施及注册。因此,一旦将该映像加载到器件中,就无法使用器件中的主引导加载程序。只有次级引导加载程序将处于运行状态。要将器件恢复为使用主引导加载程序,必须使用 SWD_Factory_Reset 命令(通过调试子系统邮箱恢复出厂设置)。.
示例用法
软件文件详细信息
| 文件名 | 详细信息 |
|---|---|
|
secondary_bsl.c |
初始化 BSL 运行所需的外设。接收来自通信接口的命令数据包并将其传递到命令处理层。 还负责在 BSL 配置存储器中注册次级引导加载程序。 |
|
bsl_ci.c |
解释命令数据包,处理命令并将响应发送回主机 |
|
bsl_ci.h |
包含 BSL 命令和响应的定义。此外还有 bsl_ci.c 的函数声明 |
|
bsl_uart.c |
处理主机和 BSL 内核之间的通信 |
|
bsl_uart.h |
包含 BSL 确认的定义和 bsl_uart.c 的函数声明 |
|
ti_msp_dl_config.h |
包含特定于器件的配置,例如 UART 引脚、所用外设的基址等 |
|
boot_config.h |
包含 BCR 和 BSL 配置结构 |
|
factory_config.c |
实现了用于获取出厂配置的器件特定数据(如 SRAM 存储器大小)的函数。 |
|
factory_config.h |
包含 factory_config.c 的出厂配置结构和函数声明 |
|
startup_mspm0x_ticlang |
包含矢量表、复位处理程序和其他处理程序的启动文件 |
|
mspm0x.cmd |
指定内存区域(次级引导加载程序映像应驻留的存储器位置)和 SRAM 区域(次级引导加载程序应运行的位置)的链接器命令文件。 |
自定义
此示例提供了次级引导加载程序的参考设计。可根据需要对其自定义。BSL 内核层(secondary_bsl.c、bsl_ci.c)或接口层 (bsl_uart.c) 是进行自定义的主要位置。
要执行的步骤
根据需要修改代码
更改完成后,编译代码
根据需要修改 BCR 配置中的闪存写入保护设置
计算 BCR 配置的 CRC 并存储新的 CRC 值
再次编译代码
加载自定义 BSL 映像