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文件夹即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值