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的升级。

如果需要技术合作可联系 QQ:1174316744

MSP430远程升级解决方案相关推荐

  1. MSP430FR5969 远程升级

    MSP430 远程升级功能: 基于 1.片外EEPROM(片内flash够大也可使用片内) 2.射频通信 3.上位机软件(传输升级文件) 总结点: 1.程序运行总是从复位中断向量开始寻址入口执行,中断 ...

  2. 混凝土搅拌站远程监控解决方案

    一.项目背景 随着大规模的基础设施建设,对混凝土搅拌设备的需求量日益增加,对其技术指标的要求也日益提高,其技术性能将直接关系到工程的质量和使用寿命.而混凝土生产的质量是在生产过程中形成的,而非最终强度 ...

  3. 天然气井远程监控解决方案

    天然气井远程监控解决方案 一.项目背景 随着天然气开发规模日益增长,天然气井的数量也在不断增加.且位置分散环境恶劣.传统的人工巡检方式越来越不能满足天然气井的生产需求和安全保障.天然气井井由储罐和集气 ...

  4. 合宙Air780E|iot|update|FOTA|LuatOS-Air开发|LuatOS-SOC接口|官方demo|学习(17):FOTA(远程升级)

    目录 一. 概述 注意: 二. 材料准备 三. 合宙iot平台升级core+script过程 1. iot平台创建产品​​​​​​​ 2. 模块端脚本修改,生成升级包 3. 按照新版本的需求,修改ma ...

  5. 菊风创新远程银行解决方案,助力打造全能型智慧银行!

    随着金融改革与开放程度的深入,涌现出日益丰富的金融业态,以互联网金融为代表的新业态对传统商业银行业形成较大冲击,传统竞争格局被打破.随着互联网技术的创新与进步,银行业寻求管理模式与运营服务模式的图片. ...

  6. 电力配网远程无线传输解决方案,电力安全再加固

    一.行业背景 众所周知,经济全球化正在快速推进,社会发展对电力质量的需求越来越明确,无论是电压波动,还是短时的停电都会造成巨大的损失.所以,通过电网改造在配电网中实现配电网自动化,为广大电力用户提供优 ...

  7. 环保数采仪污水处理远程监测解决方案

    环保数采仪下污水处理远程监测解决方案,实现污水处理.排放全过程远程监控与管理,远程实时目标因子监测.工况监控.数据动态显示.异常报警.远程控制.报表制作.趋势分析等操作,环保部门平台对接,源头解决水污 ...

  8. 基于IAP和Keil MDK的远程升级设计

    写在前面:三周之前,我突然想写一个远程升级的程序.那个时候我只是大概知道IAP的意思是在应用编程,但怎么编,我还一无所知.我给自己定下一个个阶段目标,从最基础的代码一点点写起,解决一个又一个的问题.三 ...

  9. STM32F407开发板的HTTP模式IAP远程升级之官方例程移植

    版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/wbdxz/article/details/82859237 关于远程升级的模板建立,可以参考下面的博文 ST ...

最新文章

  1. 15款最好的网站音乐播放器
  2. nodejs中的异步流程序控制nsync
  3. c++的矩阵乘法加速trick
  4. oracle号码段拆开,知道号段起止,如何选择该号段内的所有号码?
  5. 两个SEO技巧让你的网站排名靠前
  6. Hive数据更新同时去重入门
  7. Dxg——Arduino 开发笔记整理分类合集【所有的相关记录,都整理在此】
  8. 01.业务编号规则与算法整合
  9. Android studio 解决Gradle下载缓慢的问题
  10. gif怎么转换html,gif转视频的教程:怎么把gif转换成mp4、avi、wmv
  11. 自学编程的 6 个致命误区
  12. 中南大学2021计算机专硕复试分数线,2021年中南大学研究生录取分数线是多少
  13. win8局域网访问其他计算机名,win8.1局域网找不到其他电脑怎么办
  14. ASICC码对照表整理
  15. php谷歌地图,php – 使用谷歌地图提交位置
  16. 二级题库(C语言)------ 第二套题
  17. 恒大kk服务器信息端口,恒大kk手机客户端服务器
  18. iphone4 的使用技巧(经典呀)
  19. 计算机设备维修更换记录,单位电脑设备维护(维修)
  20. 【研一周小结】第二周个人学习总结

热门文章

  1. Discuz二次开发手册
  2. 上市公司重组与要约收购数据(2015-2021)
  3. 计算机应用研学心得体会,研学心得体会作文800字
  4. TOEFL 学习笔记 (writing 7)
  5. 国内“虚拟试妆”之路任重道远
  6. 跟杨春娟学Spring笔记:自动装备Bean
  7. exe4j打包运行报错:The JAVA_HOME environment variable does not point to a working 32-bit JDK or JRE
  8. U盘格式化以后容量突然减少 [已解决]
  9. 喂!那个谁?你们要的活动来了
  10. web适配手机端开发总结