0

我正在尝试找出通过总线(can/ethernet)升级软件的方法。执行此操作时,安全状态建议回滚到以前的 sw。请任何人都可以帮助我了解实现这一目标的方式和方法是什么?

4

1 回答 1

0

回滚的唯一方法是拥有足够的闪存来存储旧的应用程序,直到新的应用程序被证明可以工作。

由于跨 ECU 的应用程序相互依赖,一些协调器(通常位于中央网关中)必须对其进行协调。

第一步,该协调器下载整车的软件版本,将其存储在本地内存中,并进行一些真实性和完整性检查。

如果尚未存储,它还可以下载当前已刷新到其本地空间的最新版本。另一种选择是在 ECU 中为此设置第二个闪存区域,这通常更昂贵。

然后,协调器确保车辆处于安全状态,例如推进系统关闭、车内无人和车门锁定。

如果确保了这一点,它会使用正常的刷新程序来刷新所有具有缓存软件的 ECU。

之后,它会检查每个 ECU 以确保刷写成功。

如果是,它可以丢弃它存储的内容。

否则,如果 ECU 不只是切换回内部副本,它会再次刷新旧应用程序。

当然,这也有失败的风险,为什么人们可能希望在每个 ECU 中拥有这两个闪存部分。

然而,后者对于像 LIN 从站这样的小型 ECU 来说是不现实的。

于 2021-12-03T19:22:45.837 回答