跟着功用的不断提高以及本钱的下降,单片机在各个领域都得到了广泛的运用。尤其在信号的操控和处理方面,单片机以其超低的功耗、简略的操作成为设计者的首选。TI公司推出的MSP430x5xx系列单片机具有低电压、低功耗、高速处理才能以及装备灵敏的接口等特色,是当今干流单片机之一。
同其他处理器相同,单片机正常作业除了需求硬件电路以外,还需求相应的用户运用程序。但运用程序在调试阶段以及实际运用时往往都需求更新,惯例的办法需求翻开机箱,将仿真器与单片机衔接好,再更新程序。这种过程比较繁琐,假如操作不妥还会损坏设备。因而,假如能经过单片机已有的简略接口(如串口)更新运用程序,那么将给单片机的运用带来更大的便利。
1 整体思维
首要经过仿真器向单片机中写入一段小程序,称之为Bootloader程序。这个程序不是用户的运用程序,它的作用有两个:第一是在上电的一小段时间里实时检测串口,假如有上位机宣布的更新程序指令,就发送握手信号,告诉上位机发送更新代码,并将收到的更新代码写入单片机相应的Flash中;第二个作用是当检测到有运用程序存在时,跳转到运用程序的进口地址,履行运用程序。其流程如图1所示。
上位机程序(VC++言语编写)的功用是,当用户宣布更新程序的指令后,在一段时间内接连发送更新程序指令。假如收到单片机的应对信号,表明单片机预备开端接纳更新代码。此刻上位机读取已挑选的代码文件,分段发给单片机。其流程如图2所示。
2 相关常识
2.1 IAR设置
常用的MSP430单片机软件开发环境是IAR C++/C++Compiler for MSP430。用仿真器进行程序烧写以及仿真调试时,在OpTIons→Linker→ Output→Format选项中挑选的是“Debug informaTIon for C-SPY”,但假如要得到该程序文本格局的代码文件,需求挑选Format中的Other选项。
2.2 代码文件格局
下面是一个生成的txt文件的内容:
@后边的6C00表明开端地址,接下来的内容需求顺次写入6C00开端的地址中。@FCFF表明程序的复位进口地址,单片机上电或许复位后,程序从这儿开端运转。最末行q表明完毕。
2.3 xcl文件
上面生成的txt文件中的代码寄存地址、复位进口地址以及中止进口地址都能够经过装备文件进行修正,这个文件便是xcl文件。该文件在装置目录的IAR Systems\Embedded Workbench 5.4 EvaluaTIon\430\config中,本文所运用的单片机对应的装备文件是lnk430F543 8.xcl,将其复制到自己创立的工程中以便修正。在编译器的Options→Linker→Config→Linker command file选项中指定这个装备文件。
下面是xcl文件中的部分内容:
上面的装备信息意义是代码(Code)和数据常量(Constant data)放在5C00~FF7F和10000~45BFF两个空间中。中止向量的地址是FF80~FFFF,其间复位向量的地址是FFFE~FFFF。
2.4 Bootloader程序和用户运用程序的联系
地址空间分配如图3所示。图3左边是MSP430F5438的空间分配。在正常的运用中,用户代码占用5C00~FF7F、10000~45BFF两块区域,中止向量为FF80~FFFF。但含有Bootloader的程序,就与之有所区别了。即Bootloader程序占用了一部分代码区,一起占有中止向量FF80~FFFF。而用户需求从头编写一个中止向量表,以及相应的进口地址。图3右面是Bootloader程序和用户程序以及自定义的中止向量在Flash中的方位。关于空间方位以及空间巨细能够依据实际情况进行调整。
从图中能够看出,在代码空间中存在着两个独立的程序:Bootloader程序和用户程序。Bootloader完结的功用是在复位时经过上位机更新用户程序或许调用现已存在的用户程序。在这儿最为要害的是中止向量FF80~FFFF是归Bootloader程序一切的,当有中止产生时,程序首要进入FF80~FFFF空间的地址中(也便是Bootloader的程序中),接着再由Bootloader的中止程序跳转到相对应的用户中止程序中。
因为用户程序空间以及中止向量都产生了改变,那么需求对装备文件lnk430F5438.xcl的内容进行修正。以图3为例,修正如下:
2.5 上位机程序
使用VC++编写带有串口的上位机程序,依照图2所示的流程完结相应的功用。在操作时,首要翻开与单片机衔接的串口,挑选要更新的文件,之后给单片机上电,就能够进行用户程序的更新了,上位机界面如图4所示。
定论
经过添加一个Bootloader程序,引出一个串口就能够更新程序,使更新程序变得愈加简单,在实际运用中起到了事半功倍的作用。此种办法也相同适用MSP430其他系列的单片机。
来历;电子工程网