目录
概览--isolar中Ecu Configuration的配置工作流
Step 2. Configure additional elements
Step 5. Configure the BSW and generate the code
Step 7. Code Generation for RTE and OS
本文中提到的关于BswM EcuM的相关示例配置文件可在关注公众号后,后台私信获取!
文章使用对象
autosar配置工程师/autosar配置初学者
学习目标
配置一个可以生成RTE、OS和BSW代码的项目
演示场景
-
如何从系统描述中创建ECU Extract?
-
如何配置ECU?
-
如何为BSW、OS、RTE生成代码
前提条件
-
必须熟悉AUTOSAR ECU Configuration规范、术语和方法论;可参考《AUTOSAR_TPS_ECUConfiguration.pdf》文档
-
必须安装了RTA-CAR工具链
-
必须已完成system configuretion,可参考isolar高手秘籍| System Configuration一分钟速成!
概览--isolar中Ecu Configuration的配置工作流
Step1:在Application Software Configureation和System Configuration中配置的示例项目中创建一个ECU Extract文件。
Step2:为提取的ECU的配置,配置所需的元素(EcuC value Collection和RTE及OS的容器)。
Step3:配置操作系统(OS)。
Step4:配置运行时环境(RTE)。
Step5:配置基础软件(BSW),然后运行BSW代码生成。
Step6:在代码生成之后,将BSW服务软件组件(SWCs)映射到组合中,更新连接,并更新ECU提取文件。
Step7:运行OS和RTE代码生成,并重新运行BSW代码生成
工具操作详细步骤
Step 1. Create an ECU Extract
如下图所示:Open 项目,右键单击“System”,选择“Create ECU Extract.”
在"Create ECUExtract"弹出窗口中,勾选忽略comspec冲突选项,然后单击Finish。
单击 OK,确认ECUExtract已成功生成。
如下图所示, 在 AR Explorer视图中,可以在System上方找到新创建的ECU Extract (EXTR_ApplicationECU)。
Step 2. Configure additional elements
如下如所示,为了继续ECU的配置,项目中ECU Navigator视图中必须存在以下AUTOSAR定义的元素:
-
-
EcuC Value Collection
-
RTE
-
OS
-
以下步骤将配置上述提到的必需的autosar元素。
2.1 Configure an EcuC Value Collection
如下图所示: 从"ARExplorer"视图切换到"ECU Navigator"视图,右键单击"EcucValueCollection_0"并将其重命名为"EcucValueCollection",在Bsw模块-->ECuc Value Collection下,然后双击它。
当第一次打开一个新的Ecuc Value Collection时,会出现一个“RTE配置的先决条件”弹出窗口。如下图所示:
从下拉列表中选择Step1中创建的ECU Extract,然后单击Finish。其中:RTE和OS模块的容器都是默认创建的。
Step 3. Configure the OS
从 ECU Navigator视图中,双击打开“Os”模块。
在左侧列表中的“OS Contents”容器中,在 Application Modes 下有一个名为OSDEFAULTAPPMODE的OsAppMode,它足以让基本项目工作,后续的配置步骤中将在此工作流中对其进行一些额外的配置。
Step 4. Configure the RTE
需要对默认创建的RTE进行一些配置,将涉及创建Os Task和SWC runnables的映射。
4.1 Create OS Task
首先,为了能够将Runnable映射到一个TASK,所以我们必需先创建一个OS Task。
如下图所示:在 ECU Navigator视图中,双击打开EcucValueCollection。
如下图所示:在右侧的编辑器对话框的底部,选择“Os task Properties”tab。
如下图所示:右键单击空表中的任意位置,然后单击Create Os Task。
如下图所示:将出现如下所示的“Create OsTask”弹出窗口,然后单击 Finish。
如下图所示:将向表中添加一个新行,默认Task称为OsTask_0。
如下图所示:将新任务重命名为“OsTask_ASW”,并选择Os Task Schedule为FULL。
4.2 Map the Runnables to the OS Task
如下图所示:切换到编辑器底部的“Entity to Task Mapping”tab。
将右侧“UnMapped Entries”部分中的每个Runnable拖到左侧“Mapped Entities”部分中的相关Os Task中。
下图显示的是Runnables映射完成后的“Entity to Task Mapping"”示例。
Step 5. Configure the BSW and generate the code
配置BSW,然后生成代码。
5.1 Configure the BSW
RTA-BSW包括一个配置生成工具(ConfGen),用于根据已经提供的配置完成AUTOSAR基本软件模块配置。
如下图所示:正确安装RTA-BSW插件后,我们将在ISOLAR-AB工具栏中看到RTA-BSW配置生成的快捷按钮。
如下图所示:在AR Explorer视图中选择项目,然后单击RTA-BSW配置生成按钮。
如下图所示:将“Generate ECU Configuration”窗口中的Output Path设置到自定义的位置,然后单击Finish。
如下如所示:在示例项目中,Bsw模块部分包含<isolar高手秘籍| System Configuration一分钟速成!>中进行的DBC导入后填充配置的模块.
如果在实际项目中需要配置其他模块,可以通过右键单击“Bsw Modules"并创建新模块来完成,或者通过单击现有模块以展开其内容来修改其配置。
5.2 Run the BSW Code Generation
BSW代码是通过RTA代码生成器生成的,该生成器也可用于生成RTE和OS模块的代码。
提示:RTE生成需要Mode Management,因为RTE生成器将查找Mode Management Modules(EA M和BswM)生成的一些引用。Mode Management配置既复杂又与项目无关。出于这些原因,将在后续的文章中对Mode Management工作流程中进行详细描述,本文章不进行描述。
对于文章中的示例工程,我们选择导入一个示例d的Mode Management配置,如下图所示:如果需要从头开始配置BswM和EcuM,则可以参考后续文章。
-
Copy 所有BswM_的*. arxml和EcuM_*.arxml文件至项目文件夹\ecu_config\bsw\ecucvalue
-
Copy ecu_config\bsw\integrationCfg的整个integrationCfg文件夹在同一位置的一个名为integration的文件夹中。
-
Copy MSI_Shutdown. arxm至 system_config文件夹下
如下如所示:需要重新运行Confgen才能显示服务组件。按左上角的蓝色“E”键即可执行此操作。
选择打开“ Open RTA-Code Generator dialog”选项。
如下图所示:可以设置三个代码生成器(RTA-BSW,RTA-RTE,RTA-OS)的详细信息。
在生成BSW代码之前,必须首先选择包含在生成代码中的已配置BSW模块,并设置/检查BSW输出路径的位置。(示例工程中请确保已应用以下模块,如图所示)。
根据选择的BSW模块,可能需要进行额外的配置才能成功生成BSW代码。如果想在示例工程中包含BswM和EcuM模块,则在Step6.1节中有关于此的说明。
如下图所示:单击Apply,然后 单击Run
注意:如果您需要从运行配置窗口外部重新生成BSW代码,您可以使用RTA代码生成器菜单中的生成RTA-BSW按钮。
Step 6. Mapping ECU Services
如下图所示:BSW Service Components创建也将作为代码生成的一部分,并且它们在“Components”部分中可见(带有紫色图标)。
如果有任何服务组件,需要更新系统并将它们映射到ECU中,并在System修改后更新ECUExtract(与创建它的方式相同)。将在下面的步骤6.1中向描述如何完成这项额外的工作。
6.1 Map BSW Service SWCs onto the Composition
如上所述,如果使用BSW服务,例如Mode Management或NVM services,则需要将生成的服务SWC prototype添加到ECU。
如下图所示:要将服务SWC映射到composition。打开“ TopLevelComposition”,并通过单击绿色“+”旁边的小向下箭头并选择“ Component Prototype”来添加SWC原型。
如下图所示:然后选择CPT_ComM组件类型,然后按 OK。
如下图所示:右键“System”,使用"SWC到ECU映射编辑器"打开系统以映射新组件。
如下图所示:将CPT_ComM组件拖放到系统映射中。
Update the EcuExtract
在进行System或 Composition任何修改后,必须重新生成Ecu Extract以包含这些更改。如step1中描述,通过右键点击System info,然后选择“Create EcuExtract”来完成。
Generate BSW
打开代码生成器对话框并再次生成BSW。如果是按照本示例指引学习,则请确保选择以下BSW模块。
BSW Runnable mapping
更新BSW配置后,可能还需要在EcucValueCollection中更新RTE配置的可Runnable 与Task映射 。建议将所有BSW Runnable 映射到专用的Os Task。如果不存在专用的Task,则需要创建一个Task。
在ECU Navigator视图中,通过双击打开EcucValueCollection。
如下图所示:在右侧编辑器对话框的底部,选择“Os task Properties”tab。
如下图所示:右键单击空表中的任意位置,然后单击Create Os Task。
将出现如下所示的“Create OsTask”弹出窗口,然后单击Finish。
将向表中添加一个新行,默认任务称为OsTask_0。
将新Task重命名为"OsTask-BSW",并设置Os Task Schedule为FULL,如下图所示:
切换至编辑器底部的“Entity to Task Mapping”tab。如下图所示,示例显示了映射到“OsTask_BSW”任务的所有BSW实体。
下面的示例显示了映射到Runnables的所有BSW Entities 。
Step 7. Code Generation for RTE and OS
7.1 RTE Code Generation
如下图所示:
-
在RTA代码生成器设置Rte Main Tab中,设置Rte输出路径和Rte日志路径。
-
在Rte命令框中,添加命令行选项(--os-define-osenv=RTAOS40)为所使用的AUTOSAR版本创建必要的定义。
-
如果与文中示例工作流一样,有一些端口未连接,请使用附加命令(--strict-unconnected-rport-check=off)。示例项目需要完整的命令行选项:
--strict-unconnected-rport-check=off --os-define-osenv=RTAOS40 --notimestamps --samples=memmap
在“Included AR Files”tab中,选择RTA-RTE生成所需的包含文件。如下图所示:在本示例工作流的情况下,进行以下选择,并单击Apply
然后在RTA代码生成器菜单中,选择生成RTA-RTE。
7.2 OS Configuration and Generation
在RTE生成过程中,将生成一个文件“OsNeeds. arxml”。该文件描述了刚刚生成的RTE代码的Os要求,例如定时器、调度表、任务数量以及它们将在其上运行的ECU核心。
现在有了“OsNeeds. arxml”这个文件,准备继续进行OS配置。有两种方法可以执行OS的配置:
-
使用ISOLAR-AB中的BSW编辑器
-
在ISOLAR-AB中使用OS编辑器
-
使用RTA-OS配置工具。
在此示例工作流程中,我们将使用ISOLAR-AB配置OS。
如下图所示:双击Bsw模块中的Os容器并选择BSW编辑器。
在BSW编辑器中,可以根据项目要求配置所有OS容器。
除了OsNeeds. arxml文件中包含的元素之外,OS配置还需要以下元素:
-
还必须创建 startup task(如下图所示):其中OsTaskAutostart容器中的OsTaskAppModeRef应设置为OSDEFAULTAPPMODE,其中OsAppMode应在项目创建时自动设置。在任何其他Application或Basic SW启动之前,初始化ECU系统代码(例如OS启动代码)需要启动任务。
在继续生成OS之前,您可能需要执行以下操作:
-
将启动套件的src\bsw\Compiler\集成文件夹中的os_compiler_cfg. h文件复制到您的项目中。文件可以在这里下载。
-
Copy os_compiler_cfg. h文件至项目中
-
Copy os_memmap. h 文件至项目中
-
使用查找和替换从工程所有文件中删除以下代码行
-
双击“ ECU Configurator”中的Os文件夹以访问BSW 编辑器。然后选择OsOs文件夹。
-
在属性设置中,使用下拉菜单将OsScalablityClass更改为“SC1”。
From here click Advanced and enter the argument --build:clean.
完成上述附加元素的配置后,再次打开RTA代码生成器,并以与步骤7.1中的RTE相同的方式配置(例如,指定输出路径、附加命令以及包含的文件和文件夹)。要配置命令行参数,请单击配置命令行参数。
从这里单击Advanced并输入参数--build:Clean。
如果按照本示例学习,则还需要在OS的“ Included AR files ”tab中选择OS. arxml(Os_EcucValues.arxml)和osNeeds.arxml(由RTE生成)。
配置完成后,单击 Run以运行OS代码生成。
OS生成器将被ISOLAR调用,将在命令日志中看到结果。
7.3 Re-Generation of BSW
在更改BSW配置或任何SWC服务需求后,必须重新生成BSW。可以使用与前面在第5.2节中描述的相同过程来执行此操作
本文中提到的关于BswM EcuM的相关示例配置文件可在关注公众号后,后台私信获取!
关注订阅“汽车电子工具智慧库”公众号,解锁更多汽车电子工具链技能,快速加入工具交流群 。