AUTOSAR面试题集锦(1)基础知识

目录

最基础概念

什么是AUTOSAR?AUTOSAR到底做了什么?

AUTOSAR的结构是什么样的?分为哪几层?

MCAL开发

什么是MCAL?

使用过EB吗?怎样使用EB配置MCAL工程?

autosar4.3.1和4.4.0有什么区别?

什么是复杂驱动?

为什么使用多核?AUTOSAR提供了几种多核方案?具体是什么?


最基础概念

什么是AUTOSAR?AUTOSAR到底做了什么?

        AUTOSAR,即汽车开放系统架构,是一套专门用于汽车的开放性的框架和行业标准,旨在标准化汽车开发的流程。

AUTOSAR 通过标准化软件接口、交换格式和方法论等内容,主要实现以下几个目标:

1.  使软件和硬件彼此独立,让应用层开发人员不需要过多的关注硬件;

2.  制定软件接口规范,使得软件不会高度依赖硬件平台,提高代码的复用性;

3.  通过标准化的开发流程和方法,降低汽车软件开发的重复性工作,提高工作效率和软件质量。

通过上述几个目标,AUTOSAR 可以实现大幅缩短开发时间和成本。

AUTOSAR的结构是什么样的?分为哪几层?

        AUTOSAR 架构可以先被抽象成三个层次:应用层 ,RTE层 和 BSW层 ,这三层组成软件,架在微控制器上。

应用层:包含所有汽车电子系统的应用软件,封装了相关的控制算法,并由RTE事件触发。

RTE层:作为应用层与基础软件层交互的桥梁,封装了基础软件层的通信和服务,为应用层软件提供了标准化的基础软件和通信接口,实现了软硬件的分离。

BSW层:通过软件实现对硬件的控制,并提供一系列接口供商城调用。

        其中BSW层可以再被细分为 服务层 、ECU抽象层 、微控制器抽象层(MCAL) 和 复杂驱动(CDD)。

服务层:提供汽车嵌入式系统软件常用的一些服务,包括网络通信管理、存储管理、ECU模式管理和操作系统等服务。

ECU抽象层:将ECU结构进行抽象,ECU提供外围设备驱的程序

微控制器抽象层:与硬件相连接,映射出硬件的功能和接口,避免上层软件直接对微控制器的寄存器进行操作。

复杂驱动:有些比较复杂或对实时性要求比较高的设备或外设,AUTOSAR 并没有做出规范,这部分内容就是复杂驱动。

MCAL开发

什么是MCAL?

MCAL将底层硬件驱动抽象出来,对外设模块进行规范,基于Autosar规范进行驱动配置,提高了系统的可移植性、模块化和可重用性。
硬件抽象:
MCAL通过为硬件提供一个抽象层,使得上层的应用程序和操作系统无需直接与硬件交互,使得应用软件可以在不同的硬件平台之间更容易地迁移,无需对应用层进行大量修改。
硬件接口模块:
MCAL提供了一系列的驱动程序和服务模块,这些模块负责直接控制微控制器硬件,如GPIO(通用输入输出)、ADC(模数转换器)、PWM(脉冲宽度调制)、通信接口(如CAN、SPI、I2C)等。它通过标准化的接口使上层软件模块可以通过统一的API访问硬件资源。
硬件独立性:
通过MCAL,AUTOSAR系统能够提供硬件独立性,即上层应用程序和操作系统可以不依赖具体的硬件平台。这使得系统能够在不同的硬件平台上运行,降低了对特定硬件的依赖,提高了系统的可移植性。
驱动程序的实现:
MCAL包含了针对具体硬件的驱动程序,这些驱动程序负责与底层硬件进行交互,如配置硬件寄存器、处理中断、管理外设等。它们封装了硬件细节,提供了统一的接口供上层软件调用。

使用过EB吗?怎样使用EB配置MCAL工程?

1. 首先进入EB安装目录:EB\tresos\autosar下,根据使用的autosar规范的版本进入对应的文件夹下,将里面的arxml文件拆分,生成xdm文件。

2. 在EB安装目录下新建links文件夹,在里面添加 .link文件,内容为plugin路径,并将xdm文件放到该路径的config目录下。

3. 在EB配置完成后,选择生成,则会通过plugin找到对应模块的代码生成器,以代码生成器和配置为基础生成代码。

autosar4.3.1和4.4.0有什么区别?

主要区别在于4.4.0增加了对多核的规范内容。

什么是复杂驱动?

对于autosar没有做出规范的外设比如usart,芯片想要支持这个功能除了芯片有这个资源,就需要自行配置,这些需要自行配置的驱动模块叫做CDD,即复杂驱动。
所有autosar没有做具体配置的驱动全部都归类在这个模块下。
CDD模块基于需要基于autosar的共通部分规范(比如接口规范)来封装,可以调用mcal接口来实现其他的驱动功能,或者是单独的外设模块。
复杂驱动的代码只需要考虑autosar的标准规范(包含编码规范和基本要求),比如不能用标准库函数,根据autosar规范来定义宏来声明定义函数。
此外,对外暴露的接口要做参数检查。

为什么使用多核?AUTOSAR提供了几种多核方案?具体是什么?

有时候单核不能满足需求,所以会采用多核,不同的核实现不同的功能。具体怎么实现会通过软件来决定。如果不做约束,那么出现问题的时候就无法排查。此外,当大量资源都部署在一个核上,等待这一个核的资源,会导致效率低。
AUTOSAR 4.4 新增了对多核做了限制和需求。
AUTOSAR 对多核提供了四种方案:
Type 1
将一个外设的所有物理资源全部分配到一个核上。
Type 2
将不同的物理资源分配给不同的核。
比如eth有两路,分别分配给两个核,每个核只能访问自己的物理资源,不能访问另一路的。
核在调用外部接口时,会通过map表来检查该核控制的物理资源,与其做匹配。如果匹配,就能正常调用;不匹配则返回 error 。
Type 3
在 Type 2 的基础上,实现跨核调用。
需要解耦,比如两个核同时访问一个资源,以及两个核同时出发同一个资源相关的中断。
如果要实现就需要采用软件锁或硬件锁。硬件锁更高效,但会占用硬件资源。如果采用硬件锁,单mcal就会耗费大量硬件资源,但mcal正常在项目里占用资源是最少的,所以没有可实施性。
Type 4
所有资源都部署到一个核上,其他核只能间接访问。其他核想访问资源需要部署核提供核间通信机制,比如共享内存和向量。
共享内存,就是部署核提供的可供其他核调用的接口,其他核通过这个接口来间接控制该模块。
该方案需要MCAL层实现完整的核间通信机制,但一般这种机制都在rte层实现,而且 AUTOSAR 也没有对该方案的使用建议。
 

当准备 Autosar 面试时,以下是一些重要的主题和问题,你可以参考它们来进行准备: 1. Autosar 概述和架构 - Autosar 是什么?它的目标是什么? - Autosar 架构的核心组件有哪些? - 请解释 Autosar 的分层架构。 2. Autosar 基础知识 - 什么是 ECU? - 什么是 RTE? - 什么是 PDU? - 什么是 BSW? - 什么是 COM? 3. Autosar 模块 - 请介绍 COM 模块的功能和作用。 - 请解释 RTE 模块的作用和重要性。 - 请介绍 Diagnostics 模块的功能和作用。 - 请解释 Network Management 模块的作用和重要性。 4. Autosar 中的通信协议 - Autosar 支持哪些通信协议?请解释其中的一些协议。 - 什么是 CAN 总线?它在 Autosar 中的作用是什么? - LIN 总线在 Autosar 中的作用是什么? 5. Autosar 接口描述语言 (IDL) - 请解释 IDL 的作用和重要性。 - 请介绍一些常用的 IDL 工具和框架。 6. Autosar 开发流程 - Autosar 开发过程中的不同阶段是什么? - 请解释 Autosar 中的软件构建流程。 - Autosar 模型和代码生成的工具有哪些? 7. Autosar 标准化 - 什么是 Autosar 标准化?为什么它很重要? - 如何参与 Autosar 标准化活动? 8. Autosar 开发中的挑战和解决方案 - 在 Autosar 开发中,你遇到过哪些挑战?你是如何解决它们的? - 如何处理 Autosar 模块的版本兼容性问题? 这些问题将涵盖 Autosar 开发的基本概念和知识。当然,具体的面试问题还会因公司不同而有所变化,所以最好在面试前熟悉一下目标公司的技术需求和项目背景。祝你面试顺利!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pQAQqa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值