Autosar 手写界面
Posted
技术标签:
【中文标题】Autosar 手写界面【英文标题】:Autosar interface for handwritten 【发布时间】:2021-01-31 21:40:50 【问题描述】:我是 Autosar 的新手。
我被要求为手写代码实现 Autosar 接口,创建 RTE 和 ARXML 文件,并将 Arxml 文件发送给其他组。
我的代码中有两个可运行文件。 假设例如接口变量(输入)X和Y,我们的输出为Z: 这是我的代码:
global X;
global Y;
global Z;
Runnable_Step()
Z = X + Y;
Runnable_Init()
X =0 ;
Y =0;
Z =0;
我想,我的问题是从哪里开始以及如何开始? 我们有 Autosar DaVinci Developer 和 Autosar DaVinci 配置器。
【问题讨论】:
【参考方案1】:您的问题本质上很笼统,无法用几行来回答。但是,我尝试给出一个一般性的答案,这可能有助于其他人在使用 Vector DaVinci 进行 AUTOSAR 开发中定位自己。
在达芬奇中,您通常在工具之间进行以下工作划分:
-
DaVinci Developer 用于对应用程序组件、接口、数据类型等进行建模。您还可以运行 RTE 生成器来生成“合同阶段”工件。
DaVinci Configurator 用于集成/配置 ECU(电子控制单元)。在应用程序开发人员的场景中,它通常用于生成实际构建到最终映像中的 RTE。
实际上,这两种工具之间的转换通常是流畅的:您在配置器中输入一些信息(例如 CAN 堆栈中的信号),然后切换到 Developer 以将信号映射到组件实例的端口,然后切换回来到 Configurator 以配置和生成生产 RTE。
您应该首先考虑您的任务的 AUTOSAR 模型的外观。这包括以下几个方面:
将使用哪些数据类型? 将使用哪些接口(SenderReceiverInterface、ClientServerInterface) 您需要哪些软件组件?使用您在上一步中定义的端口接口添加所需的端口原型 您的软件组件需要 RTE 提供哪些资源?您将这些添加到组件的“内部行为”中。特别是,这些是可运行实体,但也需要考虑对端口的读/写依赖项。 将您的新软件组件集成到***组合中。这些元素的创建/编辑在 Developer 中完成。根据目前所做的工作,您应该能够生成“合同阶段”RTE 头文件和 C 语言实现存根。然后,您可以通过向提供的存根添加代码来继续实现您的可运行实体。
接下来,您可能需要切换到 Configurator 来配置您的应用程序应该在其中运行的 ECU。如果您的工作基于现有的 ECU,您只需添加到现有模型中即可。如果您还没有 ECU 项目,您需要创建一个并通常使用模型的通信方面来填充它。这可以通过导入通信提取或 CANdb 文件(Vector 的专有 CAN 配置格式)来完成。
切换回 Developer,您可以将软件组件部署到 ECU 上,并将其端口映射到 ECU 已知的信号。
最后,返回配置器,可选择配置基本软件并生成 RTE。为了通过 RTE 生成器的验证过程,正确获取所有 BSW 模块和参数可能是一个漫长的过程。
一旦您成功生成了 RTE,您就可以开始构建过程,然后就可以开始了!
请务必参阅https://www.autosar.org/ 的 AUTOSAR 文档
【讨论】:
嗯,谢谢 Markus Brenner,这很有帮助。我的意思是让我的问题笼统地知道从哪里开始。这里有更多细节:我的函数大约有 20,000 行,由不同组创建的另一个函数调用。我的代码是另一个组的黑匣子,我通常发送带有在头文件中定义的接口的 obj 文件,他们编译他们的代码并与我的 obj 链接。这里是一个例子: my_func () read_interface_from_othergroup;我的代码.. write_interface_to_othergroup; othergroup_func() 调用 func1(); ... 调用 my_func (); .. 调用 funcX(); 在这种情况下,其他组必须处理ECU接口,对吗?我想在我的函数上使用 Autosar 接口,用接口(名称、数据类型、比例、软件组件)创建 RTE 和 ARxml 文件,然后发送到其他组 OBJ 文件 + ARxml 文件。在他们这边,他们将使用我的 ARxml 文件来创建 RTE 文件。然后双方都包含这个 RTE 文件以连接所有接口变量。 我已经在其他项目中完成了这项工作,但我使用的是 Matlab Simulink 模型,使用 Simulink 很容易更改为 Autosar 界面,它为我创建了包含所有接收器端口和发送器端口的 RTE 文件和 Arxml 文件,并将 obj 文件和 ARxml 文件发送到其他组。它工作正常,我想做同样的事情,但手写代码。 如果我错了,请纠正我,在我的情况下,我只需要使用 DaVinci Developer,对吗?在开发者中,需要添加数据类型的SenderReceiverInterface端口并定义SWC,(不使用ClientServerInterface)。我只使用一个SWC。基于此,Developer 将构建建模应用程序组件。然后,生成“合约阶段”RTE头文件,并将我的代码添加到这个模型中。以上是关于Autosar 手写界面的主要内容,如果未能解决你的问题,请参考以下文章