Autosar知识:方法论-EUC软件的集成(下)

2023-10-14 13:20

本文主要是介绍Autosar知识:方法论-EUC软件的集成(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章描述了AUTOSAR ECU的集成。在AUTOSAR意义上,ECU是指微控制器加上外围设备和相应的软件/配置。因此,每个微控制器需要自己的ECU配置。

 

Autosar官方文档版权说明

 

 

 

 

本章共8个部分:

1、 概述

2、 准备ECU配置

3、 配置BSW和RTE

 

4、 更新ECU配置

5、 ECU时序建模

6、 生成BSW和RTE

7、 建立可执行文件

8、 配置类 

 

 

 

 

本节内容比较多,但属于编译器基本知识,开发者如掌握编译器原理直接了解工作流程即可。

 

8、配置类

BSW模块的开发包括以下几个开发周期:

编译、链接和下载可执行文件到ECU内存。参数的配置可以在以下任何一个过程步骤中完成:预编译时间、链接时间甚至构建后时间。

根据配置参数的流程步骤,将配置类分类如下

•预编译

•链接

•post-build构建后

不同流程步骤中的配置对ECU配置参数的处理有一定的影响。如果将配置参数定义为预编译时,则在编译后不能再更改此配置参数。

或者,如果在构建后定义了配置参数,则配置参数必须存储在已知的内存位置。此外,交付BSW模块的格式决定了参数可以通过什么方式更改。BSW模块的源代码交付或目标代码交付在配置方面有不同的自由度。

参数的配置类取决于它所属的BSW模块的实现变体。但是,一旦实现了模块,每个参数的配置类都是固定的。为模块选择正确的实现变体取决于应用程序的类型和模块实现者所做的设计决策。

可以在一个模块中组合不同的配置类。例如,对于构建后可配置的BSW实现,只有一个参数子集可能是构建后可配置的。有些参数可以配置为预编译或链接。

用于描述配置类的文件格式:

•.arxml(由AUTOSAR标准化的xml文件)

•.exe(可下载到ECU的可执行文件)

•.hex(一个二进制文件,可以下载到ECU中,但不能自己执行)。

•.c(包含源代码或配置数据的C-source文件)

•.h(用于源代码或配置数据的头文件)。

.obj(用于源代码或配置数据的目标文件)

在BSW模块的实际实现中,允许混合使用BSW模块中不同配置类的参数,所有配置参数很可能不在同一个配置类中。

换句话说,它将是一个BSW模块中一个混合的参数与不同的配置类。

 

配置类:预编译:

这种类型的配置是在编译源代码之前完成的独立配置。这意味着这些可配置元素的参数值是在编译前选择的,并且在编译后有效。可配置参数的值是在软件开发过程的早期阶段确定的,参数值的任何更改都需要重新编译。预编译时参数的内容不能在后续的开发步骤(如链接时间或构建后时间)中更改。

工作分解结构有两种方法:

⭐只生成头文件:

第一种方法是生成一个BSW模块配置头文件,然后使用这个头文件编译模块核心代码。在这种情况下,BSW配置生成器不会触及模块核心代码。

⭐生成头文件和源文件:

另一种方法,其中BSW配置生成器生成完整的、特定于配置的BSW模块配置头文件,加上完全生成源代码的BSW模块。在这种情况下,不存在核心代码。

这两种方法都同样有效。

 

当必须在选择其他可靠的参数之前做出参数值的决定时,预编译时配置是正确的选择。例如,CRC初始校验和参数的算法选择是基于CRC类型(CRC16或CRC32)的选择。当选择CRC16时,处理时间会增加,但内存使用量会减少。而当选择CRC32时,处理时间会减少,但内存使用量会增加。在编译源代码之前,实现者应该根据需求和资源的可用性做出正确的选择。

可采用预编译时配置的例子有:

• 配置NVRAM管理器的内存表数量和块描述符表。

• 为软件模块的开发错误跟踪启用宏。

 

工作流程:

预编译时配置

 

 

预编译配置活动

 

 

 

 

配置类:链接

这种类型的配置是在链接期间为BSW模块完成的。这意味着BSW模块的对象代码从另一个对象代码文件接收其配置的一部分,或者它是由链接器选项定义的。链接时间参数通常在向积分器交付目标代码时使用。

这个配置类提供了配置过程的模块化方法。一个单独的模块将处理配置细节,这些参数值将在链接过程中提供给其他模块。

BSW配置代码的生成与编译:

第一步是生成BSW配置代码,生成BSW模块配置数据源代码和BSW模块配置头文件。这些与基本的软件模块核心头一起编译成BSW模块配置数据对象代码。

配置数据定义:

配置参数数据定义在通用头文件基本软件模块核心头文件中,包含在基本软件模块核心源代码和BSW模块配置数据源中。模块源文件需要这个头文件来解析引用,模块配置源文件需要它来根据定义交叉检查数据类型的声明。

模块源文件和配置文件单独编译:

分别编译模块源文件和模块配置源文件,分别生成基本的软件模块目标代码和BSW模块配置数据目标代码。

连接过程:

在链接过程中,通过解析外部引用,将配置数据提供给基本的软件模块目标代码。

配置值发生变化时的重新生成:

当配置参数的值发生变化时,需要重新生成基本的软件模块目标代码。

可采用链接过程配置的例子有:

• 信号的初始值和无效值

• 为网络管理的各个实例配置的唯一通道标识符。

• CAN网络逻辑句柄。

• 硬件接收手柄和硬件传输的标识符和类型

• CAN接口句柄。

• ComFilterAlgorithm的定义。

• COM回调函数,用于指示接收无效信号的RTE。

 

工作流程:

链接配置细节

 

 

链接配置活动

 

 

 

配置类:构建后

在构建BSW模块或描述之后,可以进行这种类型的配置

生成BSW后期生成配置代码:

为了使构建后重新配置成为可能,可重新配置的参数应该存储在ECU内存的已知内存位置。在这种方法中,基本软件模块核心源代码的编译和链接独立于其配置数据。BSW配置生成器将配置数据生成为BSW模块配置数据源,该数据源独立于核心源代码进行编译和链接。

生成构建后配置是一个可以多次执行的过程。第一次是在创建初始ECU配置期间完成的,初始ECU配置包括生成可加载到ECU内存二进制文件的ECU可执行文件和BSW模块配置数据。此方法如图2.55所示。之后,根据图2.56所示的过程,可以根据需要多次将构建后配置(更新通常来自ECU提取)与ECU可执行文件分开。

可以采用构建后配置的例子有:

• CAN帧的标识符

• CAN波特率和传播延迟

• COM传输模式,传输模式时间偏移和时间段

• 启用/禁用信号传输

• 框架包装

• 信号网关

• Lin/ FlexRay时间表

 

工作流程:

初始构建后配置

 

 

 

更新构建后配置

 

 

 

工作流程:构建后

 

 

在配置类中处理不同的构建后变体

生成多个构建后配置变量:

在这个用例中,BSW配置生成器在BSW模块配置头文件和BSW模块配置数据源中生成两个或多个配置参数变体。配置数据被编译并与基本软件模块核心源代码链接在一起。得到的ECU可执行文件包括所有配置变量以及BSW模块的源代码。也就是说,如果不重新构建整个可执行文件,就不可能交换配置数据。

包括不同的后期版本:

不同的构建后变体包含在配置中,通过指定不同的变体点,这些变体点应该在构建后绑定。这可以在不考虑配置类的情况下完成。

 

 

 

 

 

 

这篇关于Autosar知识:方法论-EUC软件的集成(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/210781

相关文章

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事