使用S32DS集成S32K的MCAL

一、软件准备

前往恩智浦官网下载MCAL软件包、EB Tresos 、以及S32DS IDE:

以下软件均有NXP免费提供,但需注册账号获取

S32DS IDE下载

 EB Tresos以及MCAL下载

S32DS版本为:S32 Design Studio 3.2

其中EB Tresos版本为:24.0

MCAL版本为:S32K14X_MCAL4_2_RTM_1_0_0

NXP MCAL软件包后缀说明:HF为补丁版本 RTMC为发布版本

 软件安装请参考:NXP_AUTOSAR_MCAL开发环境搭建引导

二、创建基于S32DS的MCAL SDK

本部分引用:S32DS创建自己的SDK_斯蒂芬杜的博客

创建SDK

        首先打开S32DS,进入工具栏Window -> Preferences -> SDK Management -> Add。如下图:

        点击Add后,会弹出下图窗口,参照下图输入SDK信息。下图右侧的路径需要注意不能包含空格。图片中写的精确到plugins文件夹是为了减小SDK大小,去除外层不必要的文件。也就是说理论上精确到eclipse的上层主目录也是可以的。

在这里插入图片描述 

        输入完信息后,点击上图右侧2处的OK按钮,回到上图左侧的主界面,将窗口拉大(拉大窗口有时可能反映非常迟钝,需要多次操作),会发现下面识别到了你的代码,如下图:在这里插入图片描述

        接下来我们需要将静态代码使能,建议使能所有模块,如果实际工程有些模块不使用,到时候在实际使用工程里面去关掉即可。除了使能,建议将Copy功能也打开,打开Copy功能后,新建工程时会自动拷贝一份代码到工程目录下,否则只是一个链接,这样当某些项目碰到某些特殊情况需要修改SDK代码时,不会影响其他项目。

        如上图,先进入Sources标签页,凡是以generate开始的文件夹都不要选择(图1处),只需要选择src文件夹(图2处),点击src右侧的x图标(图3处),会自动将文件夹下所有.c文件选中(当然也可一个一个文件选中),同时每个文件后面的Copy列会自动激活让用户选择,这里需要每个文件单独勾选(图4处)。然后切换到Headers标签页(图5处),和Sources下面一样,只勾选include文件夹下面的文件,generate开始的文件夹不要勾选。

然后切换到Defined symbols标签页,这里可以定义一些常用的全局宏,点击图6处的➕,根据需要输入即可。这里输入后会自动添加到工程属性里面。也可以后面在项目工程属性里面去单独配置。设置完这些后,点击OK按钮完成配置(图7处)。

SDK打包好后,即可在SDK列表里面会发现,在新建工程过程中可选择使用。

导出SDK

前面章节讲解了如果制作的问题,但是制作好了只能自己使用,如果只能自己使用,显然这并不满足当前这种团队合作的需求。实际上我们可以导出你的配置给团队其他成员使用。

回到我们新增SDK的界面:工具栏Window -> Preferences -> SDK Management。

在该界面中除了Add功能外,实际下还有Import,Export等功能。

点击Export…按钮。然后输入导出保存路径。如果你的伙伴在相同路径(你创建SDK时的原始代码路径)下已有代码(代码目录结构必须完全一致),那么你可以单纯导出配置信息(只会生成一个xml文件),只需要勾选Export only SDK descriptor选项即可,否则不要勾选该选项(会生成一个压缩包)。如下图:

在这里插入图片描述 
导入SDK

当你拿到其他伙伴导出的压缩包后,还是进入上面章节提到的界面:工具栏Window -> Preferences -> SDK Management。点击Import…按钮。在弹出的窗口中,有两种导入方式可供选择,一种是From ZIP file;另一种是From directory。如果导出时是整个包导出(没有选择Export only SDK descriptor选项),则选择第一种导入方式(浏览导出的压缩包)。否则选择第二种方式导入(浏览导出的xml文件)。浏览路径这些操作不再赘述,注意不要有空格。如下图:

上图下半部分的窗口请选择Default(SDK folder)选项,实测下来(S32DS ARM 2018.R1版本)第二个选项不启用,就算你勾选第二个选项,还是会在上一个窗口设置的路径下(也就是本窗口的Default路径)生成。

在这里插入图片描述

三、创建S32K144 MCAL工程

1.创建工程

 

2、EB Tresos工程创建(配置一个引脚用于点亮LED)

详细配置请参考S32K1XX系列单片机 ——(2)用EB配置MCAL_老孟_的博客-CSDN博客_eb mcal使用

 此处我以上将配置好的工程上传到了网盘(其中要注意的是调试Debug引脚必须配置,否则后续无法下载程序):

链接:https://pan.baidu.com/s/1xdqYAflFajWaMwAKgRcAMA?pwd=MCAl 
提取码:MCAl 

配置完成后点击生成代码

3.S32DS工程配置

 

 4、编写应用程序

编写main函数

/*
 * main implementation: use this 'C' sample to create your own application
 *
 */







#include "Mcu.h"
#include "Port.h"
#include "Dio.h"


extern CONST(Mcu_ConfigType, MCU_CONST) McuModuleConfiguration;

void TestDelay(uint32 delay);
void TestDelay(uint32 delay)
{
   static volatile uint32 DelayTimer = 0;
   while(DelayTimer<delay)
   {
       DelayTimer++;
   }
   DelayTimer=0;
}

/**
* @brief        Main function of the example
* @details      Initializez the used drivers and uses the Icu
*               and Dio drivers to toggle a LED on a push button
*/
int main(void)
{
    /* Initialize the Mcu driver */
    Mcu_Init(&McuModuleConfiguration);

    Mcu_InitClock(McuClockSettingConfig_0);
#if (MCU_NO_PLL == STD_OFF)
    while ( MCU_PLL_LOCKED != Mcu_GetPllStatus() )
    {
        /* Busy wait until the System PLL is locked */
    }

    Mcu_DistributePllClock();
#endif
    Mcu_SetMode(McuModeSettingConf_0);
    /* Initialize all pins using the Port driver */
    Port_Init(&PortConfigSet);
//
    while (1)
    {
        /* Get input level of channels */
    	Dio_WriteChannel((Dio_ChannelType)DioConf_DioChannel_LED_G, (Dio_LevelType)STD_HIGH);
        TestDelay(2000000);

        Dio_WriteChannel((Dio_ChannelType)DioConf_DioChannel_LED_G, (Dio_LevelType)STD_LOW);
        TestDelay(2000000);
    }
    while(1);
    return (0U);
}

 编译下载

 如上图所示LED成功点亮。

三、参考文章

(70条消息) S32K1XX系列单片机 ——(2)用EB配置MCAL_老孟_的博客-CSDN博客_eb mcal使用

(70条消息) S32DS创建自己的SDK_斯蒂芬杜的博客-CSDN博客_s32ds

(70条消息) NXP_AUTOSAR_MCAL开发环境搭建引导_S32K14x系列_斯蒂芬杜的博客-CSDN博客_autosar开发环境如何搭建

(70条消息) 使用S32DS集成MCAL_斯蒂芬杜的博客-CSDN博客_s32ds激活码

四、工程参考

本文所涉及的工程文件以上传到网盘(提取码MCAL):

S32DSProject:https://pan.baidu.com/s/1fi07MxfTd4ddJCIx4lKCTg?pwd=MCAl

EB Project:https://pan.baidu.com/s/1mP7I3cAgk5SfRmPGUO-LNg?pwd=MCAl

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值