Autosar入门随笔6——EB的开发

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、EB和S32DS开发的理解
  • 二、S32DS的开发
  • 三、EB的配置


前言

因为Vector开发Autosar的时间较久,博主这几个月都要直接在S32DS进行项目开发了。为了和后期的Autosar对接顺利,所以MCAL也采用EB进行开发。这个章节重点介绍下EB的开发

一、EB和S32DS开发的理解

首先要理解下RTD,RTD可以理解为NXP开发的底层库静态代码。
采用S32DS配置底层,如下界面:
在这里插入图片描述
正常我们只需要配置Drivers就可以对底层进行调用了。这边多了个MCAL,就是对Drivers再次进行了一个封装,让其接口满足Autosar的标准。RTD可以理解为Driver的下一层,RTD的代码正常我们开发人员是不会动的,所以可以理解为NXP的静态代码。
EB开发就是直接一步到位了,比如上图的DIO和PORT,对于EB来说直接导入DIO和Port模块进行配置,他就会生成调用RTD的接口配置文件,而且这个文件是符合Autosar标准的。
总结下,想要开发符合Autosar的mcal可以使用S32DS也可以使用EB,如果只是简单的做个测试程序,不需要符合Autosar标准,直接用S32DS开发Driver即可。

二、S32DS的开发

EB工程输出的只是MCAL接口,其他部分依然需要S32DS编写,比如Main函数,RTD实现等。所以要开发EB首先要配置好S32DS。步骤如下
File–New–S32ds Application project–选择自己的IC
在这里插入图片描述删除工程自带的这些文件
在这里插入图片描述添加上面三个文件夹
在这里插入图片描述
在MCAL里面添加如下文件
在这里插入图片描述
添加filter
在这里插入图片描述
在这里插入图片描述
在setting添加include
在这里插入图片描述

ProjDirPath/Generate/include""{ProjDirPath}/Generate/include" "ProjDirPath/Generate/include""{MCAL_PLUGIN_PATH}/AdcMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/AeMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/BaseNXPMCALMODULENAMESUFFIX/header""{MCAL_MODULE_NAME_SUFFIX}/header" "MCALMODULENAMESUFFIX/header""{MCAL_PLUGIN_PATH}/BaseNXPMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Can_43_FLEXCANMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/CanIfMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/CanTrcv_43_AEMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/CrcMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/CryIfMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Crypto_43_HSEMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/CsmMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/DemMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/DetMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/DioMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/DpgaMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/EcuMMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Eth_43_GMACMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/EthIfMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/EthSwtMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/EthTrcvMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/FeeMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/GduMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/GptMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/I2cMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/I2sMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/IcuMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Lin_43_LPUART_FLEXIOMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/LinIfMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/LinTrcv_43_AEMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/MclMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/McuMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Mem_43_EEPMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Mem_43_EXFLSMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/Mem_43_INFLSMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/MemAccMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/MemIfMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/OcotpMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/OcuMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/OsMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/PlatformMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/PlatformMCALMODULENAMESUFFIX/startup/include""{MCAL_MODULE_NAME_SUFFIX}/startup/include" "MCALMODULENAMESUFFIX/startup/include""{MCAL_PLUGIN_PATH}/PortMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/PwmMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/RmMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/RteMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/SentMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/SpiMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/UartMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/WdgMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/WdgIfMCALMODULENAMESUFFIX/include""{MCAL_MODULE_NAME_SUFFIX}/include" "MCALMODULENAMESUFFIX/include""{MCAL_PLUGIN_PATH}/ZipwireMCALMODULENAMESUFFIX/include"添加编译变量![在这里插入图片描述](https://i−blog.csdnimg.cn/direct/d4dc97b9a05747c5bdfa8d0fb08ca48a.png)配置项目参数1.添加项目宏定义S32K3XXS32K322GCCUSESWVECTORMODEDCACHEENABLEICACHEENABLEENABLEFPU2.设置优化等级并添加Otheroptimizationflags字段:−fno−short−enums−funsigned−char−fomit−frame−pointer−fstack−usage3.设置gcc链接文件,路径是"{MCAL_MODULE_NAME_SUFFIX}/include" 添加编译变量 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d4dc97b9a05747c5bdfa8d0fb08ca48a.png) 配置项目参数 1.添加项目宏定义 S32K3XX S32K322 GCC USE_SW_VECTOR_MODE D_CACHE_ENABLE I_CACHE_ENABLE ENABLE_FPU 2. 设置优化等级并添加 Other optimization flags 字段: -fno-short-enums -funsigned-char -fomit-frame-pointer -fstack-usage 3. 设置 gcc 链接文件,路径是 "MCALMODULENAMESUFFIX/include"![](https://iblog.csdnimg.cn/direct/d4dc97b9a05747c5bdfa8d0fb08ca48a.png)1.S32K3XXS32K322GCCUSESWVECTORMODEDCACHEENABLEICACHEENABLEENABLEFPU2.Otheroptimizationflagsfnoshortenumsfunsignedcharfomitframepointerfstackusage3.gcc"{MCAL_PLUGIN_PATH}/Platform${MCAL_MODULE_NAME_SUFFIX}/build_files/gcc/linker_flash_s32k344.ld”,切记勾选“Do not use standard start files”
在这里插入图片描述
至此S32DS的配置已经完成。

三、EB的配置

EB的新建和添加模块在上面的文章有些
在这里插入图片描述
Resource:选择IC
在这里插入图片描述

支持的Autosar版本如下:
在这里插入图片描述
EB Platform:platform模块主要是对中断的使能,注册回调,监控等功能。回调函数名是固定的,名字在XX_Ip.h
在这里插入图片描述
在这里插入图片描述
MCU模块:配置时钟
在这里插入图片描述
Clock的模式配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Port配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
DIO
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自此,EB的工程就配置好了
最后,只需要使用EB生成代码,并把代码拷贝到S32DS的Generate文件夹即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值