MCU端 Boot+App设计方案

概述

本文结合当前主流主机厂的升级规范来介绍不用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部分。

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

MCU端 Boot+App设计方案_第1张图片

优点:

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

你可能感兴趣的:(Classic,AUTOSAR精讲,c语言)