请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LP-MSPM0G3507工具/软件:
我尝试从 ESP32 调用 BSL 来将自定义映像刷写到 MSPM0 中。 我遇到的几个问题和错误。 我已经了解了 BSLGuide 和 BSL 实现 PDF。 我目前正在尝试调用 BSL、但它无法正常工作。 这是我尝试调用 BSL 的代码。
D12 连接至 PA18。 然后将线路驱动为低电平 
D11 连接到 NRST。 在执行此功能之前、线路被驱动为高电平。 
 
								void enterbsl(){ 
 //步骤 0:首先将 BSL_invoke (PA18) 置为高电平 
 digitalWrite (D12、high); // PA18 = BSL_invoke、高电平有效 
 delayMicroseconds (500);  //根据 TI 指导、将其保持≥500us 
 //步骤 1:将 NRST 脉冲设置为低电平以触发 BOOTRST 
 数字写入(D11,低电平);  // NRST 低电平(复位) 
 延迟 (2);          //将 RESET 保持在低电平;100us 足够大(此处为 2ms 是安全的) 
 //步骤 2:释放 NRST 
 digitalWrite (D11、high);  // NRST 高电平—器件引导、看到 BSL_invoke 高电平 
 //步骤 3:在引导加载程序启动时短暂保持 BSL_invoke 为高电平 
 Delay (500);//留出一些时间让引导代码采样并进入 BSL 
 //可选:如果您的应用程序重新使用 PA18、您可以随后将它拉低 
}  
接下来、我将 TX 连接到 PA11、将 RX 连接到 PA10。 在进入向 BSL 发送连接之前、我读取了 UART 线路、结果为 0xC0。 然后什么都不做。  
在 Invoke+读取 UART 线路之后、我将发送连接。  
 //我的代码片段是我通过 UART 编写数据包信息的地方。  
 SERIAL2.WRITE (0x80);//标头 
 SERIAL2.WRITE (0x01);//长度 
 SERIAL2.WRITE (0x00); 
 SERIAL2.WRITE (0x19);//命令(我的所有数据) 
 uint8_t data = 0x19; 
 uint32_t crc32Code = CRC32_ISO (&data、1); 
SERIAL2.WRITE ((uint8_t)(crc32Code & 0xFF));     // LSB 
SERIAL2.WRITE ((uint8_t)((crc32Code >> 8)& 0xFF); 
SERIAL2.WRITE ((uint8_t)((crc32Code >> 16)& 0xFF)); 
SERIAL2.WRITE ((uint8_t)((crc32Code >> 24)& 0xFF));// MSB 
 此后、我会等待 BSL 的任何响应、但没有任何响应。  
您能帮我确定问题吗? 我 花了多个小时、但还无法找到解决方案。  
此外、为了便于参考、我将软件调用刷写到了 MSPM0 中、但我仍然只是尝试进行常规 MSPM0 硬件调用、以便它适用于 MSPM0 上的任何映像。  
非常感谢  
此致、  
Prathik Narsetty
Prathik Narsetty
				