夜雨聆风学习资料网

ARTICLE · 1070838

嵌入式系统应用软件升级方案

嵌入式系统应用软件升级方案
本文介绍的升级方案有4个程序:1级boot、2级boot、APP应用程序、flash driver程序。
一、1级boot
1级boot的作用是程序启动后决定运行2级boot还是APP应用程序。若升级功能启动,则会跳转到2级boot,若正常启动,则会直接跳到APP程序执行产品业务。该程序设计极为简单,因为该程序在出货后,就无法再修改,因此设计越简单,越稳定。
二、2级boot
2级boot用于升级APP应用程序,在升级完成后,直接跳转到APP程序中。升级业务则根据相关产品的需求决定。
三、APP应用程序
APP应用程序除了实现产品业务外,还需要实现2级boot的升级功能,因为2级boot是根据业务需求实现的,若不同项目的业务需求不同,则2级boot会做相应修改,因此短时间内无法让2级boot特别稳定,若2级boot出现问题可及时修改后升级,
四、flash driver程序
该程序运行在RAM中的一小段程序,用于擦除APP内存,在升级完成后,该程序将不复存在,使用该程序的作用就是防止程序在运行过程中意外跑飞,擦除关键性数据导致程序无法正常运行。在刷写APP之前,需要先刷写flash driver程序,刷写完成并擦除APP内存后,再刷写APP程序即可。
下图是该方案的设计图:
  1. 更新APP
  2. 更新2级boot
3. flash内存分配
说明:APP参数区1和参数区2用于轮询存储,避免刷写时断电导致参数无效的问题。APP下的可变参数保存在外挂内存中,APP参数区1和参数区2区数据仅只读。flash driver程序则在刷写时保存在RAM的某一块区域。
4. 该方案的优缺点:
  1. 优点
    ①合理利用内存资源,不至于过多浪费RAM和flash。②避免了擦除接口意外调度导致擦除关键性数据的问题。③可以升级boot。④满足市场大部分升级需求
  2. 缺点
    ①不适用余静默升级,若文件较大时,升级时间较长,因此无法满足静默升级需求。②不适用于在APP下写falsh,APP若需要修改参数,可把可变参数置于外挂内存中,如APP的升级标志存放在RAM或外挂EEPROM等。

相关学习资料