0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于MSP430F247单片机的远程升级方案

基于MSP430F247单片机的远程升级方案

来源: elecfans
2022-08-09
类别:工业控制
eye 18
文章创建人 拍明芯城

原标题:基于MSP430系列单片机的远程升级方案

  MSP430系列单片机常用的程序下载方式为JTAG、BSL,实际产品应用中会用到固件的升级,如果是异地设备,则给升级带来不少麻烦。有没有普通用户就可操作的固件升级方案呢?就像BootLoader,可通过命令选择启动方式,甚至实现远程升级?答案是有的。其原理就是通过FLASH操作,将新的固件刷到FLASH中去,然后转到固件起始地址运行。

  MSP430串口升级程序

  MSP430 FLASH ROM

  1. 如下图所示, 如下图所示, 如下图所示, FLASH ROM为 32K 字节(FLASH大小要根据你用的具体型号做调整),分为 64 个段,每个段分为512字节,512字节又细分为 8个块 ,每块64字节。

  2. MSP430F247每次最小可擦除1个段的空间,除操作是向该写满 0XFF。

  3. 32K字节的 FLASH ROM起始地址为 0X0FFFF –0X080000,对应Segment0 – Segment63.

  4. RST复位中断向量地址为0x0FFFE,其由编译器自动写入跳转到main()函数的指令。

  


  中断向量

  当有外部复位、软件复位等,都会触发名为Reset的不可屏蔽中断,此时MCU会自动将中断向量0xFFFE装入PC指针,从而引导程序运行。

  除了Reset中断,还有其它例如UART、SPI、TIMER等中断,中断向量记录了中断子程序的入口地址,中断向量表如下:

  


  


  存储空间划分

  增加串口升级功能需要有该部分程序支撑,因此FLASH ROM被划分成两部分:引导分区、应用分区,引导分区运行bootloader,当需更新代码时,该部分程序会读取串口发送的程序文件,并将其下载到应用分区;应用分区用于存放应用程序。

  具体分区见下图:

  


  这里系统分区占了1.5KB的空间,其中包括了bootloader代码分区和中断向量分区。应用程序分区也包括代码区和中断向量区两部分,但这里的中断向量却是虚拟中断向量,原因:中断向量表不能重新映射。

  具体实现

  程序更新步骤:1、设备上电; 2、运行bootloader程序; 3、延时等待远程升级命令;4、收到更新命令进入升级功能;5、将应用分区擦除;6、将接收的程序写入应用分区;7、跳转PC指针到应用程序的复位地址;8、运行新的应用程序。

  程序运行的步骤:1、设备上电; 2、运行bootloader程序; 3、延时等待远程升级命令;4、接收命令超时;5、判断应用分区是否有可运行的程序;6、跳转PC指针到应用程序的复位地址;7、运行应用程序。(如果没有可运行的程序、则一直停留在bootloader)

  关键技术:

  1、通过移动PC指针实现了bootloader到应用程序的切换、同时也实现了虚拟中断向量表。

  2、通过FLASH ROM的读写操作实现应用程序的更新

  总结

  顺利实现MSP430的远程升级,这里我要感谢梁先生的网络资料。其实,只要单片机有FLASH的读写接口,就能根据此原理实现bootloader,同时接口也不局限与串口,只要有机制获取新程序,就可以通过这种方式实现对MCU的升级。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯