原创 MSP430单片机的串口升级原理

2012-4-17 14:49 2798 14 16 分类: 消费电子

    MSP430本不支持串口升级程序,但是有网友自己编写了bootloader后使其可以通过串口升级程序。参考网上的资料,自己也做了尝试,效果还不错。现在把自己的心得写下以供网友分享。

 

430单片机可以供用户对flash进行操作,这便是串口升级能够实现的前提,串口升级的基本原理是将主flash分为两部分:bootloader区和用户应用程序区,bootloader程序可以通过串口接收应用程序代码将其写入应用程序区,写完程序后使程序计数器跳转入应用程序区即可。

 

原理本身并不复杂,但是在这一过程中,对中断向量的处理比较难一些,我参考网上一些网友的做法,采用中断向量重映射的办法,修改用户应用程序的中断向量表的位置,在执行中断时首先CPU跳转至默认中断服务程序中,而在中断服务程序中嵌入汇编使CPU跳转至用户中断服务程序。

 

采用这种办法时在bootloader程序中最好不要使用中断,由于bootloader程序和用户应用程序分开存放,即使升级失败也可以进行重新升级!由于我的项目采用的是无线串口透传模块,不具有普遍性,而且完善的升级协议还没完成,就不再上传源代码了。

 

如果有网友有疑问可以邮件沟通。邮箱是462629051@qq.com

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1585841 2013-2-22 10:32

方案技术介绍推广

用户1327925 2012-4-18 09:12

多谢分享

用户1602177 2012-4-17 14:51

多谢分享~
相关推荐阅读
462629051_256703759 2014-06-08 21:56
产品研发的一点想法
        产品研发的核心是产品,研发是为了实现产品,所以能够快速设计出稳定的产品才是研发的目的。通过对比自己身边的一些项目产生了一些想法,总体来说就是尽可能采用半导体厂商的最成熟方案尽可能和...
462629051_256703759 2014-03-01 12:34
LED子系统
        Linux驱动中已经将led驱动作为一个子系统来实现了,针对Tiny210采用通用IO口来控制led的情况,linux采用platform驱动来实现led子系统,因此我们可以通过l...
462629051_256703759 2014-02-27 22:47
git入门
15.1、安装git $sudo apt-get install git $sudo apt-get install git-core 更新git $git clone git:/...
462629051_256703759 2014-02-27 15:05
Vim + Ctags + Taglist组合
12.1、Ctags和Taglist插件的安装: 12.1.1、Ctags插件的安装:sudo apt-get install ctags 12.1.2、Taglist插件的安装:首先下载...
462629051_256703759 2013-09-23 15:57
改善电源负载瞬态响应性能的设计方法
        以前对电源芯片的理解停留在输出电压是否满足需求、输出电流是否满足负载等一些静态的参数上,但是后来发现即使这些参数满足要求所选用的电源芯片有可能还是不能满足负载瞬变时的波动,所以就查...
462629051_256703759 2013-09-05 14:33
MSP430两种串口升级方式对比
        早上收到网友咨询MSP430单片机串口升级问题的邮件,因为不是第一次收到这样的帮助请求,于是便把自己做过的两种串口升级方式做一对比希望对此问题感兴趣的工程师朋友可以从中受益,也希望...
EE直播间
更多
我要评论
2
14
关闭 站长推荐上一条 /3 下一条