1 原理
使用串口进行程序升级,本质上是将 Msp340 的程序存储区划分成两个程序存储区,一个
区域存储 BOOT 程序,另一个区域用来存储应用程序。上电后 BOOT 程序直接运行,满足条
件(参数区指定位置的参数标记非 BOOT 状态并且应用程序区有效则转到应用程序中执行,
否则在 BOOT 程序中等待升级操作)。
BOOT 程序升级本质上是通过串口接收数据并将其写在指定位置。
2 思路
由于 Msp430 中存储空间划分的特殊性,所以需要合理的划分 BOOT 程序和应用程序的存储
空间。
Msp430Fr5949 默认的存储空间划分如下图
为了实现 BootLoader 功能对 RAM 和 FRAM1 重新划分如下
重新划分后各部分功能如下:
(1) INFO 未变化,用户存储用户参数,这里在 INFOD(0x1800)处定义一个 UINT16 数据用于标
志 B 应用程序向 BOOT 程序跳转。
(2) RAM 分成两部分
1 0x1C00~0x238F 用作 BOOT 和应用程序的运行内存
2 0x2390~0x23FF 用作应用程序的中断向量表重映射
INFO
RAM SIGNATURE
FRAM1
INT-VECTOR FRAM2
0x1800
0x1BFF
0x1C00
0x23FF
0x4400
0xFF7F
0xFF80
0xFF8F
0xFF90
0x10000
0xFFFF 0x13FFF
RAM
0x1800
0x2390
0x238F 0x23FF
VECTOR
(a)
FRAM
0x4400
0xF800
0xF7FF 0xFF7F
BOOT
Data & Para VECTOR
(b)
0xC800
0xC7FF
0xF790
0xF78F