This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430定制 BSL 包改进

Guru**** 2589265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/626472/improvement-for-msp430-custom-bsl-package

在 BSL430_PI_USCIA.c 中、它设置 MSP430时钟。 并非所有寄存器都已设置、当应用程序跳转到 BSL 时可能会出现问题。 如果应用将 FLL 更改为高达16MHz、则不这样做可能会为 UART 设置无效波特率。

void pi_init()

volatile int i;
BSL430_ReceiveBuffer = RAM_BUF;
BSL430_SendBuffer = RAM_BUF;

UCSCTL3=0;//将 FLL 设定为缺省值
UCSCTL6=0xC1CD;//重置为默认值
UCSCTL7=0x0703;//重置为默认值
UCSCTL8=0x0707;//重置为默认值

UCSCTL4 = SELA_REFOCLK + SELM__DCOCLK + SELESS__DCOCLK;//检查 SELA

UCSCTL0 = 0x000;//将 DCO 设定为最低抽头

UCSCTL1 = DCORSEL_4;// 8MHz 标称 DCO
UCSCTL5 = DIVM_0 + DIVS_0;
UCSCTL2 = FLLD_2 |(((DCO_SPEED/ACLK_SPEED)/4)- 1);// 8MHz

init_USCI( baud_9600 );

}//init

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Germain、

    我们知道这一点、它是通过设计选择来实现的、以节省存储器的 BSL 部分中的空间。 BSL 假定复位状态、但正如您提到的、如果通过软件调用、这可能会导致问题。 我们建议在通过软件条目进入 BSL 之前将模块清除为默认状态。 我们目前正在更新我们的 BSL 文档以包括 BSL 使用的模块(每个 BSL 版本)、以及在通过 SW 跳转到 BSL 之前清除这些模块的注释、反之亦然。