0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MSP430系列单片机的远程升级方案

电子设计 来源:CSDN 博主 作者:bitQ 2021-02-04 15:12 次阅读

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的升级。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5991

    文章

    43904

    浏览量

    619626
  • msp430
    +关注

    关注

    178

    文章

    2223

    浏览量

    228446
  • FlaSh
    +关注

    关注

    10

    文章

    1536

    浏览量

    146591
收藏 人收藏

    评论

    相关推荐

    基于MSP430远程无线体温测量系统设计

    电子发烧友网站提供《基于MSP430远程无线体温测量系统设计.pdf》资料免费下载
    发表于 11-06 09:47 0次下载
    基于<b class='flag-5'>MSP430</b>的<b class='flag-5'>远程</b>无线体温测量系统设计

    基于MSP430单片机MCU与DSP的SPI通信设计

    电子发烧友网站提供《基于MSP430单片机MCU与DSP的SPI通信设计.pdf》资料免费下载
    发表于 10-30 10:14 4次下载
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>MCU与DSP的SPI通信设计

    基于MSP430单片机的智能电池监测仪

    电子发烧友网站提供《基于MSP430单片机的智能电池监测仪.pdf》资料免费下载
    发表于 10-30 09:48 0次下载
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>的智能电池监测仪

    MSP430属于16位的单片机还是32位的?

    MSP430属于16位的单片机还是32位的
    发表于 10-30 08:13

    基于嵌入式RTOS在MSP430单片机上的实现

    电子发烧友网站提供《基于嵌入式RTOS在MSP430单片机上的实现.pdf》资料免费下载
    发表于 10-27 14:13 1次下载
    基于嵌入式RTOS在<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>上的实现

    MSP430单片机通用系统研制和应用

    电子发烧友网站提供《MSP430单片机通用系统研制和应用.pdf》资料免费下载
    发表于 10-27 11:16 0次下载
    <b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>通用系统研制和应用

    MSP430单片机应用系统开发平台的研究

    电子发烧友网站提供《MSP430单片机应用系统开发平台的研究.pdf》资料免费下载
    发表于 10-27 11:00 0次下载
    <b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>应用系统开发平台的研究

    MSP430单片机与CPU卡接口函数设计

    电子发烧友网站提供《MSP430单片机与CPU卡接口函数设计.pdf》资料免费下载
    发表于 10-27 10:56 0次下载
    <b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>与CPU卡接口函数设计

    基于MSP430单片机的充电器设计

    电子发烧友网站提供《基于MSP430单片机的充电器设计.doc》资料免费下载
    发表于 10-20 11:42 0次下载
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>的充电器设计

    基于MSP430单片机的无线充电器设计

    电子发烧友网站提供《基于MSP430单片机的无线充电器设计.pdf》资料免费下载
    发表于 10-20 11:04 1次下载
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>的无线充电器设计

    基于MSP430单片机于电力系统操作电源中的设计

    电子发烧友网站提供《基于MSP430单片机于电力系统操作电源中的设计.pdf》资料免费下载
    发表于 10-10 10:35 0次下载
    基于<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>于电力系统操作电源中的设计

    msp430功能例程

    包括msp430功能例程
    发表于 08-11 15:04 1次下载

    求关于msp430单片机的rlc测量仪的资料

    有没有关于msp430单片机的rlc测量仪的资料啊
    发表于 04-26 01:23

    51单片机msp430之间怎样实现通信?

    51单片机msp430之间怎样实现通信?关键是如何解决电平转换问题
    发表于 04-18 10:32

    请问一下msp430单片机的管脚可以给五伏电压吗?

    请问一下msp430单片机的管脚可以给五伏电压吗?
    发表于 04-18 10:24