图解AUTOSAR(三)——方法论_肥嘟嘟的左卫门的博客-程序员资料

技术标签: AUTOSAR  方法论  开发流程  

AUTOSAR为汽车电子软件系统开发过程定义了一套通用的技术方法,即AUTOSAR方法论。该方法描述了从系统底层配置到ECU可执行代码产生过程的设计步骤,如下图所示。

AUTOSAR设计和开发流程分为三个阶段:系统配置、ECU设计与配置阶段、代码生成阶段。

第一阶段:定义系统配置文件,这是系统设计者或架构师的任务。包括选择硬件和软件组件,定义整个系统的约束条件。AUTOSAR通过使用信息交换格式和模板描述文件来减少初始系统设计时的工作量。系统配置的输入是XML类型的文件,输出是系统配置描述文件,系统配置的主要作用是把软件组件的需求映射到ECU上。

第二阶段:根据系统配置描述文件提取单个ECU资源相关的信息,提取出来的信息生成ECU提取文件。根据这个提取文件对ECU进行配置,例如操作系统任务调度,必要的BSW模块及其配置,运行实体到任务的分配等,从而生成ECU配置描述文件。该描述文件包含了特定ECU的所有信息。

第三阶段:生成代码,是基于ECU配置描述文件指定的配置来产生代码、编译代码,并把相关代码链接起来形成可执行文件。

具体的开发流程如下:

1、编写系统配置输入描述文件

在AUTOSAR中,所有的描述文件都是XML类型的文件。系统配置输入文件包含三部分内容:

(1)软件组件描述,定义了每个涉及的软件组件的接口内容,如数据类型,端口,接口等。

(2)ECU资源描述,定义了每个ECU的资源需求,如处理器、存储器、外围设备、传感器和执行器等。

(3)系统约束描述,定义了总线信号,软件组件间的拓扑结构和映射关系。

2、系统配置

系统配置的功能主要是在资源和时序关系的前提下,把软件组件映射到各个ECU上,然后借助系统配置生成器生成系统配置描述文件。这个描述文件包括总线映射之类的所有系统信息以及软件组件与某个ECU的映射关系。

3、提取特定ECU的描述

从系统配置描述文件中提取出与各个ECU相关的系统配置描述信息,提取的信息包括ECU通信矩阵、拓扑结构、映射到该ECU上的所有软件组件,并将这些信息放在各个ECU的提取文件中。

4、ECU配置

ECU配置主要是为该ECU添加必要的信息和数据,如任务调度、必要的基础软件模块及其配置、运行实体及任务分配等,并将结果保存在ECU配置描述文件中,该文件包含了属于特定ECU的所有信息,换言之,ECU上运行的软件可根据这些信息构造出来。

5、生成可执行文件

根据ECU配置描述文件中的配置信息,生成RTE和基础软件配置代码,完成基础软件和软件组件的集成,最终生成ECU的可执行代码。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ChenGuiGan/article/details/80302651

智能推荐

SNMP 添加MIB 节点 (十三) --- snmpd.conf包含其他配置文件_逆商的博客-程序员资料

/usr/local/net-snmp/share/snmp/snmpd.conf: line 1: Warning: Ambiguous token 'include' - use 'includeSearch' (or 'includeFile') instead.Turning on AgentX master support.snmpd.conf 包含其他confincludeFile snmpda.confsnmpda.confproxy -v2c -c pu...

SecureCRT连接虚拟机中的Linux系统(Ubuntu)_hypmxy的博客-程序员资料_securecrt连接linux虚拟机

最近在学习Linux,看了网上很多SecureCRT连接本地虚拟机当中的Linux系统,很多都是需要设置Linux的配置文件,有点繁琐,所以自己就摸索了一下,把相关操作贴出来分享一下。  SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。这样操作的时候不必进入到linux桌面,可以更方便的在命令行下进

FreeRTOS——临界段保护_Eleven-boy的博客-程序员资料_vportraisebasepri出不来

一、什么是临界段临界段就是一段在执行的时候不能被打断的代码。在FreeRTOS中,临界段最常出现的就是对全局变量的操作。那么在什么情况下临界段可以被打断?一个是系统调度,另一个是外部中断。但是在FreeRTOS中,系统调度最终也是产生PendSV中断,在PendSV Handler里面实现任务的切换,所以还是归结为中断。因此,FreeRTOS对临界段的保护最终还是回到了对中断开、关的控制。二...

android:ellipsize_iteye_14832的博客-程序员资料

android中的ellipsizetextview中内容过长的话自动换行,但是调用measureText函数时发现返回值很不准确,单位也不确定,是pixel还是dip,都不准。后来想起textview中有个内容过长加省略号的属性,即ellipsize,用法如下:在xml中android:ellipsize = "end"   省略号在结尾android:ellipsize =...

随便推点

linux date -d 天,Linux date 显示设置时间命令学习_请你吃草莓蛋挞的博客-程序员资料

概要:date命令的功能是显示和设置系统日期和时间命令格式:date [OPTION]... [+FORMAT]date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]参数:-d STRING:显示由 STRING 描述的日期-s STRING: 设置由 STRING 描述的日期%Y 年(例如:1970,2009等)%y 年的最后两个数字(1988则是...

SQLMap用户手册二_weixin_34417183的博客-程序员资料

  http://192.168.136.131/sqlmap/mysql/get_int.php?id=1当给sqlmap这么一个url的时候,它会:1、判断可注入的参数2、判断可以用那种SQL注入技术来注入3、识别出哪种数据库4、根据用户选择,读取哪些数据sqlmap支持五种不同的注入模式:1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。2、基于时间的盲注,即不能根据...

Linux 中安装 pdo_mysql 扩展_lamp_yang_3533的博客-程序员资料

在Linux中,通过源码包方式编译安装PHP后,默认是没有安装pdo_mysql扩展的。但是,该扩展的安装包是已经存在于PHP的源码安装包中的,故无需重新下载pdo_mysql扩展。这里,我们直接切换到PHP的源码包目录,找到pdo_mysql扩展的安装包,直接安装即可。说明:我的Linux系统为CentOS7,PHP版本为5.6.27(FastCGI模式的)。方法如下:cd /my_packag...

Qt5中QPrinter类和QPinterDialog类_会飞的cc猫的博客-程序员资料_qprinter类在哪个模块

QPrinter:no such file or directory 的错误Qt5中将QPrinter、QPrintDialog等类归到了printsupport模块中。如果项目中需要这2个头文件则需要在工程文件.pro中加入 QT+=printsupprot 。否则会出错修改完要先qmake一下在运行,不然修改无效

Rust学习—解决crates.io 仓库代码下载慢的问题_LiraWang的博客-程序员资料_crates.io

今天是学习Rust的第二天,在尝试调用依赖(dependencies)的时候发现非!常!慢!需要采用一些方法来解决。Rust学习—解决crates.io 仓库代码下载慢的问题今天在下载randrandrand依赖的时候,显示update crates.io index然后就华丽的卡住了。查了一下,这是网络的问题,先尝试了借助proxychains工具来使用国外代理的办法,但是没有成功,...

vscode写vue代码时常用格式化设置,解决格式化函数名后空格消失问题等..._清风0122的博客-程序员资料_vscode格式化后函数名后的空格

首先安装插件"Prettier - Code formatter"、“vetur”、"ESLint"// 让函数(名)和后面的括号之间加个空格"[javascript]": { "editor.defaultFormatter": "vscode.typescript-language-features" }, "javascript.format.insertSpaceBeforeFunctionParenthesis": true, "tslint.autoFixOnSave":

推荐文章

热门文章

相关标签