[资料分享] MSP430的升级引导程序编写以及升级固件制作

Aguilera   2020-5-13 20:43 楼主

详细介绍MSP430的升级引导程序编写以及升级固件制作。

1.关于升级引导代码的实现:

      主要功能实现:进行相对应的升级程序跳转用户程序的选择

      对于MSP430的启动初始化来讲,是默认看门狗打开,所以需要提前关闭看门狗,      

void WDT_A_hold(uint16_t baseAddress)

{

    // Set Hold bit

    uint8_t newWDTStatus =

        ((HWREG16(baseAddress + OFS_WDTCTL) & 0x00FF) | WDTHOLD);

 

    HWREG16(baseAddress + OFS_WDTCTL) = WDTPW + newWDTStatus;

}

整体的流程:

          11.png                                          

2.用户应用程序的实现:

   用户程序分为串口键鼠事件的功能以及请求升级。

                            image.png                                            

3.制作升级固件

        对于MSP430固件版本为V1,升级到版本V2。升级版本V2的制作主要看清楚V1版本的引导升级程序的起始地址。

        假设V1版本的hex文件的引导程序的起始位置是在0x1000的位置,则在对要升级的430代码编译时修改链接文件中flash的起始位值修改为0xa000,然后再生成TXT文件,再将TXT文件的中断向量地址进行修改,生成hex文件。

        要注意的是,用户程序代码放置在flash位置上可以不需要进行修改,升级的时候直接覆盖就行了

        这样的话,从V1版本升级成V2版本时,就可以在430的flash其他地方升级引导程序,从而不会清除正在执行升级任务的升级引导程序。

回复评论 (1)

感谢分享,之前和TI的FAE一起调试MSP430I2041的BOOTloader引导程序,调试了很久才能加密程序,但是加密后无法更新固件程序。

点赞  2022-8-26 10:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复