Other Parts Discussed in Thread: MSPM0L1306
器件型号: MSPM0L1306
尊敬的 TI 团队:
我们正在与配合使用 MSPM0L1306 尝试通过软件触发的复位进入 BSL。
观察到的行为
-
何时 “BSL 调用引脚检查“已启用 在 NONMAIN 配置中、软件触发的 BSL 条目按预期工作。
-
何时 “BSL 调用引脚检查“被禁用 、完全相同的软件序列无法进入 BSL。
-
在这种失败的情况下、器件会复位、但不会进入 BSL。
软件实现
以下是用于通过 I2C 触发 BSL 进入的代码:
void I2C_setRegisterValue (uint8_t addr、uint8_t value){
用例 0x70:// BSL 触发寄存器
if (value == 0xAB){
Log_STR(“软件 BSL 条目:正在刷新和重置...\r\n“);// 1。 等待 UART 清除
while (DL_UART_isBusy (UART_0_INST))
;// 2. 禁用中断以确保原子复位序列
__disable_irq();// 3. 准备 SRAM
//我们清除 SRAM 以防止 ECC/99 错误、但我们必须这样做
//将 BSL 票证 (0xBE) 放在最开头 (0x20000000)。
uint32_t *SRAM_ptr =(uint32_t *) 0x20000000;//将前 256 个字的其余部分清零以满足 ECC 要求
对于 (uint32_t i = 1;i < 256;i++){
SRAM_PTR[i]= 0;
}//现在将 TT 写在索引 0
SRAM_PTR[0]= 0xBE;// 4. 稳定延迟
//使 I2C 主器件在从器件消失之前接收 ACK 至关重要
delay_cycles (100);// 5. 触发引导加载程序进入复位
DL_SYSCTL_resetDevice (DL_SYSCTL_RESET_Bootloader_entry);
}
休息;
}
其他注意事项
-
用于支付单的 SRAM 位置:
0x20000000 -
已写入 TT 值:
0xBE -
复位方法:
DL_SYSCTL_RESET_BOOTLOADER_ENTRY -
NONMAIN 配置否则不变
-
器件不受密码保护
-
应用程序在所有情况下都正常运行
问题
-
禁用“BSL 调用引脚检查“时、软件触发的 BSL 条目应该是否正常工作?
-
禁用引脚检查是否会改变 ROM 如何评估 SRAM 票证?
-
是否有任何其他 NONMAIN 设置会影响软件触发的 BSL 进入?
如果需要其他日志、引导诊断程序或配置屏幕截图、请告知我们。
感谢您的支持。
此致、
Nagaraju