本文基于MS430G2755为目标升级对象,详细讲述BootLoader的使用方法,并给出了具体的移植步骤。 Figure1为MSPBoot软件框架,本文的分析都是基于这个典型软件框架。
Figure1. MSPBoot软件框架路 1. MSP430 Main Memory Bootloader 介绍 本文使用的参考代码版本为MSPBoot_1_01_00_00。 2.MSPBoot的代码移植流程 2.1 MS430G2755 CMD 文件的产生 首先用Per工具产生CMD文件(Generating Linker Files), 通过Per的工具会产生两个CMD文件,其中一个给MSP430G2755的Bootloader使用,另一个给MSP430G2755的应用程序使用。操作指令如下:
这里面有几个重要的参数说明如下, <0x8000 > = Start address of Flash/FRAM <0xFFE0 > = Address of interrupt vector table <0xFC00> = Start address of Bootloader Bootloader的起始地址0xFC00,对于两者也是相同的 <48 > =Size of the proxy table 这里的48对应于12个中断向量,每个中断向量占用4Byte <6> = Size of shared vectors 在应用程序中一共有3个(P1/Time/Dummy)中断向量,每个中断向量占用2Byte, 对应参数为6 <0x1100> = Start address of RAM <0x20FF > = End address of RAM <0x80> = Size of the stack <0x1000> = Start address of info memory used for bootloader <0x10BF > = End address of info memory used for bootloader 注意如上修改的参数6,及中断向量的数量,在Bootloader中的中断向量不需要修改,只修改MSP430G2755应用程序App中的中断向量即可,通过下图可以直观看到中断向量的在Bin文件中的分布。 2.2工程CMD文件添加到工程中 将2.1步骤中产生的CMD文件,分别添加到MSP430G2755的Bootloader及应用程序App的工程中,如下图所示:
Figure4.MSP540G2755 CMD文件
2.3应用程序txt转化c文件 通过CCS编译器,编译MSP430G2755的应用程序,编译完成后会产生一个txt文件下载格式,我们需要将这个产生的txt文件转换为.c文件,这个.c文件才能给主控MCU使用,通过Bootloader下载到MSP430G2755中。转化运行指令如下:
通过这步将生成的.c文件,添加到主MCU中的main函数文件路径中,在这里我们测试的主控MCU是MSP430G2553,添加后的程序如下图所示:
Figure5.Host MCU添加升级程序 2.4写入CRC校验地址信息 注意此时已经不再需要MSPBoot用户指导手册中的CRC生成工具,进行CRC的校验,我们看到其实直接在主MCU中计算了CRC校验,并且把CRC的值放到指定的位置。
3.小结
从0x8000-0x8100为应用程序 从0xFBC0-0xFBF0 为虚拟的中断向量表 从0xFC00-0xFFD0 为Bootloder 从0xFFE0-0xFFF0 为真实的中断向量表 参考文献
|