OSEK应用模式

1 前言

        应用模式(Application modes)用于区分不同的场景,以便在系统运行时,组织各自相互独立的OS相关的资源集合,是一种分而治之的思想体现。不同的应用模式是互斥的,即系统当前必须在一种应用模式(且只能在一种应用模式下)运行。

        举个例子来说,end-of-line(EOL)的刷写模式和系统正常工作模式,必然是两个相互独立的应用模式,其需求设计也是面向完全不同的场景。

2 应用模式概述

        很多ECU都会执行完全独立的应用(applications),包括工厂测试(factory test),固件刷写(flash programming)或正常工作操作(normal operation)。显然,可以将应用模式看成满足特定场景的软件模式,以其对应的应用实现来组织代码,使得各场景应用之间的开发解耦。

        通常来说,不同应用模式都会使用自己的一套系统资源,包括taskISRsalarms及定时器。当然,如果应用模式之间存在功能上的交集,共享这些系统资源也是允许的。反之,要么给每个应用模式配置独立的系统资源(例如task),不同的应用模式运行不同的task;亦或者,需要在任务运行时做条件判断,以运行不同应用模式下的代码分支,这其中有一个运行速度(runtime)和资源开销之间的折衷考虑。

        通过应用模式将不同的场景需求及其软件设计分割开来,有利于降低软件的复杂度,OS相关的资源管理与规划也会相对简单。

3 启机性能(start up performance)

        在系统运行中,通常存在系统复位的需求。因此,启机性能对于车载软件系统来说尤为重要。所以,用于确定应用模式的逻辑必须简单高效,尽量减少时间开销。如图1所示,系统启动时,用户层代码通过系统服务来确定当前的应用模式,并将之作为参数传递给系统接口StartOS(通常建议通过pin脚状态或相似的条件判断来快速确定应用模式)。

图1 系统启动(system start up)示意图 

        简单来说,必须在OS内核启动前确定当前的应用模式(显然,此时系统服务还无法使用);同时,不同的应用模式通过静态配置,对应着不同的系统资源,并由StartOS来调用以完成对应的系统初始化。

4 应用模式相关支持

        应用模式在一致类(conformance classes)这一维度并没有做区分,反而一视同仁,做了统一要求。应用模式的定义对于关机功能(shutdown functionality)来说没有影响。

        此外,不支持在运行时(runtime)进行应用模式间的切换,即必须通过复位来实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/627170.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OV SSL证书的特点

OV SSL证书,全称为Organization Validation SSL Certificate(组织验证型SSL证书),是一种中级的SSL证书类型。与仅验证域名所有权的DV(Domain Validation)证书不同,OV证书在颁发前会执行更加严格…

01.认识HTML及常用标签

目录 URL(统一资源定位系统) HTML(超文本标记语言) 1)html标签 2)head标签 3)title标签 4)body标签 标签的分类 DTD文档声明 基础标签 1)H系列标签 2&#xff09…

C++基础与深度解析 | 语句 | 分支语句 | 循环语句 | 达夫设备

文章目录 一、语句基础二、分支语句1.分支语句--if2.分支语句--switch 三、循环语句1.循环语句--while2.循环语句--do-while3.循环语句--for4.循环语句--基于范围的for循环5.break / continue语句四、语句的综合应用--达夫设备 一、语句基础 语句的常见类别: 表达…

如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件

介绍 Python 是一种在 Linux 上默认可用的流行命令处理器。 我们之前已经介绍过如何在 Ubuntu 12.10 x64 上安装 Nagios 监控服务器。 这一次,我们将扩展这个想法,使用 Python 创建 Nagios 插件。 这些插件将在客户 VPS 上运行,并通过 NR…

树莓派|角速度和加速度传感器

角速度传感器和加速度传感器是常见的惯性传感器,常用于测量物体的旋转和线性运动。 角速度传感器(Gyroscope)用于测量物体绕三个轴(X、Y、Z)的旋转速度或角速度。它可以提供关于物体在空间中的旋转方向和角度变化的信…

数据结构学习/复习14--归并排序的递归与循环实现/计数排序

一、归并排序 1.递归实现 注意事项:即使排序的数字个数不为2的倍数也可正常分解,其思想没有规定一定要左右数目对称才可合并 注意事项:归并的思想还适用于外排序 2.递归改循环 注意事项:边界处理与非2的n次方倍的处理 版本1&…

win10下,svn上传.so文件失败

问题:win10下使用TortoiseSVN,svn上传.so文件失败 解决:右键,选择Settings,Global ignore pattern中删除*.so,保存即可。

网络3--网络通信的深度理解(端口号)

网络通信的进一步理解 两个主机间进行通信,其实是两个主机间的软件进行通信,软件也就是可执行程序,运行时就是进程,所以也为进程间通信。 进程间通信需要共享资源,这里两个主机间的共享资源是网络,利用的是…

指针(4)

1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; 一般使用: int main() {char i a;char* p &i;*p q;printf("%c", i);return 0; } 然后我们看这个例子,这是把⼀个字符串放到pstr指针变量里了吗? 事实上不是,他只是将…

如何管理多个版本的Node.js

我们如何在本地管理多个版本的Node.js,有没有那种不需要重新安装软件再修改配置文件和环境变量的方法?经过我的查找,还真有这种方式,那就是nvm(Node Version Manager)。 下面我就给大家介绍下NVM的使用 1…

笔记本黑屏,重新开机主板没有正常运作的解决办法

拆开笔记本后壳,打开看到主板,将主板上的这颗纽扣电池拆下来,如果是带连接线的(如下图),可以将接口处线头拔出,等1分钟再把线接上。 ------------- 以下是科普 首先,电脑主板上的这…

Llama-Factory + Ollama 打造属于自己的中文版 Llama3

Meta 推出 Llama3 也有一小段时间了。Llama3 包含 8B 和 70B 两种参数规模,涵盖预训练和指令调优的变体。Llama 3 支持多种商业和研究用途,并已在多个行业标准测试中展示了其卓越的性能(关于Llama3的具体介绍可以参考本站另外一篇博文&#x…

详解xlsxwriter 操作Excel的常用API

我们知道可以通过pandas 对excel 中的数据进行处理分析,但是pandas本身对格式化数据方面提供了很少的支持,如果我们想对pandas进行数据分析后的数据进行格式化相关操作,我们可以使用xlsxwriter,本文就对xlsxwriter的常见excel格式…

Java聚合项目打包运行笔记

聚合项目创建 略 聚合项目打包配置 父工程 pom文件添加 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>…

【18-Ⅰ】Head First Java 学习笔记

HeadFirst Java 本人有C语言基础&#xff0c;通过阅读Java廖雪峰网站&#xff0c;简单速成了java&#xff0c;但对其中一些入门概念有所疏漏&#xff0c;阅读本书以弥补。 第一章 Java入门 第二章 面向对象 第三章 变量 第四章 方法操作实例变量 第五章 程序实战 第六章 Java…

ROS2+TurtleBot3+Cartographer+Nav2实现slam建图和导航

0 引言 入门机器人最常见的应用就是slam建图和导航&#xff0c;本文将详细介绍这一流程&#xff0c; 便于初学这快速上手。 首先对需要用到的软件包就行简单介绍。 turtlebot3: 是一个小型的&#xff0c;基于ros的移动机器人。 学习机器人的很多示例程序都是基于turtlebot3。 …

Java入门之数据类型和变量

1.字面常量 字面常量就是在程序运行中&#xff0c;固定不变的量&#xff0c;例如如下的代码 public class Demo{public static void main(String[] args){System.Out.println("hello world!");System.Out.println(100);System.Out.println(3.14);System.Out.println…

Windows Docker 部署 Etcd 键值存储系统

一、简介 etcd 是一个由 CoreOS 团队发起的开源项目&#xff0c;它用 Go 语言实现&#xff0c;是一个分布式、高可用的键值存储系统。etcd 采用 Raft 算法&#xff0c;确保了数据的强一致性和高可用性&#xff0c;即使集群中有部分节点发生故障&#xff0c;也能保持服务的正常…

Github20K星开源团队协作工具:Zulip

Zulip&#xff1a;让团队协作的每一次交流&#xff0c;都精准高效。- 精选真开源&#xff0c;释放新价值。 概览 随着远程工作的兴起和团队协作的需求不断增加&#xff0c;群组聊天软件成为了日常工作中不可或缺的一部分。Zulip 是github上一个开源的团队协作工具&#xff0c;…

微信支付商户的“商家转账到零钱”产品快速开通指南

微信支付商户的“商家转账到零钱”功能为商家提供了便捷的转账途径&#xff0c;尤其适用于费用报销、员工福利发放、合作伙伴货款或分销返佣等多种场景。那么&#xff0c;如何快速开通这一功能呢&#xff0c;需要快速开通的商户可以联系小编。 首先&#xff0c;确保你的企业已经…