赞
踩
本篇文章首先对ARXML这种文件格式做了一个概述,叙述了这种标签语言的基本语法(如果您用HTML做过网页,那么这种格式您一定不会陌生),然后对ARXML文件都会包含的一些基本信息做了详细的解读,最后基于使用ISOLAR-AB从A到B的开发过程,将涉及到的ARXML文件进行了详细的解析。
文中对ARXML实例的解析希望能帮助读者更直观的了解ARXML文件(ARXML文件的内容构成和文件内属性相互引用的关系本身就是对AUTOSAR标准的实现),从而更好的理解AUTOSAR标准。
目录
ARXML文件实质是一个XML(Extensible Markup Language)文件,通过AUTOSAR标准的XSD(XML Schema Definition)文件进行约束,XML文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
所有的元素都可以有子元素。下面是一个XML的树形结构和对应的文档示例(例子来自菜鸟教程)。
- <bookstore>
- <book category="COOKING">
- <title lang="en">Everyday Italian</title>
- <author>Giada De Laurentiis</author>
- <year>2005</year>
- <price>30.00</price>
- </book>
- <book category="CHILDREN">
- <title lang="en">Harry Potter</title>
- <author>J K. Rowling</author>
- <year>2005</year>
- <price>29.99</price>
- </book>
- <book category="WEB">
- <title lang="en">Learning XML</title>
- <author>Erik T. Ray</author>
- <year>2003</year>
- <price>39.95</price>
- </book>
- </bookstore>
针对ARXML文件,虽然ISOLAR-AB工具不仅提供了可视化的界面用于配置与生成,并且提供了AUTOSAR Explorer用于查看和编辑具体的ARXML文件,但是作为我们经常打交道的文件,照葫芦画瓢难免落得一个一知半解的结果,下面我们基于规范《AUTOSAR_TPS_GenericStructureTemplate.pdf》来理解一下ARXML文件的内容。
内容第一行是文档的声明,包含文档版本和文档字符编码。
<?xml version="1.0" encoding="UTF-8"?>
文件第一级元素是根元素,每个文档有且只有一个根元素,元素由开始标签、元素内容、结束标签组成。
- <AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-2-2.xsd">
- ...元素内容...
- </AUTOSAR>
标签中的属性完成了XSD与命名空间的绑定,标签其中包含一下属性说明如下。
xsi
,对应http://www.w3.org/2001/XMLSchema-instance,其通常作为XSD的命名空间。第二级为AUTOSAR包集合,里边包含了各个定义在此文件内的AUTOSAR包。
- <AR-PACKAGES>
- ...
- </AR-PACKAGES>
第三级为AUTOSAR包,AUTOSAR包中包含了AUTOSAR的元素,AUTOSAR包中同样可以再包含AUTOSAR包集合,如下所示。UUID为全局唯一标识符。
- <AR-PACKAGE UUID="fe961ec7-0abe-508e-3e6a-54993ef5a69e">
- <SHORT-NAME>AUTOSAR_XXX</SHORT-NAME>
- ...包其他内容...
- <AR-PACKAGES>
- <AR-PACKAGE>
- ...包内容...
- </AR-PACKAGE>
- </AR-PACKAGES>
- </AR-PACKAGE>
arxml注释为<!-- 注释内容 --> 。
<ELEMENTS> 标签内可以包含ARElement与FibexElement,它是一个可以独立定义的元素,即不属于另一个元素(当然PACKAGE除外)。下图包含所有ARElement的种类。
下图包含了所有的FibexElement的种类。
下图为ARXML的顶层架构。
下图为一个应用组件及其内部包含的Attribute。
我们来分别说明一下属性包含的内容信息。
- <ADMIN-DATA>
- <SDGS>
- <SDG GID="Master">
- <SD>true</SD>
- </SDG>
- </SDGS>
- </ADMIN-DATA>
- <PORTS>
- <P-PORT-PROTOTYPE UUID="6c3821e7-083e-4107-aabe-78e2b3fec89a">
- <SHORT-NAME>PPortPrototype_0</SHORT-NAME>
- <PROVIDED-INTERFACE-TREF DEST="SENDER-RECEIVER-INTERFACE">/SenderReceiverInterface/SenderReceiverInterface_0</PROVIDED-INTERFACE-TREF>
- </P-PORT-PROTOTYPE>
- </PORTS>
- <INTERNAL-BEHAVIORS>
- <SWC-INTERNAL-BEHAVIOR UUID="6131a7d7-2eb4-443c-af46-b440c9e69731">
- <SHORT-NAME>IB_Base_SWC</SHORT-NAME>
- <DATA-TYPE-MAPPING-REFS>
- <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/DataTypeMapping/DataTypeMappingSet_0</DATA-TYPE-MAPPING-REF>
- </DATA-TYPE-MAPPING-REFS>
- <EVENTS>
- <TIMING-EVENT UUID="53fe7a8e-aacc-4a45-b555-e33f1061ac74">
- <SHORT-NAME>TimingEvent_0</SHORT-NAME>
- <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/Base_SWC/Test1/IB_Base_SWC/RunnableEntity_0</START-ON-EVENT-REF>
- <PERIOD>1.0</PERIOD>
- </TIMING-EVENT>
- </EVENTS>
- <RUNNABLES>
- <RUNNABLE-ENTITY UUID="31408035-5651-4258-a999-72d54c796e74">
- <SHORT-NAME>RunnableEntity_0</SHORT-NAME>
- <DATA-SEND-POINTS>
- <VARIABLE-ACCESS UUID="c85b3d4b-2b73-4991-868e-c59bca22fb3f">
- <SHORT-NAME>DSP_TestState_0</SHORT-NAME>
- <ACCESSED-VARIABLE>
- <AUTOSAR-VARIABLE-IREF>
- <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/Base_SWC/Test1/PPortPrototype_0</PORT-PROTOTYPE-REF>
- <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/SenderReceiverInterface/SenderReceiverInterface_0/TestState</TARGET-DATA-PROTOTYPE-REF>
- </AUTOSAR-VARIABLE-IREF>
- </ACCESSED-VARIABLE>
- </VARIABLE-ACCESS>
- </DATA-SEND-POINTS>
- <SYMBOL>RunnableEntity_0_func</SYMBOL>
- </RUNNABLE-ENTITY>
- </RUNNABLES>
- </SWC-INTERNAL-BEHAVIOR>
- </INTERNAL-BEHAVIORS>
下图为一个ECU抽取之后,生成的系统以及其内部包含的Attribute。其为系统描述的顶层元素,系统描述定义了五个主要元素:拓扑、软件、通信、映射和映射约束。
我们来分别说明一下属性包含的内容信息。
- <FIBEX-ELEMENTS>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/CHK12_Mcu</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="CAN-CLUSTER">/DBC_SysDesc_Can_Network_ECAN/Pkg_Cluster/Can_Network_ECAN</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="CAN-FRAME">/DBC_SysDesc_Can_Network_ECAN/Pkg_Frame/DV_Test_Message_1</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL-I-PDU">/DBC_SysDesc_Can_Network_ECAN/Pkg_Pdus/DV_Test_Message_1</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/KL15_MON_MCU</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="CAN-FRAME">/DBC_SysDesc_Can_Network_ECAN/Pkg_Frame/Rx_Test_Message_01</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL-I-PDU">/DBC_SysDesc_Can_Network_ECAN/Pkg_Pdus/Rx_Test_Message_01</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/Rx_Test_Signal_01</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/Rx_Test_Signal_02</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="ECU-INSTANCE">/DBC_SysDesc_Can_Network_ECAN/Pkg_Ecu/Test</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="CAN-FRAME">/DBC_SysDesc_Can_Network_ECAN/Pkg_Frame/Tx_Test_Message_01</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL-I-PDU">/DBC_SysDesc_Can_Network_ECAN/Pkg_Pdus/Tx_Test_Message_01</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/Tx_Test_Signal_01</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/Tx_Test_Signal_02</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF-CONDITIONAL>
- <FIBEX-ELEMENT-REF DEST="I-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_ISignal/VBAT_MON_MCU</FIBEX-ELEMENT-REF>
- </FIBEX-ELEMENT-REF-CONDITIONAL>
- </FIBEX-ELEMENTS>
- <MAPPINGS>
- <SYSTEM-MAPPING>
- <SHORT-NAME>SystemMapping</SHORT-NAME>
- <DATA-MAPPINGS>
- <SENDER-RECEIVER-TO-SIGNAL-MAPPING>
- <DATA-ELEMENT-IREF>
- <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/TopLevelComposition/TopLevelComposition/CPT_Test1</CONTEXT-COMPONENT-REF>
- <CONTEXT-COMPOSITION-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System/System/RootSwCompositionPrototype</CONTEXT-COMPOSITION-REF>
- <CONTEXT-PORT-REF DEST="R-PORT-PROTOTYPE">/Base_SWC/Test1/RPortPrototype_0</CONTEXT-PORT-REF>
- <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/Interfaces/SenderReceiverInterface_uint16/VDP_uint16</TARGET-DATA-PROTOTYPE-REF>
- </DATA-ELEMENT-IREF>
- <SYSTEM-SIGNAL-REF DEST="SYSTEM-SIGNAL">/DBC_SysDesc_Can_Network_ECAN/Pkg_Signal/Rx_Test_Signal_01</SYSTEM-SIGNAL-REF>
- </SENDER-RECEIVER-TO-SIGNAL-MAPPING>
- </DATA-MAPPINGS>
- <SW-MAPPINGS>
- <SWC-TO-ECU-MAPPING>
- <SHORT-NAME>SwcToEcuMapping_1</SHORT-NAME>
- <COMPONENT-IREFS>
- <COMPONENT-IREF>
- <CONTEXT-COMPOSITION-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System/System/RootSwCompositionPrototype</CONTEXT-COMPOSITION-REF>
- <TARGET-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/TopLevelComposition/TopLevelComposition/CPT_Test1</TARGET-COMPONENT-REF>
- </COMPONENT-IREF>
- <COMPONENT-IREF>
- <CONTEXT-COMPOSITION-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System/System/RootSwCompositionPrototype</CONTEXT-COMPOSITION-REF>
- <TARGET-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/TopLevelComposition/TopLevelComposition/CPT_Test2</TARGET-COMPONENT-REF>
- </COMPONENT-IREF>
- </COMPONENT-IREFS>
- <ECU-INSTANCE-REF DEST="ECU-INSTANCE">/DBC_SysDesc_Can_Network_ECAN/Pkg_Ecu/Test</ECU-INSTANCE-REF>
- </SWC-TO-ECU-MAPPING>
- </SW-MAPPINGS>
- </SYSTEM-MAPPING>
- </MAPPINGS>
- <ROOT-SOFTWARE-COMPOSITIONS>
- <ROOT-SW-COMPOSITION-PROTOTYPE>
- <SHORT-NAME>CPT_Test_FlatView</SHORT-NAME>
- <FLAT-MAP-REF DEST="FLAT-MAP">/Test_FlatView/Test_FlatMap</FLAT-MAP-REF>
- <SOFTWARE-COMPOSITION-TREF DEST="COMPOSITION-SW-COMPONENT-TYPE">/Test_FlatView/SwComponentTypes/Test_FlatView</SOFTWARE-COMPOSITION-TREF>
- </ROOT-SW-COMPOSITION-PROTOTYPE>
- </ROOT-SOFTWARE-COMPOSITIONS>
包含对软件对象引用的平面列表。此列表用于标识实例和解决名称冲突。引用范围由使用它的RootSwCompositionPrototype给出,即它可以应用于系统、系统提取或ECU提取。
FlatMap的实例也可用于前期的ARXML中,例如在集成到系统中之前的软件组件的ARXML中。在这种情况下,它不是由RootSwCompositionPrototype给出。
我们来分别说明一下属性包含的内容信息。
- <FLAT-INSTANCE-DESCRIPTOR>
- <SHORT-NAME>CPT_Test1</SHORT-NAME>
- <UPSTREAM-REFERENCE-IREF>
- <CONTEXT-ELEMENT-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System/System/RootSwCompositionPrototype</CONTEXT-ELEMENT-REF>
- <TARGET-REF DEST="SW-COMPONENT-PROTOTYPE">/TopLevelComposition/TopLevelComposition/CPT_Test1</TARGET-REF>
- </UPSTREAM-REFERENCE-IREF>
- <ECU-EXTRACT-REFERENCE-IREF>
- <CONTEXT-ELEMENT-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System_EcuExtract/EXTR_Test/CPT_Test_FlatView</CONTEXT-ELEMENT-REF>
- <TARGET-REF DEST="SW-COMPONENT-PROTOTYPE">/Test_FlatView/SwComponentTypes/Test_FlatView/CPT_Test1</TARGET-REF>
- </ECU-EXTRACT-REFERENCE-IREF>
- </FLAT-INSTANCE-DESCRIPTOR>
- <FLAT-INSTANCE-DESCRIPTOR>
- <SHORT-NAME>TestState</SHORT-NAME>
- <SW-DATA-DEF-PROPS>
- <SW-DATA-DEF-PROPS-VARIANTS>
- <SW-DATA-DEF-PROPS-CONDITIONAL>
- <SW-REFRESH-TIMING>
- <CSE-CODE>6</CSE-CODE>
- <CSE-CODE-FACTOR>1</CSE-CODE-FACTOR>
- </SW-REFRESH-TIMING>
- </SW-DATA-DEF-PROPS-CONDITIONAL>
- </SW-DATA-DEF-PROPS-VARIANTS>
- </SW-DATA-DEF-PROPS>
- <UPSTREAM-REFERENCE-IREF>
- <CONTEXT-ELEMENT-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System/System/RootSwCompositionPrototype</CONTEXT-ELEMENT-REF>
- <CONTEXT-ELEMENT-REF DEST="SW-COMPONENT-PROTOTYPE">/TopLevelComposition/TopLevelComposition/CPT_Test1</CONTEXT-ELEMENT-REF>
- <CONTEXT-ELEMENT-REF DEST="P-PORT-PROTOTYPE">/Base_SWC/Test1/PPortPrototype_0</CONTEXT-ELEMENT-REF>
- <TARGET-REF DEST="VARIABLE-DATA-PROTOTYPE">/SenderReceiverInterface/SenderReceiverInterface_0/TestState</TARGET-REF>
- </UPSTREAM-REFERENCE-IREF>
- <ECU-EXTRACT-REFERENCE-IREF>
- <CONTEXT-ELEMENT-REF DEST="ROOT-SW-COMPOSITION-PROTOTYPE">/System_EcuExtract/EXTR_Test/CPT_Test_FlatView</CONTEXT-ELEMENT-REF>
- <CONTEXT-ELEMENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Test_FlatView/SwComponentTypes/Test_FlatView/CPT_Test1</CONTEXT-ELEMENT-REF>
- <CONTEXT-ELEMENT-REF DEST="P-PORT-PROTOTYPE">/Base_SWC/Test1/PPortPrototype_0</CONTEXT-ELEMENT-REF>
- <TARGET-REF DEST="VARIABLE-DATA-PROTOTYPE">/SenderReceiverInterface/SenderReceiverInterface_0/TestState</TARGET-REF>
- </ECU-EXTRACT-REFERENCE-IREF>
- </FLAT-INSTANCE-DESCRIPTOR>
部件类型聚合了软件组件类型以及Sw Connector,后者主要用于将SwComponentPrototype彼此连接并连接。通过这种方法,可以创建软件组件的层次结构。
我们来分别说明一下属性包含的内容信息。
- <PORTS>
- <R-PORT-PROTOTYPE>
- <SHORT-NAME>RPortPrototype_System_0</SHORT-NAME>
- <REQUIRED-INTERFACE-TREF DEST="SENDER-RECEIVER-INTERFACE">/Interfaces/SenderReceiverInterface_uint32</REQUIRED-INTERFACE-TREF>
- </R-PORT-PROTOTYPE>
- </PORTS>
- <COMPONENTS>
- <SW-COMPONENT-PROTOTYPE>
- <SHORT-NAME>CPT_Test1</SHORT-NAME>
- <TYPE-TREF DEST="APPLICATION-SW-COMPONENT-TYPE">/Base_SWC/Test1</TYPE-TREF>
- </SW-COMPONENT-PROTOTYPE>
- <SW-COMPONENT-PROTOTYPE>
- <SHORT-NAME>CPT_Test2</SHORT-NAME>
- <TYPE-TREF DEST="APPLICATION-SW-COMPONENT-TYPE">/CDD_SWC/Test2</TYPE-TREF>
- </SW-COMPONENT-PROTOTYPE>
- </COMPONENTS>
- <CONNECTORS>
- <ASSEMBLY-SW-CONNECTOR>
- <SHORT-NAME>ASC_CPT_Test1_PPortPrototype_0_CPT_Test2_RPortPrototype_0</SHORT-NAME>
- <PROVIDER-IREF>
- <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Test_FlatView/SwComponentTypes/Test_FlatView/CPT_Test1</CONTEXT-COMPONENT-REF>
- <TARGET-P-PORT-REF DEST="P-PORT-PROTOTYPE">/Base_SWC/Test1/PPortPrototype_0</TARGET-P-PORT-REF>
- </PROVIDER-IREF>
- <REQUESTER-IREF>
- <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Test_FlatView/SwComponentTypes/Test_FlatView/CPT_Test2</CONTEXT-COMPONENT-REF>
- <TARGET-R-PORT-REF DEST="R-PORT-PROTOTYPE">/CDD_SWC/Test2/RPortPrototype_0</TARGET-R-PORT-REF>
- </REQUESTER-IREF>
- </ASSEMBLY-SW-CONNECTOR>
- <DELEGATION-SW-CONNECTOR>
- <SHORT-NAME>DelegationSwConnector_0_0</SHORT-NAME>
- <INNER-PORT-IREF>
- <R-PORT-IN-COMPOSITION-INSTANCE-REF>
- <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Test_FlatView/SwComponentTypes/Test_FlatView/CPT_Test1</CONTEXT-COMPONENT-REF>
- <TARGET-R-PORT-REF DEST="R-PORT-PROTOTYPE">/Base_SWC/Test1/RPortPrototype_System_0</TARGET-R-PORT-REF>
- </R-PORT-IN-COMPOSITION-INSTANCE-REF>
- </INNER-PORT-IREF>
- <OUTER-PORT-REF DEST="R-PORT-PROTOTYPE">/Test_FlatView/SwComponentTypes/Test_FlatView/RPortPrototype_System_0</OUTER-PORT-REF>
- </DELEGATION-SW-CONNECTOR>
- </CONNECTORS>
模块可以是BSW模块以及RTE和ECU基础模块,Ecuc Module Configuration Values元素有两个不同的角色:
我们来分别说明一下属性包含的内容信息。
下图是CanIf第一层容器包含的内容,根据箭头可以找到与BSW Editor的对应关系,首先CanIf包含了五个子容器,打开CanIfInitCfg子容器,里边包含一个参数CanIfInitCfgSet和四个子容器。
下图可以看到针对子容器CanIfInitHohCfg,它下面包含的三个子容器的关系。
下图可以看到针对子容器CanIfHrhCfg的一个参数和两个引用与BSW Editor中的关系。
可以看出直接看ARXML包含关系不是很直观,并且因为他们的容器内参数引用的为..\Config\BSW\ParamDefs目录下的模块参数定义并且是可以分裂定义(同一种引用针对不同实例重复定义),建议BSW基础模块在BSW Editor中进行配置和理解,BSW Editor会将相同的参数引用聚合到一起,并形成可视化的层级关系,帮助我们更好的完成BSW等基础模块的配置 。
我们以ComM_Cfg_SWCD.arxml文件为例,来讲解SWCD一般包含那些内容。
我们分别介绍一下这四个PACKAGE都包含的内容。
- <SWC-IMPLEMENTATION>
- <SHORT-NAME>ComM_Imp</SHORT-NAME>
- <CODE-DESCRIPTORS>
- <CODE>
- <SHORT-NAME>ComM_Imp_Code</SHORT-NAME>
- <ARTIFACT-DESCRIPTORS>
- <AUTOSAR-ENGINEERING-OBJECT>
- <SHORT-LABEL>Code</SHORT-LABEL>
- <CATEGORY>SWSRC</CATEGORY>
- </AUTOSAR-ENGINEERING-OBJECT>
- </ARTIFACT-DESCRIPTORS>
- </CODE>
- </CODE-DESCRIPTORS>
- <PROGRAMMING-LANGUAGE>C</PROGRAMMING-LANGUAGE>
- <BEHAVIOR-REF DEST="SWC-INTERNAL-BEHAVIOR">/AUTOSAR_ComM/SwComponentTypes/ComM/ComM_Int</BEHAVIOR-REF>
- </SWC-IMPLEMENTATION>
- <IMPLEMENTATION-DATA-TYPE>
- <SHORT-NAME>ComM_UserHandleArrayType</SHORT-NAME>
- <CATEGORY>STRUCTURE</CATEGORY>
- <SUB-ELEMENTS>
- <IMPLEMENTATION-DATA-TYPE-ELEMENT>
- <SHORT-NAME>numberOfRequesters</SHORT-NAME>
- <CATEGORY>TYPE_REFERENCE</CATEGORY>
- <SW-DATA-DEF-PROPS>
- <SW-DATA-DEF-PROPS-VARIANTS>
- <SW-DATA-DEF-PROPS-CONDITIONAL>
- <IMPLEMENTATION-DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">/AUTOSAR_Platform/ImplementationDataTypes/uint8</IMPLEMENTATION-DATA-TYPE-REF>
- </SW-DATA-DEF-PROPS-CONDITIONAL>
- </SW-DATA-DEF-PROPS-VARIANTS>
- </SW-DATA-DEF-PROPS>
- </IMPLEMENTATION-DATA-TYPE-ELEMENT>
- <IMPLEMENTATION-DATA-TYPE-ELEMENT>
- <SHORT-NAME>handleArray</SHORT-NAME>
- <CATEGORY>ARRAY</CATEGORY>
- <ARRAY-SIZE-SEMANTICS>FIXED-SIZE</ARRAY-SIZE-SEMANTICS>
- <SUB-ELEMENTS>
- <IMPLEMENTATION-DATA-TYPE-ELEMENT>
- <SHORT-NAME>handleArrayElement</SHORT-NAME>
- <CATEGORY>TYPE_REFERENCE</CATEGORY>
- <ARRAY-SIZE SHORT-LABEL="size">1</ARRAY-SIZE>
- <SW-DATA-DEF-PROPS>
- <SW-DATA-DEF-PROPS-VARIANTS>
- <SW-DATA-DEF-PROPS-CONDITIONAL>
- <IMPLEMENTATION-DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">/AUTOSAR_ComM/ImplementationDataTypes/ComM_UserHandleType</IMPLEMENTATION-DATA-TYPE-REF>
- </SW-DATA-DEF-PROPS-CONDITIONAL>
- </SW-DATA-DEF-PROPS-VARIANTS>
- </SW-DATA-DEF-PROPS>
- </IMPLEMENTATION-DATA-TYPE-ELEMENT>
- </SUB-ELEMENTS>
- </IMPLEMENTATION-DATA-TYPE-ELEMENT>
- </SUB-ELEMENTS>
- </IMPLEMENTATION-DATA-TYPE>
- <SENDER-RECEIVER-INTERFACE>
- <SHORT-NAME>ComM_CurrentChannelRequest</SHORT-NAME>
- <IS-SERVICE>true</IS-SERVICE>
- <DATA-ELEMENTS>
- <VARIABLE-DATA-PROTOTYPE>
- <SHORT-NAME>fullComRequestors</SHORT-NAME>
- <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/AUTOSAR_ComM/ImplementationDataTypes/ComM_UserHandleArrayType</TYPE-TREF>
- </VARIABLE-DATA-PROTOTYPE>
- </DATA-ELEMENTS>
- </SENDER-RECEIVER-INTERFACE>
我们以ComM_Cfg_BSWMD.arxml,来讲解以下BSWMD都包含哪些内容。
我们下面来看一下八个PACKAGE都包含了什么内容。
十六宿舍 原创作品,转载必须标注原文链接。
©2023 Yang Li. All rights reserved.
欢迎关注 『十六宿舍』,大家喜欢的话,给个
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/1010983
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。