该架构已经在产品中使用,并且在STM32,MSP430,STM8三款单片机都做过实际产品;
初步思路
1、把系统分为四个区域,BOOT区,APP区,APP BACKUP区,和PARAMETER(参数区);
2、程序开始运行BOOT代码,然后跳转到APP代码中;
3、APP代码中收到触发升级命令之后跳转到BOOT代码中升级,BOOT代码下载程序到APP BACKUP中,如果升级成功,并通过校验,则把备份区代码拷贝到APP区,执行新程序;
4、如果多次升级失败,则停止升级,继续执行原有程序;
优点:
程序升级失败,不会对设备照成毁灭性的打击,仍然能自动恢复正常,无需人工干预;
缺点:
浪费FLASH空间;
建议使用领域:
远程升级;
|