ZHCU778AB January 2014 – September 2022 MSP430FR2032 , MSP430FR2033 , MSP430FR2110 , MSP430FR2111 , MSP430FR2153 , MSP430FR2155 , MSP430FR2310 , MSP430FR2311 , MSP430FR2353 , MSP430FR2355 , MSP430FR2433 , MSP430FR2532 , MSP430FR2533 , MSP430FR2632 , MSP430FR2633 , MSP430FR4131 , MSP430FR4132 , MSP430FR4133 , MSP430FR5041 , MSP430FR5043 , MSP430FR50431 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR6041 , MSP430FR6043 , MSP430FR60431 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6972 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891
存储器位置 0x1000 包含一条指向 BSL 开头的跳转指令,可用于通过采用将程序计数器设置为 0x1000 的方式从正在运行的应用程序调用 BSL。堆栈始终被复位,而 RAM 则被清空。BSL 不会禁用中断功能,应在调用 BSL 之前由应用程序禁用中断功能。
TI 建议清除 BSL 应用程序中使用的任何模块寄存器的配置,因为外部应用程序的配置会使 BSL 应用程序中断并导致意外行为。例如,在 FR23xx 和 FR26xx MCU 中,Timer_B 模块执行 BSL 的超时计算。如果 Timer_B 也在外部应用程序中被使用并且在跳转到 BSL 应用程序之前未被清除,则会导致意外行为。
位置 0x1000 可作为 C 函数被调用,如以下示例代码所示:
__disable_interrupt(); // 禁用中断功能
((void (*)())0x1000)(); // 跳转到 BSL
FR5xx 和 FR6xx 器件上的 BSL 必须以 8MHz 的最大频率运行。如果器件在高于 8MHz 的频率下运行,则在调用 BSL 之前必须将 MCLK 频率设置为 8MHz 或更低。