ZHCU022AF July 2010 – September 2022
要从正在运行的应用中调用 BSL,请将程序计数器设置为 BSL 所在的地址。对于 MSP430F5xx 和 MSP430F6xx 器件,BSL 位于内存位置 0x1000。有关MSP430x1xx、MSP430x2xx 和 MSP430x4xx 器件,请参阅Topic Link Label5。
BSL 运行时,堆栈总是被复位,且 RAM 被清除。BSL 没有禁用中断,因此应用在调用 BSL 之前必须禁用中断。TI 建议清除 BSL 应用程序中使用的任何模块寄存器的配置,因为外部应用程序的配置可能会中断 BSL 应用程序并导致意外行为。一个例子是在具有 USB BSL 且支持USB的 MCU 中,Timer_B 模块用于确定高频晶体的频率。如果在外部应用中也使用了Time_B,并且在跳转到 BSL 应用之前没有清除Time_B,,则可能发生意外行为。
位置 0x1000 可作为 C 函数被调用,如以下示例代码所示:
__disable_interrupt(); // disable interrupts
((void ( * )())0x1000)(); // jump to BSL