AUTOSAR-S32DS V3.5建立工程EB Tresos Studio配置MCAL实现S32K310的PORT控制

 一、使用S32DS建立工程

      前面已经有提及,可根据下图所示步骤建立工程。

      选择7是因为保留了通过S32DS配置MCAL配置的方法。接下来添加必要的文件。

         

        右键工程名,选择“Properties -> Build Variables”并添加两项变量
           “MCAL_MODULE_NAME_SUFFIX” 字段 “_TS_T40D34M40I0R0”
           “MCAL_PLUGIN_PATH” 路径 “C:\NXP\SW32K3_RTD_4.4_R21-11_3.0.0\eclipse\plugins”
       这样配置的好处是,如果S32K3 RTD MCAL 软件包有版本更新,在此处修改路径和模块后缀即可。

        添加项目宏定义

S32K3XX

S32K310

GCC

USE_SW_VECTOR_MODE

D_CACHE_ENABLE

I_CACHE_ENABLE

ENABLE_FPU

在“Properties->Settings->Standard S32DS C Compiler->includes”中依次添加头文件路径,将工程链接到 S32K3_RTD_MCAL 软件包所有模块的头文件,记得 EB tresos 配置生成的头文件路径 "${ProjDirPath}/Generate/include" 也需要添加。

最好使用相对路径(必须是 Linux 风格的斜杠/反斜杠)例如:

        "${MCAL_PLUGIN_PATH}/Adc${MCAL_MODULE_NAME_SUFFIX}/include" 也就是“C:\NXP\SW32K3_S32M27x_RTD_R21-11_4.0.0_P19\eclipse\plugins\Adc_TS_T40D34M40I0R0\include”。

"${ProjDirPath}/Generate/include"

"${MCAL_PLUGIN_PATH}/Adc${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Ae${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/BaseNXP${MCAL_MODULE_NAME_SUFFIX}/header"

"${MCAL_PLUGIN_PATH}/BaseNXP${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Can_43_FLEXCAN${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/CanIf${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/CanTrcv_43_AE${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Crc${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/CryIf${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Crypto_43_HSE${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Csm${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Dem${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Det${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Dio${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Dpga${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/EcuM${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Eth_43_GMAC${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/EthIf${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/EthSwt${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/EthTrcv${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Fee${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Gdu${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Gpt${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/I2c${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/I2s${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Icu${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Lin_43_LPUART_FLEXIO${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/LinIf${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/LinTrcv_43_AE${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Mcl${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Mcu${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Mem_43_EEP${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Mem_43_EXFLS${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Mem_43_INFLS${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/MemAcc${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/MemIf${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Ocotp${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Ocu${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Os${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Platform${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Platform${MCAL_MODULE_NAME_SUFFIX}/startup/include"

"${MCAL_PLUGIN_PATH}/Port${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Pwm${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Rm${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Rte${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Sent${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Spi${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Uart${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Wdg${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/WdgIf${MCAL_MODULE_NAME_SUFFIX}/include"

"${MCAL_PLUGIN_PATH}/Zipwire${MCAL_MODULE_NAME_SUFFIX}/include"

这里根据需要用到的驱动包进行添加相应的内容。

设置优化等级并添加 Other optimization flags 字段:

            -fno-short-enums -funsigned-char -fomit-frame-pointer -fstack-usage

设置完编译等级后,需要增加器件的链接文件。

 其他杂项可根据你的需求进行设置。

 二、EB建立工程

      1、打开 EB tresos 新建工程,取消勾选默认路径,选择之前在 S32DS 建立的工程目录中的 Tresos_Project 文件夹,注意这里封装了两层。
      2、输入 ECU ID,目标是 S32K3xx,将默认生成代码的路径改成“..\..\Generate”,链接到之前在 S32DS 工程中建立的 Generate 文件夹。
      3、勾选“在列表中添加最小数量的子元素”,创建工程阶段我们先不添加任何模块,直接点“Finish”。(添加模块会报错
      4、如果前面忘记配置生成路径,也可以在建立好工程之后,右键工程名选择“Properties”并修改“Generation Path”。

1、Resource模块配置

在Resource模块中修改平台,博主使用的是S32K310芯片。

添加所需要的模块到右侧配置窗口,本文针对IO进行测试,因此仿照历程添加模块。

2、Port模块配置

此处给出LED1端口配置,LED2、LED3端口配置相同。

编程引脚配置

3、Platform模块配置

      使用默认值即可,本模块主要配置中断 。

4、MCU模块配置

本模块主要配置时钟,需要参看用户手册,配置各个模块外设时钟。

配置时钟源,使用默认即可,需要注意的是FXOSC需要根据板载晶振配置。

这里配置时钟需要根据用户手册时钟树进行,特别需要注意时钟的最大最小值。

使用HSE时钟的时候FIRC under MCU control应取消勾选。

HSE_CLK为120MHz时,必须写DCP。

#if HSE_CLK_CONFIG_ENABLE
    uint8_t isConfigPLL = 0;
    if( 1 == isConfigPLL )
    {
        /* check your external crystal freq, if not 16M, need to change */
        HsePort_ConfigHseClkIf( (hsePort_HseClkIf_t*)&gHseClkIfCfg );
    }
#endif

5、BaseNXP模块配置

6、Dio模块配置

7、生成配置源码

三、S32DS编译工程文件

从Link_Source文件中移除不适用的模块。

link_source需要保留以下配置驱动包。

从RTD安装目录里面找到Dio的例程中EB文件夹下的main.c文件拷贝到我们建的工程中。在c 中注释掉两行代码“#include "check_example.h"”和“Exit_Example(TRUE);”,修改我们的功能代码,现在程序可以正常编译烧录,一个可使用 S32DS 调试的 EB MCAL 工程就创建完成了。修改main文件中的端口,可以实现对端口的控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值