【S32K 进阶之旅】S32K3 RTD MCAL 开发环境搭建(详细教程)

一、    前言

本文以目前最新版本的软件(SW32K3_RTD_4.4_1.0.0)为例,总结了 S32K3 RTD MCAL 开发环境的搭建过程,包括软件的下载、安装、例程介绍等。

RTD(Real Time Drivers)是NXP官方新出的一个软件平台,它结合了 AUTOSAR 和专有软件体系结构的低级驱动程序,也就是说将以前的 MCAL 和 SDK 合并到了一个软件平台,它带来的好处有:

  • 适用于 AUTOSAR 的高级接口,适用于非 AUTOSAR 的低级接口
  • 兼容 S32 处理器解决方案
  • 符合 ISO26262 功能安全等级(最高可达到 ASIL D)
  • 综合代码质量变高
  • 免费:
    • S32K3 的 MCAL 免费
    • S32K1中 MCAL 有费用,但是使用 RTD 配置 MCAL 是免费的


由于 RTD 保留了两套接口(MCAL 以及 SDK 风格的API),使用的配置工具也有两套(EB Tresos Studio 和 S32 Design Studio),为了区分两种接口,我们使用“RTD MCAL”和“RTD LLD(Low Level Driver)”来将两者区分开,“RTD MCAL”对应 MCAL,“RTD LLD”对应以前的 SDK。LLD 的配置界面已经更加偏向 MCAL 的配置风格了,但是 API 层面还是两套接口,可以让以前 SDK 用户最大程度保持之前的习惯。


我们默认你已经拿到了相关资源包并且获取对应License,你可在NXP 官网上查询是否有此权限。S32K MCAL 相关资源刚开放不久,生态体系尚未完善,安装软件过程中如果遇到错误,可能无法自行找到解决办法,只能全部卸载重新安装,建议你严格按照下文步骤操作。下面我们正式开始。

 

二、    安装准备

1.  软件安装列表

  • EB Tresos Studio 27.1.0

--- MCAL 配置工具

  • S32 Design Studio 3.4.1

--- NXP S32系列的集成开发环境(IDE),可用于工程创建、配置、编译、调试等

  • 4_1.0.0_D2110.exe

--- S32K3 RTD安装包,使用EB Tresos Studio进行配置。

  • 4.1_D2110.zip

--- 适用于S32DS的S32K3的RTD基础开发包。

  • 4_1.0.0_DS_updatesite_D2110.zip

--- 适用于S32DS的S32K3 RTD V1.0.0插件包,使用CT配置。

   需要强调的是,MCAL 和 LLD 软件平台是分开发布的,从软件列表可以看到,MCAL 是 exe 执行程序安装,而 LLD 则是 zip 格式作为 S32DS 的一个插件来安装,这是因为工具链不同。下表列出了两种开发包各自的特点。


Tips:

  • EB Tresos Studio 的版本需要和 MCAL 安装包的 Release note 文档中描述的版本信息保持一致。比如我们下载 RTD V1.0.0插件包,对应 Release note 的第 6 页描述如下图。


2.  软件 License 权限申请

请联系 NXP 官方获取权限,获取权限后不需要特殊的 License。如果还没有 NXP 账号,请先注册。


3.  软件下载

申请到权限后,进入NXP 官网,如下图所示步骤依次点击红框里的链接,登录你的账号并找到你有权限的软件包下载界面。或者直接点击此链接,登录后会自动跳转到下载界面。


我们要下载的软件在上图两个红框里。先点击第一个链接进入RTD下载页面。

 

  • RTD 下载

我们可以看到有好几个版本的 RTD,本文基于1.0.0 版本进行讲解。点击 “S32K3 Real Time Drivers Version 1.0.0” 进入,然后点击“I Agree”进入下载页面。如下图所示,如果只安装 MCAL,则下载“SW32K3_RTD_4.4_1.0.0_D2110.exe”即可,如果想要使用 S32DS 配置 LLD 组件,则需要下载安装“SW32K3_RTD_4.4_1.0.0_DS_updatesite_D2110.zip”。两种文件暂时都不需要 License。


  • EB Tresos Studio 下载

回到 “S32K3 Standard Software”页面,点击链接下载 “EB Tresos Studio” 27.1.0版本的软件包,然后点击“I Agree”进入下载页面。


如上图所示,页面标黄处显示 License号,每三个月会更新一次。上图的文件建议全部下载,尤其是红框内的 .uip 文件。受下载环境影响,uip 文件格式可能会被修改,比如Chrome浏览器会让uip格式变成gz格式的文件,只要将后缀改回uip即可。

 

  • S32 Design Studio 下载

回到 “S32K3 Standard Software”页面,点击“S32 Design Studio”,然后点击下图红框,点击“I Agree”进入基础开发包(SW32K3_S32DS_3.4.1_D2110.zip)下载页面。


在这里你只能找到基础开发包(SW32K3_S32DS_3.4.1_D2110.zip),不包括 S32DS 的主安装包,先下载它,我们再回到 3.4 的链接里找到下载安装包,如下图所示。


我们看到有 Windows(箭头所指)和 Linux 环境下的安装包,根据你实际使用的平台来下载。上面两个.zip 文件是 3.4.1 之前的旧版本,不需要下载。在“License Keys”页面有对应的 License,安装的时候会用到,建议提前保存。

 

三、    软件安装

软件下载完成后开始安装,注意先安装EB Tresos Studio,再安装RTD,因为安装 RTD/MCAL 的时候需要填写 EB 的安装路径(生成link文件以进行绑定)。

1.  安装 EB Tresos Studio

运行“setup.exe”,一路默认安装。如果你安装了多个版本的 EB,在选择路径的时候选择独立路径进行安装,可以将默认的文件名加个版本号便于区分(比如:C:\EB\tresos_27.1.0),安装完成后弹出“installation successful”提示框。


安装后运行:EB_Client_License_Administrator_1_4_1_Setup.exe,安装过程中选择:☑ Use License Activation Codes。安装完成后,通过开始菜单搜索 EB Client License Administrator 启动,如下图所示。


使用之前下载软件时获取的激活码进行激活。在Activation Code输入框中输入激活码,然后点击右侧Activate按钮进行激活。激活过程中报错的话,可以尝试关闭防火墙、关闭 VPN、或者换个时间多尝试几次,可能和服务器或翻墙工具有关。

2.  安装 RTD/MCAL

运行安装文件“SW32K3_RTD_4.4_1.0.0_D2110.exe”,根据提示默认安装直到选择你的EB安装目录,如果你安装了多个版本的EB,千万别选错了路径。

如果你安装了多个RTD版本/软件包(包括热修复(HF)程序/修补程序(Patch)),安装后需要删除“path/to/EB/links”文件夹中的链接文件,只保留要使用的软件包的链接文件,否则,它将识别错误的软件包。

3.  安装 RTD/LLD

如果你需要使用LLD的组件进行开发,那就需要在S32DS里面安装相应的软件包。S32DS软件的安装不再赘述,打开安装包按照默认路径安装,并填入对应的“License Keys”将软件激活即可。注意,如果安装过S32DS 3.4 之前的版本,需要修改安装路径以保证。下面我们安装刚刚下载的 zip 包,这两个包的安装是有顺序要求的。

  • 先安装:SW32K3_S32DS_3.4.1_D2110.zip(RTD基础开发包)
  • 再安装:SW32K3_RTD_4.4_1.0.0_DS_updatesite_D2110.zip(RTD V1.0.0 插件包)

打开S32DS 3.4,进入菜单栏“Help”->“Install New Software”,按下图步骤添加安装包,安装完成后根据提示需要重启S32DS。注意必须按上述顺序安装,图例仅为第二个插件包的安装步骤。





四、    示例工程

S32K3的软件包为每个模块提供了示例项目,它们位于安装目录中每个模块文件夹下的示例文件夹中。包含两种类型的项目,一种用于MCAL,另一种用于LLD,请注意每个项目文件夹中的readme.txt。接下来我们以 DIO 模块为例展开介绍。

1.  例程分类介绍

到 RTD 的安装目录下(指RTD/MCAL的安装路径)找例程,如果你是按照默认路径安装的软件,它会在“C:\NXP\SW32K3_RTD_4.4_1.0.0\eclipse\plugins”中。进入DIO模块的例程文件夹中“Dio_TS_T40D34M10I0R0” ->“examples”,你会发现有两个文件夹“EBT”(MCAL的例程)和“S32DS”(LLD的例程)。每个模块的例程文件夹可能包含不同数量的工程。


需要注意的是,MCAL的例程使用makefile编译(本文使用S32DS安装目录下的编译工具链),而S32DS的例程使用S32DS配置及编译调试,它属于LLD风格的组件,而不是MCAL。

 

2.  修改编译脚本

本文只演示EBT中MCAL工程的脚本修改,不涉及LLD工程,LLD工程是直接通过S32DS进行编译的。进入“Dio_ToggleLed_S32K344”文件夹,并拷贝此路径:“C:\NXP\SW32K3_RTD_4.4_1.0.0\eclipse\plugins\Dio_TS_T40D34M10I0R0\examples\EBT\Dio_ToggleLed_S32K344”。其他模块也类似,都位于各自模块的相应路径下。项目根目录里面有一个“readme.txt”文件,建议先阅读该文件,了解一些基础信息。里面也描述了修改脚本的相关内容,有些地方不太准确,请以本文为准。编译时生成的文件会放在“out”文件夹中。

接下来修改脚本。打开根目录中的 “project_parameters.mk”文件,修改下面三个变量的值(假设你是默认安装):

  • GCC_DIR =C:/NXP/S32DS.3.4/S32DS/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi
  • TRESOS_DIR = C:/EB/tresos_27.1.0
  • PLUGINS_DIR = C:/NXP/SW32K3_RTD_4.4_1.0.0/eclipse/plugins

注意:路径中的斜杠/反斜杠,必须是Linux风格,Windows里面的路径复制出来和上面是相反的。如果保持Windows风格,在编译过程中会报错。

 

    Tips

  • 上面 GCC_DIR 的路径需要和 GCC 10.2 包的安装路径保持一致。如果你没有 GCC 10.2,那就打开 S32DS 3.4,进入菜单栏“Help”->“S32DS Extensions and Updates”安装对应GCC包,如下图所示。
  • TRESOS_DIR是EB Tresos Studio的安装目录,如果路径和你的不一样,请自行修改。
  • PLUGINS_DIR在readme.txt文件描述的部分有误,readme文件中写的是EB安装路径下的plugins文件夹,但是按照默认路径安装的话,应该是我们RTD/MCAL安装包里的plugins文件夹路径,除非你手动修改过。官方强烈建议按照默认路径安装,这样每个版本的RTD都可以装到独立的文件夹中,并使用链接文件进行绑定,避免混淆。

 

3.  生成配置代码

现在我们开始生成配置代码,你可以选择打开EB Tresos,导入工程并生成代码。本文介绍一种不需要打开EB的配置方式,它更加简洁,方便以后调试。首先需要检查你是否有安装make工具链,“Win+R”快捷键打开命令行窗口(cmd.exe/powershell.exe),切换工作目录到“C:\NXP\SW32K3_RTD_4.4_1.0.0\eclipse\plugins\Dio_TS_T40D34M10I0R0\examples\EBT\Dio_ToggleLed_S32K344”,输入“make”命令后敲回车。


如果提示不能识别该命令,则说明没有安装。你可以选择安装主流的make工具,也可以选择使用我们S32DS自带的make系列工具,我们只需要将对应的路径添加到环境变量里面即可。拷贝该路径“C:\NXP\S32DS.3.4\S32DS\build_tools\msys32\usr\bin”并添加到系统环境变量中。右键“开始菜单”,点击“系统”,搜索找到“系统环境变量”选项之后操作步骤如下。


验证make工具链没问题后,我们开始生成配置代码,重新运行PowerShell,输入“make generate”,生成完成后,会提示有没有错误,如下图所示:


从上图可以看到,在生成代码的过程中包含多个步骤,每个步骤都有相应的错误提示信息:
       ①删除工程;②导入工程到workspace中;③生成代码

如果以上有某个环节报错,会有错误提示信息,可以根据线索解决问题。例如,“Workspace is currently in use by another Eclipse application.”代表需要关闭 EB Tresos Studio 软件。

4.  编译

在PowerShell中输入“make build”命令开始编译,如果编译没有出错,则会在根目录下的“out”文件夹里生成对应的“*.elf”文件,找到它。

5.  调试目标建立

打开S32DS,我们可以不用创建工程,只新建一个调试目标,也可以选择在S32DS中创建工程。下面介绍如何配置调试目标,如果你需要创建工程,点这里跳转。

  • 设置调试目标

如图打开调试配置窗口。如果没有可参照的调试目标,右键 “GDB PEMicro Interface Debugging”选择“New Configuration”新建调试目标;如果有参考目标可以右键目标选择“Duplicate”。为工程重命名,并将Main窗口中的elf文件路径配置到工程路径。


新建调试目标的话,需要切换至“PEmicro Debugger”标签页,将Executable设置为“${S32DS_GDB_ARM32_EXE}”,并选择好调试器接口和芯片型号,建议无论是不是新建的都要将这几个地方检查一遍,如下图。


以上步骤完成后就建立好了调试目标,如果你需要创建工程,请继续阅读下文。如果开始调试,请直接跳转到第6小节


  • 创建工程

通过创建工程来新建调试目标,如下图所示。输入工程名,选择芯片型号以及编译器版本,根据Release Note文档的描述,我们需要使用10.2版本的GCC。不用选择SDK,Debugger选择你使用的调试器,目前默认支持 PE 和 J-Link,点击“Finish”工程就创建好了。


之后打开调试配置窗口,展开GDB调试接口,你会发现已经自动创建好了4个调试目标,按照上文“设置调试目标”小节步骤操作即可,这里不再赘述。


6.  例程功能演示

我们使用 NXP S32K3X4EVB-Q257 开发板来演示例程。打开例程文件,通过“main.c”中的这段代码我们可以知道,开发板的D32、D33 RGB小灯的红灯(对应MCU 的 PTA29、PTB18引脚)会以1S为周期闪烁10次。

使用 Multilink 下载器连接开发板(J52)和电脑,并将开发板上电,如下图所示。


上小节最后,在“Debug Configurations”->“PEmicro Debugger”标签页确认好调试器接口等信息,点击“Debug”进入下图界面。点击红框内的绿色运行按键,下载程序。
 
我们可以看到开发板的D32、D33 亮红灯,并以1S为周期闪烁10次后灭灯,程序下载成功。

本次 S32K3 RTD MCAL开发环境搭建的所有内容就到这里。关于 RTD LLD示例工程的应用,涉及到工程导入、CT(Configuration Tool)的配置等内容,之后会单独建立一篇文档再详细展开,我们下次继续。

 

五、    参考文档

[1] NXP S32K3XX RTD开发环境搭建引导, NXP

[2] S32 Design Studio for S32 Platform 3.4, Rev. 1.0, 12/2020, NXP

[3] S32K3xx Development Package 3.4.0, Rev. 1.0, 12/2020, NXP

[4] Release Notes for S32K3 RTD Version 1.0.0, 10/2021, NXP

[5] EB tresos® installation guide, Version 2.4.0, Elektrobit

[6] S32K3X4EVB-Q257_PackRevD - Schematic, Rev. A1, 11/2020, NXP

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

N1gel

N1gel

21 天前
很棒的分享,谢谢!
gathon

gathon

2022年7月16日
真是太详细了,学到了,谢谢分享!
Kakera

Kakera

2022年3月9日
哟吼