AUTOSAR ARXML - 参数的定义与配置

以下内容均为作者原创,如需转载请注明出处。


之前在做代码生成工具及配置工具时,一直在编辑及解析<ECUC-MODULE-DEF>……/<ECUC-MODULE-DEF>元素中的内容。最近发现这是错误的用法,AUTOSAR中标准的使用方法是

<ECUC-MODULE-DEF>

<!-- 该部分为模块参数的定义,该部分规范及限制了容器参数的使用方法,取值范围等,其功能等同于Specification中的“Configuration specification”章节-->

……

/<ECUC-MODULE-DEF>


<ECUC-MODULE-CONFIGURATION-VALUES>

<!-- 该部分元素所描述的内容才是用来存储模块配置参数数据的地方。-->

……

/<ECUC-MODULE-CONFIGURATION-VALUES>

让我们来看几个例子:

在例1中,我们定义了Com模块,该模块含有1个容器,该容器含有2个参数。

例1:

<ECUC-MODULE-DEF>
	<SHORT-NAME>Com</SHORT-NAME>
	<LOWER-MULTIPLICITY>0</LOWER-MULTIPLICITY>
	<UPPER-MULTIPLICITY>1</UPPER-MULTIPLICITY>
	<POST-BUILD-VARIANT-SUPPORT>true</POST-BUILD-VARIANT-SUPPORT>
	<SUPPORTED-CONFIG-VARIANTS>
		<SUPPORTED-CONFIG-VARIANT>VARIANT-POST-BUILD</SUPPORTED-CONFIG-VARIANT>
	</SUPPORTED-CONFIG-VARIANTS>
	<CONTAINERS>
		<ECUC-PARAM-CONF-CONTAINER-DEF>
			<SHORT-NAME>ComSignal</SHORT-NAME>
			<LOWER-MULTIPLICITY>0</LOWER-MULTIPLICITY>
			<UPPER-MULTIPLICITY>*</UPPER-MULTIPLICITY>
			<MULTIPLICITY-CONFIG-CLASSES>
				<ECUC-MULTIPLICITY-CONFIGURATION-CLASS>
					<CONFIG-CLASS>POST-BUILD</CONFIG-CLASS>
					<CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT>
				</ECUC-MULTIPLICITY-CONFIGURATION-CLASS>
			</MULTIPLICITY-CONFIG-CLASSES>
			<POST-BUILD-VARIANT-MULTIPLICITY>true</POST-BUILD-VARIANTMULTIPLICITY>
			<PARAMETERS>
				<ECUC-INTEGER-PARAM-DEF>
					<SHORT-NAME>ComSignalLength</SHORT-NAME>
					<MULTIPLICITY-CONFIG-CLASSES>
						<ECUC-MULTIPLICITY-CONFIGURATION-CLASS>
							<CONFIG-CLASS>PRE-COMPILE</CONFIG-CLASS>
							<CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT>
						</ECUC-MULTIPLICITY-CONFIGURATION-CLASS>
					</MULTIPLICITY-CONFIG-CLASSES>
					<ORIGIN>AUTOSAR_ECUC</ORIGIN>
					<VALUE-CONFIG-CLASSES>
						<ECUC-VALUE-CONFIGURATION-CLASS>
							<CONFIG-CLASS>PRE-COMPILE</CONFIG-CLASS>
							<CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT>
						</ECUC-VALUE-CONFIGURATION-CLASS>
					</VALUE-CONFIG-CLASSES>
				</ECUC-INTEGER-PARAM-DEF>
					<ECUC-INTEGER-PARAM-DEF>
					<SHORT-NAME>ComSignalInitValue</SHORT-NAME>
					<MULTIPLICITY-CONFIG-CLASSES>
						<ECUC-MULTIPLICITY-CONFIGURATION-CLASS>
							<CONFIG-CLASS>POST-BUILD</CONFIG-CLASS>
							<CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT>
						</ECUC-MULTIPLICITY-CONFIGURATION-CLASS>
					</MULTIPLICITY-CONFIG-CLASSES>
					<ORIGIN>AUTOSAR_ECUC</ORIGIN>
					<VALUE-CONFIG-CLASSES>
						<ECUC-VALUE-CONFIGURATION-CLASS>
							<CONFIG-CLASS>POST-BUILD</CONFIG-CLASS>
							<CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT>
						</ECUC-VALUE-CONFIGURATION-CLASS>
					</VALUE-CONFIG-CLASSES>
				</ECUC-INTEGER-PARAM-DEF>
			</PARAMETERS>
		</ECUC-PARAM-CONF-CONTAINER-DEF>
	</CONTAINERS>
</ECUC-MODULE-DEF>

在例2中,定义了‘例1’中2个参数的数值。

例2:

<ECUC-MODULE-CONFIGURATION-VALUES>
	<SHORT-NAME>theComConfig</SHORT-NAME>
	<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Com</DEFINITIONREF>
	<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-POST-BUILD</IMPLEMENTATION-CONFIGVARIANT>
	<MODULE-DESCRIPTION-REF DEST="BSW-IMPLEMENTATION">/some_package/theUsed_Com_BSWModuleImplementation</MODULE-DESCRIPTION-REF>
	<CONTAINERS>
		<ECUC-CONTAINER-VALUE>
			<SHORT-NAME>theSignal</SHORT-NAME>
			<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Com/ComSignal</DEFINITION-REF>
			<PARAMETER-VALUES>
				<ECUC-NUMERICAL-PARAM-VALUE>
					<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalLength</DEFINITION-REF>
					<VALUE>2</VALUE>
				</ECUC-NUMERICAL-PARAM-VALUE>
				<ECUC-NUMERICAL-PARAM-VALUE>
					<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalInitValue</DEFINITION-REF>
					<VALUE>0</VALUE>
				</ECUC-NUMERICAL-PARAM-VALUE>
			</PARAMETER-VALUES>
		</ECUC-CONTAINER-VALUE>
	</CONTAINERS>
</ECUC-MODULE-CONFIGURATION-VALUES>

由于AUTOSAR中规定,带有stereotype《atpSplitable》构造型标签的元素可以被拆分到几个不同的XML文件中,而<CONTAINERS>元素就含有这种标签,所以‘例2’又可以拆分成下方‘例3’及‘例4’的形式。

例3:

<ECUC-MODULE-CONFIGURATION-VALUES>
	<SHORT-NAME>theComConfig</SHORT-NAME>
	<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Com</DEFINITIONREF>
	<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-POST-BUILD</IMPLEMENTATION-CONFIGVARIANT>
	<MODULE-DESCRIPTION-REF DEST="BSW-IMPLEMENTATION">/some_package/theUsed_Com_BSWModuleImplementation</MODULE-DESCRIPTION-REF>
	<CONTAINERS>
		<ECUC-CONTAINER-VALUE>
			<SHORT-NAME>theSignal</SHORT-NAME>
			<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Com/ComSignal</DEFINITION-REF>
			<PARAMETER-VALUES>
				<ECUC-NUMERICAL-PARAM-VALUE>
					<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalLength</DEFINITION-REF>
					<VALUE>2</VALUE>
				</ECUC-NUMERICAL-PARAM-VALUE>
			</PARAMETER-VALUES>
		</ECUC-CONTAINER-VALUE>
	</CONTAINERS>
</ECUC-MODULE-CONFIGURATION-VALUES>

例4:

<ECUC-MODULE-CONFIGURATION-VALUES>
	<SHORT-NAME>theComConfig</SHORT-NAME>
	<DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Com</DEFINITIONREF>
	<IMPLEMENTATION-CONFIG-VARIANT>VARIANT-POST-BUILD</IMPLEMENTATION-CONFIGVARIANT>
	<MODULE-DESCRIPTION-REF DEST="BSW-IMPLEMENTATION">/some_package/theUsed_Com_BSWModuleImplementation</MODULE-DESCRIPTION-REF>
	<CONTAINERS>
		<ECUC-CONTAINER-VALUE>
			<SHORT-NAME>theSignal</SHORT-NAME>
			<DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Com/ComSignal</DEFINITION-REF>
			<PARAMETER-VALUES>
				<ECUC-NUMERICAL-PARAM-VALUE>
					<DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalInitValue</DEFINITION-REF>
					<VALUE>0</VALUE>
				</ECUC-NUMERICAL-PARAM-VALUE>
			</PARAMETER-VALUES>
		</ECUC-CONTAINER-VALUE>
	</CONTAINERS>
</ECUC-MODULE-CONFIGURATION-VALUES>

例3、例4两个xml文档会在后面的配置工具中被合并。需要注意的是,<PARAMETER-VALUES>……/<PARAMETER-VALUES>元素以外的元素应当保持一致。




  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Autosar ARXML文件是汽车软件架构标准(AUTOSAR)的一种文件格式,用于描述汽车上使用的电子控制单元(ECU)之间的通信和数据交换。该文件包含了ECU的描述、软件组件、接口、通信矩阵以及应用软件的参数Autosar ARXML文件是一种XML(可扩展标记语言)格式的文件,通过使用结构化的标签和属性,可以轻松地进行信息交换和解析。这种文件格式是AUTOSAR标准中定义的,因此具有广泛的兼容性和标准化特性。 在Autosar ARXML文件中,可以找到各个ECU的描述,包括硬件、软件和功能方面的信息。每个ECU都可以被定义为一个节点,其中包含了ECU的唯一标识符、厂商信息、硬件插槽、操作系统属性以及支持的软件组件等。 此外,Autosar ARXML文件还定义了不同ECU之间的接口和通信矩阵。通过定义这些接口,不同的ECU可以交互并共享数据。通信矩阵定义了不同ECU之间的通信连接,包括信号名称、数据类型、发送方和接收方等。 最后,Autosar ARXML文件还包含了应用软件的参数。这些参数描述了ECU上运行的各个软件组件的属性和配置信息。例如,可以定义软件组件的版本、启动顺序、优先级、内存分配等。 总而言之,Autosar ARXML文件是一种用于描述汽车ECU之间通信和数据交换的文件格式。通过使用这种标准化的文件格式,可以提高不同ECU之间的兼容性和可靠性,促进汽车软件的开发和集成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值