Skip to content
← 返回博客
AUTOSAR 三大工具链全了:AI 现在能配 EB、达芬奇、ETAS
产品动态

AUTOSAR 三大工具链全了:AI 现在能配 EB、达芬奇、ETAS

新增 ETAS ISOLAR 支持与 System Template,EB、DaVinci、ETAS 三大工具链齐备;SwcD 等系统级 ARXML 可一并加载,RTE 配置不再卡在空引用列表。

产品动态AutoCAUTOSAR

上周把两件攒了一段时间的事情一起上线了:

  1. AutoC 支持 ETAS RTA-CAR / ISOLAR-B 工具链
  2. 新增 System Template,可以把 SWC 描述等系统级 ARXML 一起加载进来

这两件事放在一篇里说,是因为它们经常一起出现。比如配 RTE 时,如果 SwcD 没加载进来,RTE 就不知道有哪些 SWC、runnable 和端口可用。


先说 ETAS 支持

AutoC 之前已经支持 EB tresos 和 Vector DaVinci Configurator。ETAS 是现在补上的第三套工具链。

配置至少需要安装路径与工程路径:

json
{
  "etas": {
    "installPath": "D:\\ETAS\\RTA-CAR_12.1.0\\ISOLAR-AB_12.1.2",
    "projectPath": "."
  }
}

若自动扫描到的 ECUC 值 ARXML 不符合预期,可在 etas.dataArxmlPaths 中显式指定要加载的文件(相对工程根,支持 glob 与多文件)。详见 ETAS ISOLAR 配置

把它放到工程目录下的 .autoc/settings.json,执行 /reload 生效。也可以用 /settings 交互配置,进入 ETAS ISOLAR 子菜单,第一次用会更省心。

配置是否成功,看启动信息里的 ETAS ISOLAR 一栏:


再说 System Template

System Template 乍看不大,但做过 RTE 或通信栈配置的人应该知道它解决的是什么。

BSW 配置文件里有大量 foreign reference。Com 信号要引用系统描述里的信号定义,RTE 要引用 SWC 的 runnable,PduR 要引用 PDU。问题是这些对象不在 BSW 工程里,而是在另一套系统级 ARXML 里。

如果这些文件没有加载进来,AutoC 在列举 v:ref 候选项时只能拿到空列表。System Template 做的事很直接:把这些系统级 ARXML 一起放进当前工作上下文。

加载方式推荐用 /system 命令:

plain
/system import Config/System/Armf_SwcD.arxml
/system import Config/System/*.arxml

支持 glob,多文件逗号分隔。也可以写进 settings.json

json
{
  "autosar": {
    "systemTemplatePaths": [
      "Config/System/Armf_SwcD.arxml"
    ]
  }
}

加载之后,RTE、Com、PduR 里的引用型配置项就能选到候选值。


一个 ARMF 项目的例子

下面用一个 ARMF 项目演示完整流程。这里的 ARMF 是某量产平台里的主动横向稳定杆控制软件组件,系统描述文件是 Armf_SwcD.arxml

整个 ARMF 软件组件拆成 5 个 SWC:

SWC 名称职责
SWC_ArmfMain主控逻辑,10ms 周期
SWC_ArmfSafety安全监控,10ms 周期
SWC_ArmfMotCtrl电机控制,1ms 快速任务 + 10ms 慢速任务
SWC_ArmfSigProc信号处理,10ms 周期
SWC_ArmfComm通信处理,20ms 周期

每个 SWC 都有一个 Init runnable 和至少一个 Cyclic runnable。SWC_ArmfMotCtrl 多了两个周期任务:RE_MotCtrl_Fast 是 1ms,RE_MotCtrl_Slow 是 10ms。电机控制里这种快慢分层很常见。

端口主要分两类:

  • SR 端口:TqReqFrnt(扭矩需求)、PwrCnsLim(功率限制)、VehModMngt(整车模式管理)、ActvRollBarStsFrnt(主动横向稳定杆状态)等
  • CS 端口:CSIf_Dem(故障上报)、CSIf_NvM(非易失存储读写)

【截图占位:SWC 端口连接关系图,在 ETAS 或 DaVinci 里看到的 Composition 视图】


第一步:加载 SwcD

把 ARXML 导入进来:

plain
/system import Armf_SwcD.arxml


第二步:配置 RTE

加载之后,可以直接让 AutoC 根据 SwcD 配 RTE:

plain
根据已加载的 SwcD,帮我配置 RTE——
SWC 映射、runnable 实体、data access point 都按 SwcD 的定义来

AutoC 会读取 SwcD 里的 SWC 类型定义、端口和 runnable,然后在 RTE 配置里生成对应项:

  • SwcInstanceToTaskMapping(SWC 实例到任务的映射)
  • RunnableEntity(runnable 实体注册)
  • PortDefinedArgumentValue / DataReceivedErrorEvent(数据访问点)


小结

这次更新主要补了两个能力。

ETAS 支持补上以后,EB、DaVinci、ETAS 三套常见工具链都能接。项目用哪套,AutoC 就连哪套。

System Template 则把工作范围从 "只看 BSW" 扩到 "BSW 和系统级 ARXML 一起看"。RTE、Com、PduR 这类需要引用 SWC、信号或 PDU 定义的配置,现在才算配得完整。

两个功能的文档在这里:

如果你们项目里正在用 ETAS,或者 RTE 配置一直卡在引用候选项为空,这两个功能可以先试一下。

分享