MCU端 Boot+App设计方案

  • Post author:
  • Post category:其他




概述

本文结合当前主流主机厂的升级规范来介绍不用MCU升级方案及其优缺点,除了本文提及的方案外还有很多其他的升级方案,升级方案的设定要考虑到客户需求以及硬件资源等因素。

目前主流的客户需求,要求存储区划分要有Boot段、Config段、App A分区和App B分区。其中Boot端需要满足客户的Bootloader升级要求,Config端用于存储Boot和App版本以及一些刷写后需要保存的一些系统状态和flags。App A/B分区主要用于升级切换、回滚等操作。



不同设计方案及其优缺点



利用芯片 A/B Swap方案



芯片 A/B Swap介绍

比如英飞凌TC397就提供A/B Swap机制,通过对硬件的操作完成相关分区的切换。当我们使能Swap功能后,通过寄存器的切换,不改变写入pflash时的地址,但能够使读取pflash时的地址做相应的变动。



利用芯片A/B Swap的升级方案

首先将MCU分为A/B分区,用来支持升级回滚,最大限度地保留系统功能。

其次由于客户规范对升级流程做了严格的规定,因此每个分区必须保留Boot部分。

因此整个存储区划分结构如下:

image-20220601104938592

优点:

  • 由于A/B分区是硬件分区,切换的时候程序读取地址不变,因此A、B分区只需要编译出一份hex代码用于升级,不



版权声明:本文为qgccdd061313原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。