1. 课程导入与工程全景
在汽车电子领域,OTA(Over-The-Air)升级已经从“锦上添花”变成了整车功能迭代的基础能力。ST Stellar 系列作为面向域控制器与区域控制器的高性能车规 MCU,其内部集成了大容量嵌入式 Flash,并原生支持双 Bank(Dual-Bank)结构。本课程要解决的核心问题非常具体:如何利用 Stellar 的双 Bank Flash 机制,构建一套可回滚、可校验、可量产的 OTA 刷写工程,而不是停留在“调用某个 API 就能升级”的层面。
先明确本课程的学习目标。第一,理解 Stellar Flash 控制器(Flash Controller)的物理分区、Bank 与 Sector 的层级关系,以及 RWW(Read-While-Write)能力对 OTA 的意义。第二,掌握双 Bank 切换的三种典型策略:A/B 对称分区、主备分区、以及带 Bootloader 的独立升级区。第三,能够独立完成一次完整的 OTA 流程设计,包括升级包解析、Flash 擦写、CRC/哈希校验、Bank 切换标志写入、复位后新镜像启动确认。第四,具备排障能力,能根据 Flash 状态寄存器、ECC 错误标志、Bank 切换失败等现场信息定位问题。
课程的核心对象可以归纳为四类。其一是物理对象:Stellar 芯片内部的 PFlash(程序 Flash)、DFlash(数据 Flash)、Bank0/Bank1、Sector、以及可选的 OTP 区域。其二是软件对象:Bootloader、Application、OTA Agent、Flash Driver、以及 Bank 切换管理模块。其三是数据对象:升级包(含镜像、签名、版本号、CRC)、Bank 状态标志、启动确认计数器。其四是工具对象:调试器、CAN/CAN-FD 或以太网刷写通道、上位机刷写工具、以及量产烧录工装。
下面这张图给出了本课程的整体工程全景。它把物理存储、软件模块、数据流与状态切换放在同一张关系图中,便于在后续章节中反复对照。
从图中可以看到,整个工程并不是“写一个刷写函数”那么简单。左侧的物理存储层决定了你能怎么切、切多大;中间的软件与流程层决定了切换是否安全、是否可回滚;右侧的数据与工具层决定了升级包怎么来、怎么验、怎么观测。三者缺一不可。
接下来给出本课程的实战路线图,共 30 章,按“先懂硬件、再通流程、后做工程”的顺序推进。第一阶段(第 1~6 章)建立基础:Stellar Flash 架构、Bank/Sector 划分、RWW 原理、启动流程与 Bootloader 角色。第二阶段(第 7~14 章)打通单 Bank 刷写:Flash Driver 编写、擦除与编程时序、回读校验、UDS 刷写服务。第三阶段(第 15~22 章)进入双 Bank OTA 核心:A/B 分区设计、升级包格式、Bank 切换标志、启动确认与回滚。第四阶段(第 23~30 章)面向工程化:量产烧录、版本管理、安全启动、故障注入测试与现场排障。
最后强调本课程的一条主线:双 Bank 的价值不在于“有两个区”,而在于“切换可控、失败可回滚、启动可确认”。只要抓住这条主线,后续每一章的具体寄存器、API、时序和状态机,都会落在同一个工程框架里,不会变成零散知识点的堆砌。