前言
在基于AutoSar CP架构开发MCAL时,会使用到EB tresos工具。本文主要对MCAL开发及EB tresos工具使用进行总结,仅作为自学使用,以方便后续查漏补缺。
MCAL开发流程
开发流程简述
硬件需求分析
- 选择MCU型号(如英飞凌TC3x、NXP S32K),明确外设资源(CAN通道数、ADC精度等)
工具链配置
- 使用AUTOSAR工具(如Vector DaVinci Configurator、EB Tresos)生成MCAL配置代码,包括:
- 定义引脚映射(如Port模块的配置)
- 设置通信参数(如CAN波特率、报文ID过滤)
- 配置中断优先级、DMA通道等
代码生成与集成
- 集成静态代码,工具生成的动态代码,以及手写的复杂驱动代码
测试验证
配置工具
- EB tresos studio:生成MCAL动态代码
- 简介
- EB tresos 是一款经典的AUTOSAR软件开发环境。
- 配置软件模块、验证配置的一致性。如:配置MCAL
- 为标准软件模块代码生成。如:AUTOSAR标准软件内核
- 参考
- https://blog.csdn.net/qq_44705488/article/details/129672224
- https://cloud.tencent.com/developer/article/1956704
- 参考
- 辅助工具
- EB Client License Administrator
- 作用:激活EB tresos studio
- EB Client License Administrator
- 简介
芯片开发包
- MCAL包,如:英飞凌 TC3;NXP S32K14x
- MCAL驱动代码
- 配置文件(用于EB生成配置界面)
MCAL层代码
- MCAL层代码 = 配置代码 + 驱动代码
- 配置代码:使用MCAL配置工具EB生成的代码,即动态代码
- 驱动代码:在芯片开发包中获取的代码,即静态代码
开发环境搭建
EB工具
- 下载、安装并激活EB配置工具
- 续期
- 官网复制激活码,重新激活,然后重新打开EB工具
链接:https://nxp.flexnetoperations.com/control/frse/download?agree=Accept&element=9282097
- 官网复制激活码,重新激活,然后重新打开EB工具
MCAL包
英飞凌 TC3x
- 参考:https://blog.csdn.net/SDX_2019/article/details/125180978
- 下载MCAL包:https://gitcode.com/open-source-toolkit/45b8b
- 安装步骤
- 参考:https://blog.csdn.net/SDX_2019/article/details/125180978
- 安装MCAL的base包(组件基础包)
- 把插件全部复制到EB安装目录下
- 安装MCAL的com-e包(通讯组件包)
- 把插件全部复制到EB安装目录下
- 安装MCAL的cd包(复杂驱动组件包)
- 把插件全部复制到EB安装目录下
- MCAL包说明,参考:https://blog.csdn.net/a1906681180/article/details/131604017
注:获取不到MCAL包的 license,暂无法进行后续验证!!!
NXP S32K14x
- 参考:
- https://blog.csdn.net/qq_43629659/article/details/132796298
- https://blog.csdn.net/ningmoon/article/details/136679871
- 下载并安装MCAL包
- 一定要获取MCAL包的License文件
注:需注册NXP账号;以S32K14x系列芯片为例;AUTOSAR4.2 MCAL IOS 26262。
MCAL开发
- 参考:
https://blog.csdn.net/a1906681180/article/details/131604017
https://blog.csdn.net/qq_52479948/article/details/146141365 - 创建EB工程
- 可以创建新的工程
- 创建工程时,按需选择对应的芯片型号
- 如:S32K144
- 创建工程时,按需选择对应的芯片型号
- 也可以导入安装MCAL时自带的工程作为基础工程
- 以基础工程为基准进行修改
- 可以创建新的工程
- 选择需要的模块,进行参数配置
- 如:mcu(时钟)、DIO、Port、SPI等
- 注:配置工作比较麻烦,尝试配置了MCU,但校验一直出错,后续再尝试???
- 校验 & 代码生成
- 导入NXP示例工程,校验 & 代码生成都是OK的。
- 至此,MCAL层的代码都有了 = EB生成的动态代码 + MCAL包中的静态代码
- 代码集成
- 将生成的MCAL动态代码放到EB工程指定目录下
- 注:示例工程中已包含main.c和其他用户文件。
- 用户文件,配置列表,见:files.mak
- MCAL模块,配置列表,见:Modules.mak
- 编译
- make,生成elf文件
- 验证
- 把elf文件拷贝到S32DS工程中,连接开发板进行Debug调试
- 疑问:
- 为啥不直接在S32DS中生成elf???S32DS不支持ATUOSAR MCAL开发???
- 模板程序中是不是不包含AUTOSAR结构中的SWC、RTE,而是直接写用户程序来调用MCAL接口???如果是这样,那这部分只是验证了MCAL的开发流程,并没有走完整个AUTOSAR CP的开发流程???—还需要继续研究。。。
- 疑问:
- 把elf文件拷贝到S32DS工程中,连接开发板进行Debug调试
常见问题
- Q:创建工程时,Target下拉选项为空
A:需先安装对应的MCAL包,把MCAL安装包中的插件全部复制到EB安装目录下,然后重新打开EB - Q:1.0.6的MCAL包没有示例工程
A:看网上说1.0.0的MCAL包才有示例工程,需要安装1.0.0的MCAL包 - Q:导入NXP示例工程后,加载参数失败
A:如果先安装了1.0.6的MCAL包,再安装了1.0.0的MCAL包,需要删除1.0.6的包,并重新打开EB工具
参考
- https://blog.csdn.net/qq_52479948/article/details/145971803