前言
作为初学者,接触AutoSar的开发,除了需要掌握基本的AutoSar架构知识外,还需要熟悉设计和配置AutoSar的工具链。接下来我会以Vector的DaVinci为代表,来讲述实际项目运用中该工具的组成及任务。
一、AutoSar架构简介
下图是博主实际开发中使用到的AutoSar的架构框图,模块有所剪切,并未包含所有模块。
按照从上到下顺序,可分四层:
Application: 应用层,熟称APPL,该层包含用户自定义的组件SWC(软件组件)。 一个SWC就好比一个C文件,用于实现某一需求的,如诊断, 通信,电源管理,开关信号等。
RTE: 可运行环境,它作用是将APPL和基础软件层BSW分隔开来,并为APPL和BSW之间通信提供唯一接口。
BSW: 基础软件层,如下图中红色框内区域。具体底层模块的实现,如操作系统Os模块,网络管理Nm,CanNm模块,ECU管理模块EcuM等。
MCAL: 微控制器抽象层,如下图中绿色框内区域。它是跟硬件最接近的一层,外设驱动文件。例如Can总线的驱动CanDrv,Adc的驱动AdcDrv等。
~
二、开发环境组成
若要完成AutoSar工程的开发必须具备以下资源:
- DaVinci Developer工具
- DaVinci Configurator工具
- SIP集成软件包
1.DaVinci Developer
主要用于AutoSar的APPL层的SWC组件搭建,以及组件间通信接口创建等。
2.DaVinci Configurator
主要用于AutoSar的BSW层的配置;同时也参与了MCAL层以及RTE的配置,例如:Spi的配置片选,通道,时钟等。
3.SIP
Software Integration Package,软件集成包。这个比较特殊,针对于项目以及芯片型号向Vector公司定制购买的(价格不菲,如果涉及到功能安全要求多的,一般这个包的价格在一千万RMB左右。所以玩起来门槛会比较高哈~)
对于一个项目的开发都在这个SIP包内。工程打包也就是把SIP包给压缩。
基于上图的SPI框架分析:
Application: 应用层的一些文件,比如建立的SWC,使用DaVinci Configurator生成的一些配置文件(.c / .h 文件格式)
BSW: 包里自带的基础软件,如诊断服务模块DCM的底层实现。具体功能以及函数的使能是引用了DaVinci Configurator生成的一些配置文件如类似文件名dcm_cfg.h中定义的宏。
BSWMD: 基础软件层各模块的AutoSar格式的arxml文件,如下图
DaVinciConfigurator: 工具Configurator的目录,可以在该目录下启动。
Doc: 一些SIP自带的文档。比如技术文档,安全手册等。
ThirdParty: 该目录中安装了MCAL的代码包。比如ADC的驱动代码文件(最终ADC的功能配置还是在Configurator工具中)。是从芯片供应商那里购买的。安装之后如下图
总结
目前个人评价DaVinci这套工具链:
优点:1,界面简单 2,功能齐全 3,工具比较完善,bug较少。
缺点:1,太贵了,玩家门槛太高。 2,代码封装的太过复杂,对代码理解起来较为吃力。