MSP系列自升级方案 MSP系列自升级方案是一种将程序划分为两个部分的升级方法,即Boot和App。Boot是固定不变的,每次更新只更新App里的内容。App是通过Boot来升级的,类似于Boot是杯子,App是要喝的东西,杯子是不变的,但你要喝的东西可能是水,也可能是咖啡,杯子只是负责帮你把水搬运到你的口中。 自升级的流程可以分为以下几个步骤: 1. MCU在没有App或者App不完整时是运行在Boot代码段,MCU一复位就会判断升级标志位是否被置位,如果被置位了,就会进入Boot进行升级操作,如果没有置位标志位就会检测App代码是否是有效的,如果是有效的代码就会运行此代码,如果代码无效就会进入Boot中等待升级操作。 2. 升级完成后,检测到主机发送的跳转运行App的型号,程序就会跳到App代码段进行运行。 在升级过程中,需要注意 Boot 区和 App 区不能重叠,否则肯定会出问题的。 程序空间划分是指将程序划分为不同的区域,例如 Boot 区和 App 区。在 MSP430FR4133、MSP430FR6989 和 MSP430G2553 等微控制器中,程序空间划分如下: * FRAM:0xFF88--0xFFFF 用于映射中断向量,只在 APP 内有效。 * FRAM:0xFF80--0xFF87 Signature * FRAM:0xF600--0xFF7F 用于存放 Boot 代码,包括其中引用到的常量。 * FRAM:0xF5F0--0xF5FF:存放 APP 的入口地址;备份 Boot 的入口地址。 * FRAM:0xC400--0xF5EF 用于存放 APP 代码。 * RAM:0x2788--0x27FF 用于映射中断向量,只在 Boot 内有效。 * RAM:0x2003--0x2787 Common use * RAM:0x2000--0x2002 用于存储升级标志位和升级的密码。 在自升级中,需要注意 Boot 区和 App 区的划分, Boot 区用于存放 Boot 代码,App 区用于存放 App 代码。同时,需要注意中断向量的映射, Boot 区和 App 区各自有自己的中断向量映射区。 在 IAR 工程 Options 设置中,Linker 文件链接的就是 MCU 内存配置的文件。使用者可以从默认的目录下把原始文件拷贝出来,放到自己的工程目录下,进行自定义修改配置文件。 在升级标志操作细节中,需要设置升级标志位的地址,以及修改该标志位所需密码的地址。App 和 Boot 程序中都需要把变量定义成__no_init 类型的。 在 MSP430FR4133、MSP430FR6989 和 MSP430G2553 等微控制器中,自升级程序空间的划分如下: * MSP430FR4133:FRAM:0xFF88--0xFFFF用于映射中断向量,只在 APP 内有效。FRAM:0xFF80--0xFF87 Signature;FRAM:0xF600--0xFF7F用于存放 Boot 代码,包括其中引用到的常量。FRAM:0xF5F0--0xF5FF:存放 APP 的入口地址;备份 Boot 的入口地址。FRAM:0xC400--0xF5EF用于存放 APP 代码。 * MSP430FR6989:FRAM:0x10000--0x23FFF用于存放 App 代码,所以 APP 的 code 区、常数区、中断服务函数区、Cstart 区都必须在这个范围内。FRAM:0xFF90--0xFFFF用于映射中断向量,只在 APP 内有效。FRAM:0xFF80--0xFF8F Signature;FRAM:0xFC02--0xFF7F空余,为了凑够 MPU 的一个最小 SEG(1K:0xFC00--0xFFFF)而保留的;FRAM:0xFC00--0xFC01存放 App 的入口地址。 MSP系列自升级方案是一种灵活的升级方法,可以将程序划分为 Boot 区和 App 区,从而实现灵活的升级和维护。
剩余15页未读,继续阅读
- 粉丝: 12
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助