MSP430程序自升级实现原理和过程.PDF
文本预览下载声明
www.M 微控网
MSP430 程序自升级的实现原理及过
作者: 乔海坤 控论坛特约 DC 控论坛版主
更新: 01
在过去有很多公司或个人对于MSP430 单片机串口自升级技术都当一个技术机密。而TI 公布的是
汇编语言编写的例子,在理解上也不便。而在网络上也很难得到公开例程,这样使得部分MSP430
用户想实现这个功能时极为艰难。
为此, 控论坛和大家分享如何利用MSP430 单片机串口自升级的实现实验。希望能够透过这一个
实验能给到大家在这方面应用的启蒙和参考。如果你想要优化或增加一些特殊功能,比如增加密码
等功能则需要用户去编写了。如果你对这些程序做了更好的修改优化,欢迎到 控论坛来与我们一
起分享。
实验流
[1] 先往MSP430 单片机写入一个自升级引导程序。
[2]利用MC430FUT.EXE 软件下载用户应用程序到MSP430 单片机。
实验工具: 本次实验采用的是 控的 MC430F14+开发板和并口仿真器。单片机型号选用的是
MSP430F147。
基础原理:
首先我们要用MSP430FET 仿真器在WE430 上下载一段引导程序到MCU 上。引导程序需要固定
在FLASH 中一个位置上,且保证不能被擦除。在本例中,咱们选择固定在 0Xfa00 后的空间。关
于这个固定位置,用户可以灵活一些。只要后面有空间够放一个引导程序就基本可以了。
引导程序工作程序如下:
//******************************************************************************
// 描述: 引导程序主程序,此程序首先下载到MSMP430 单片机中
void main(void)
{
W DTCTL = WDTPW + WDTHOLD; // 关WDT
if(ResetVectorValid()==1) // 判断是否已经下载过应用程序
Page 1 of 13
微控网:MSP430 Flash 程序自升级实验演示
www.M 微控网
{
Application(); // 执 应用程序
}
Update(); // 执 升级程序
}
//******************************************************************************
主程序中主要判断FLASH 中是否已存在着有应用程序,如果有应用程序则执 应用程序,否则执
升级程序。这是基本的引导程序功能。当然要控制是否要执 升级程序的办法有很多,比如可以
通过IO 来控制等等。从引导程序进入应用程序很简单,只需要将PC 值转移到相应的应用程序起
始地址位置即可。
如果需要升级程序,进入升级程序后,首先是初始化串口,在本例中是使用串口0 来实现与上
位机的通讯,在这里我采用了查询的方式,这样做是为了简单,在引导程序中尽量不使用中断,如
果使用了串口中断,应用程序中也有相同的串口中断,处理会比较麻烦;只需将接收到的数据全部
写入到flash 中相应的位置。
补充知识
在未实验之前,我想为大这有补充一下关于MSP430 单片机烧录文件.txt 的知识。下面是一个串口
调试的C 例子和生成烧录.txt 文件内容。至于下程序内容,在这里不必详细多讲了,主要实现串口
收发实验。
#include msp430x16x.h
void main(void)
{
W DTCTL = WDTPW + WDTHOLD;
P3SEL |= 0x30;
ME1 |= UTXE0 + URXE0;
UCTL0 |= CHAR;
UTCTL0 |= SSEL0;
UB
显示全部