我正在尝试为集群应用程序设计一个 Autosar 系统。在操作系统中,我可以看到有受信任的操作系统应用程序和不受信任的操作系统应用程序。我无法理解这些之间的区别。此外,我无法决定哪些 SWC 和 BSW 模块应该被信任,哪些模块不被信任。请帮忙。
2 回答
我相信这些分区可以为您节省开发成本,因为开发 QM 组件更容易。
您应该只将 ASIL-D(可信)SwC-s 放置在可信分区中,而安全性较低的 SwC 应分配给非可信分区。
如果一个受信任的 SwC 有一个连接到不受信任的组件的连接器,那么它应该为该接口的输入数据的物理或内部约束被违反做好准备。
受信任的:可以在特权模式下执行的操作系统应用程序,并且可以不受限制地访问 API 和硬件资源。只有受信任的应用程序才能提供受信任的功能。
不可信:以非特权模式执行的操作系统应用程序对 API 和硬件资源的访问受到限制。
如果您有一个混合临界应用程序,这会变得很有趣,通常是因为功能安全根据 ISO26262 分配了不同的 ASIL。您要么必须根据最高 ASIL 开发整个 AUTOSAR 堆栈和所有 SWC,要么必须确保它们之间不受干扰。
我假设您现在想使用这种不受干扰的方式:
为此,首先您需要软件的功能安全要求,包括其 ASIL 级别。
然后,您将这些功能安全要求的实施分发到您的 SWC,包括 Runnables。
ASIL 是在 SWC 级别分配的(除了最近出现的另一种可能性,我错过了)。
然后,您将具有不同 ASIL 的 SWC 拆分到不同的应用程序中,每个都具有内存和/或时序保护(与您的功能安全管理器一起定义)。
如果根据您的软件架构中的映射,使用的 BSW 也具有功能安全责任,那么它们也需要根据各自的 ASIL 进行开发。无论是哪种情况,您都可以从 AUTOSAR 堆栈提供的功能安全案例中学习。如果没有,您的 AUTOSAR 堆栈仅适用于 QM,不适合功能安全应用。
大多数东西理论上可以在不受信任的应用程序中运行,因为有受保护的 API。检查您的 BSW/MCAL 文档,如果这不起作用。此外,您可能需要更改它以减少资源消耗。根据您的处理器和选择的保护措施,这可能会占用大量资源/引入延迟。