3 应用程序模式

3.1 General

        应用程序模式被设计为允许操作系统在不同的操作模式下运行。支持的最小应用模式数目为1。它只适用于完全相互排斥的操作模式。两种排他性操作模式的一个例子是行尾编程(end of line programming)和正常操作。操作系统启动后,不允许更改应用程序模式。

3.2 应用程序模式范围

        许多ECU可以执行完全独立的应用程序,例如工厂测试、Flash编程或正常运行。应用模式是根据这些不同的条件来构造运行在ECU中的软件的一种方式,是开发完全独立系统的一种干净的机制。

        通常,每个应用程序模式使用它自己的所有task子集、ISR、Alarm和时序约束,尽管并没有限制一个task或ISR不可以运行在不同模式下。如果再次需要使用相同的功能,建议在不同的模式之间共享同一个task/ISR/Alarm。如果功能不完全相同,就需要在运行时和资源之间权衡:要么动态地检查应用程序模式,要么定义单独的task。

        考虑到系统的生成和优化,应用程序模式有助于减少需要考虑的操作系统对象的数量。

3.3 启动性能

        在汽车应用中,ecu的启动性能是一个安全关键(safety critical)问题,因为在正常运行过程中可能会出现复位状况。因此,用于确定应用程序模式的代码应该非常快。在启动时,不使用系统服务的用户代码(参见图19)应确定模式,并将其作为参数传递给API服务StartOS。

        说明:如果系统中OSEK和OSEKtime同时存在,则使用传递给OSEKtime的应用模式。

        建议只使用引脚状态或类似容易评估的条件来确定模式。模式应该在内核启动之前确定,并且生成的代码不可移植。应避免冗长或复杂的启动程序。

        传递给StartOS的应用程序模式允许操作系统自动启动正确的task和Alarm子集。将自动启动task和报警分配到应用模式时,应在ISO 17356-6文件(第6部分:OSEK/VDX实现语言(OIL))中静态进行。

3.4 应用程序模式支持

        对于一致性类的子集没有应用程序模式的限制。这是所有一致性类的要求。对关闭功能没有影响。不支持在运行时切换应用程序模式。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐