本文所采用的MSP430开发环境为IAR Embedded workbench for MSP430(以下简写为IAR EW430)。IAR EW430软件提供了工程管理、程序编辑、代码下载、调试等所有功能,还提供了一个针对430处理器的编译器(ICC430编译器)。是现在最广泛用于MSP430开发的软件。
1.2.4 C语言介绍
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。C语言的开发拥有众多优点:1 简洁紧凑、灵活方便、2 运算符丰富、3 数据类型丰富、4 表达方式灵活实用、5 允许直接访问物理地址,对硬件进行操作、6 生成目标代码质量高,程序执行效率高、7 可移植性好、8 表达力强[13].
C语言的程序结构有如下特点:
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。(结构体、联合体、枚举型的声明的“}”后要加“;”。)
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。[14]文献综述
1.2.5 软件升级的现状
嵌入式技术的发展,使得越来越多的产品都变成了一个“暗箱”----用户只要知道如何操作应用而无须关心内部的工作原理和结构,这给产品走上市场和保护开发者的权益都有着重要的作用。但是,不可避免的是随着时间流逝和产品的激烈竞争,“暗箱”内的软件升级成为了一个难点。于是,我们期望有一种方法,无须开箱,无须对产品逐个操作就能完成内部程序的更新换代,大大减少资源消耗。所以在程序的升级也成为现在单片机应用的重中之重。[15]
所以在现有的大量微处理器中已经开始加入了ISP(In System Programming,在线编程)功能用于升级,而实际上单片机的ISP功能就是通过IAP技术来实现的,IAP(In Application Programming应用编程)技术就是在程序运行中编程,此过程中片子提供一系列的机制(硬件/软件上的),当片子在运行程序的时候可以提供一种改变flash数据的方法。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。[16]这种方式的典型应用就是用一小段代码来实现程序的下载,即片子在出厂前就已经有一段小的boot程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。MSP430同样也拥有这样一小段程序,叫BSL(Bootstrap loader,程序装载器),它实质是固化在芯片中的一小段通信程序(占用ROM空间中0C00H-1000H的地址空间),利用他可实现对flash的擦除和读写。因为他固化在芯片中,因此不必担心被更改或丢失。不过现在这些IAP程序都在一定程度上增加了产品的不稳定性,有时候不正当的系统更新可能导致产品的报废,因此,提高更新的可靠性和稳定性,成为现在程序升级的主要努力方向。