Autosar学习----AUTOSAR_SWS_BSWGeneral(七)
💥💥🔍 🔍 欢迎来到本博客❤️❤️💥💥
🐡优势:❤️博客内容尽量做到通俗易懂,逻辑清晰。
⛳️座右铭:恒心,耐心,静心。
⛳️ 欢迎一起交流分享
目录
API规范
- Imported types
- 8.2 Type definitions
- 8.2 类型定义总结
- 8.3 Function definitions
- 8.3.1 General specification on API functions
- 可重入性术语和定义 (reentrancy)
- 其他注意事项
- 8.3.2 初始化函数
- 8.3.3 反初始化函数
- 8.3.4 获取版本信息
- 8.4 回调通知
- 8.5 调度函数
- 8.6 预期接口
- 8.6.1 强制接口
- 8.6.2 可选接口
- 8.6.3 可配置接口
- 8.7 服务接口
Imported types
当新增新的类型时,需要新增对应的表格,用来描述新增类型的定义头文件、类型含义等等,表格规范如下:

8.2 Type definitions
8.2 类型定义总结
在AUTOSAR基本软件模块的规范中,8.2节主要涉及数据类型的定义,具体内容如下:
-
命名约定:
- 所有由BSW模块定义的数据类型(除了ConfigType)应遵循命名约定:
<Ma>_<Tn>Type,其中<Ma>是模块缩写,<Tn>是类型名称,采用驼峰命名法。
- 所有由BSW模块定义的数据类型(除了ConfigType)应遵循命名约定:
-
示例:
- 示例类型包括
Eep_LengthType、Dio_SignalType和Nm_StateType。
- 示例类型包括
-
基本AUTOSAR类型:
- 基本AUTOSAR类型不需要遵循上述命名约定。
-
类型定义模板:
- 类型定义应包括以下信息:
- 名称:类型的名称。
- 类型:允许的条目,包括枚举、结构、指向类型的引用和AUTOSAR整数数据类型。
- 范围:合法值的范围。
- 描述:对该类型用途的非正式描述。
- 常量:该类型的预定义名称(可选)。
- 类型定义应包括以下信息:

-
避免重复定义:
- 为避免在BSW模块和软件组件中重复和不一致的类型定义,公共数据类型应在RTE类型头文件中定义。
-
接口数据类型:
- 标准化接口和标准化AUTOSAR接口中使用的数据类型应仅在RTE类型头文件中定义。
这一节强调了数据类型的标准化和一致性,以确保在AUTOSAR环境中模块间的兼容性和可维护性。
8.3 Function definitions
- 该模块的函数定义在各自的BSW模块规范第8章中指定。
- 函数的定义使用以下模板
8.3.1 General specification on API functions
可重入性术语和定义 (reentrancy)
规定
- 并发安全:允许无限制地并发执行此接口,包括抢占和多核系统上的并行执行。
- 可重入:在单核系统上允许此接口的伪并发执行(即抢占)。
- 不可重入:不允许并发执行此接口。
- 条件可重入:在某些条件下可能允许并发执行此接口,这些条件作为API规范的一部分
- 建议:禁止使用局部变量和全局变量,如必须使用,需确保安全;使用stack variables
其他注意事项
- API参数检查:开发错误检测启用时,所有API服务应启用参数检查。
- NULL指针检查:开发错误检测启用时,指针参数应检查是否为NULL。
- 不传递函数指针:API参数中不应传递函数指针。
- 基于索引的API服务:不同实例的BSW模块应通过索引访问其API。
8.3.2 初始化函数
- BSW模块在一个单独的初始化函数中初始化变量和硬件资源。
- API名称遵循
Init作为服务名称的模式。 - 示例:
CanIf_Init()Eep_21_LDExt_Init()- 只有ECU状态管理器和基础软件模式管理器可以调用初始化函数。
- BSW模块的状态应在初始化函数结束时相应设置。
- 检查初始化函数的入参,如发现有错误,抛出开发错误
8.3.3 反初始化函数
- 反初始化函数用于ECU关闭或睡眠阶段。
- API名称遵循
DeInit作为服务名称的模式。 - 只有ECU状态管理器和基础软件模式管理器可以调用反初始化函数。
- BSW模块的状态应在反初始化函数开始时相应设置。
8.3.4 获取版本信息
- 获取版本信息函数应同步执行,并且是可重入的。
- 它只具有一个参数,用于返回类型为
Std_VersionInfoType的BSW模块版本信息。 - 此API的可用性在每个BSW模块的预编译时可配置。
8.4 回调通知
- 回调是用于通知其他模块的函数。
- 如果BSW模块提供的回调函数是AUTOSAR服务,其签名应遵循RTE提供的签名。
- 回调函数应避免返回除
void以外的类型,除非它们是AUTOSAR服务。
8.5 调度函数
- 许多BSW模块具有需要周期性或事件触发的调度函数。
- 调度函数没有返回值和参数。
- 它们不得进入任何等待状态,通常不可重入。

8.6 预期接口

8.6.1 强制接口
- 每个BSW模块的强制接口列表是特定的。
8.6.2 可选接口
- 每个BSW模块的可选接口列表是特定的。
8.6.3 可配置接口
- 在目标功能可以配置的地方列出可配置接口。
8.7 服务接口
- 定义模式声明组的AUTOSAR服务、ECU抽象和复杂驱动程序组件应在其SwcBswMapping中定义
synchronizedModeGroup。
相关文章:
Autosar学习----AUTOSAR_SWS_BSWGeneral(七)
💥💥🔍 🔍 欢迎来到本博客❤️❤️💥💥 🐡优势:❤️博客内容尽量做到通俗易懂,逻辑清晰。 ⛳️座右铭:恒心,耐心,静心。 ⛳️ 欢迎一起…...
自动化测试框架集成:将Selenium集成到pytest与unittest中
目录 引言 一、Selenium简介 二、Selenium与pytest的集成 1. 安装pytest和Selenium 2. 编写测试用例 3. 运行测试 三、Selenium与unittest的集成 1. 编写测试类 2. 运行测试 四、Selenium自动化测试的最佳实践 1. 使用Page Object模式 2. 合理利用等待机制 3. 跨浏…...
华为GaussDB数据库(单机版)在ARM环境下的安装指南
一、软件版本 机器配置:8核16G,CPU: Huawei Kunpeng 920 2.9GHz操作系统:EulerOS 2.8 64bit with ARM数据库版本:GaussDB Kernel 505.1.0 build 44f4fa53 二、部署流程 2.1 新建用户 ① 以omm用户为例,添加一个omm用…...
计算机网络笔记002
### 课堂讨论对话 **学生A**: 老师,计算机网络的组成是怎样的?🤔 **老师**: 非常好的问题!计算机网络主要由硬件、软件和通信协议三部分组成。我们先从硬件开始讨论吧。 **学生B**: 硬件包括哪些设备呢?ὠ…...
Unity 的Event的Use()方法
对于Event的Use方法,其在调用后将不会再判断同类型的事件 这种情况下,第二个MosueDown不会进入,因为已经Use 如果把Use注释掉 依旧能进入第二个MosueDown 也就是说当使用了Use方法,相同的事件类型不会进第二遍...
数据分析师之Excel数据清洗
前言 目前,掌握一定的Excel技能时,怎么通过自己的技能实现数据分析的操作,就需要进行具体项目的实战,本身数据分析这个行业是非常吃经验的,既然我们是小白入坑,就需要多做实战演练,才能够实际的…...
手机解压软件加密指南:让文件更安全
在数字化时代,文件加密对于保护个人隐私和敏感信息的重要性不言而喻。随着互联网的飞速发展,我们的生活和工作越来越依赖于数字设备和网络。 然而,这也带来了一系列的安全风险,如黑客攻击、数据泄露等。文件加密技术成为了保护我…...
python yield generator 详解
目录 generator基础 generator应用 generator基础应用 generator高级应用 注意事项: 正文 本文将由浅入深详细介绍yield以及generator,包括以下内容:什么generator,生成generator的方法,generator的特点&#…...
MATLAB矩阵下标引用
在MATLAB中,普通的二维数组元素的数字索引分为双下标索引和单下标索引。双下标索引是通过一个二元数组对来对应元素在矩阵中的行列位置,例如A(2,3)表示矩阵A中第2行第3列的元素。单下标索引的方式是采用列元素优先的原则,对m行n列的矩阵按列排…...
syn洪水攻击原理是什么
在网络世界中,正常的网络访问就像一场有序的对话。当我们访问网站时,客户端与服务器要进行 TCP 三次握手来建立连接。首先,客户端向服务器发送一个 SYN 包,请求建立连接,这就如同向服务器打招呼说“我想连接”…...
前缀和(4)_除自身以外数组的乘积
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 前缀和(4)_除自身以外数组的乘积 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论💌 目录…...
第二十一节:学习Redis缓存数据库的Hash操作(自学Spring boot 3.x的第五天)
这节记录下Redis的Hash操作。主要是opsForHash方式和boundHashOps方式。 boundHashOps和opsForHash都是Spring Data Redis中用于操作Redis哈希数据结构的方法,但它们在使用方式和场景上存在一些区别。 boundHashOps 使用方式: boundHashOps方法通过Redi…...
OpenCV视频I/O(1)视频采集类VideoCapture介绍
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 用于从视频文件、图像序列或摄像头捕获视频的类。 该类提供了用于从摄像头捕获视频或读取视频文件和图像序列的 C API。 以下是该类的使用方法&a…...
CVE-2024-46103
前言 CVE-2024-46103 SEMCMS的sql漏洞。 漏洞简介 SEMCMS v4.8中,SEMCMS_Images.php的search参数,以及SEMCMS_Products.php的search参数,存在sql注入漏洞。 (这个之前就有两个sql的cve,这次属于是捡漏了Ƕ…...
三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)
三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询…) 文章目录 三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)1. …...
Linux 冯诺依曼体系结构与操作系统概念
目录 0.前言 1. 冯诺依曼体系结构概述 1.1 输入单元 1.2 中央处理单元(CPU) 1.3 输出单元 2. 冯诺依曼体系结构的关键特性 2.1 所有数据流向内存 2.2 数据流动示例:QQ聊天过程 3. 操作系统 3.1 概念 3.2 设计操作系统的目的 3.3 操作系统的“…...
UE4中 -skipbuild -nocompile 有什么区别
在项目开发中,我看到了在调用 Engine\\Build\\BatchFiles\\RunUAT.bat 相关的命令行中,有 -skipbuild、 -nocompile 两个很像的参数,于是想探究一下它们的区别与含义。 -skipbuild 参数 到底有没有 -skipbuild 这个参数?根据 http…...
k8s篇之数据挂载类型及区别
一、K8S集群数据挂载类型及区别 在 Kubernetes 中,数据挂载类型主要有以下几种,每种类型适用于不同的场景。以下是主要的挂载类型及其应用场景的详细说明: 1. emptyDir 描述:emptyDir 是一个空目录,其生命周期与 Pod 相同。 它在 Pod 创建时被创建,并在 Pod 删除时被清…...
LiveQing视频点播流媒体RTMP推流服务功能-支持电子放大拉框放大直播视频拉框放大录像视频流拉框放大电子放大
LiveQing视频点播流媒体RTMP推流服务功能-支持电子放大拉框放大直播视频拉框放大录像视频流拉框放大电子放大 1、鉴权直播2、视频点播3、RTMP推流视频直播和点播流媒体服务 1、鉴权直播 鉴权直播-》播放 ,左键单击可以拉取矩形框,放大选中的范围&#x…...
fetch怎么使用
fetch 是一个现代、强大的、基于 Promise 的网络请求 API,用于在浏览器中发起网络请求(如异步获取资源)。它提供了一种更加简洁和灵活的方式来替代 XMLHttpRequest。下面是 fetch 的基本使用方法和一些示例。 基本语法 fetch(url, options)…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
