S32K3学习笔记:MCAL的使用与环境搭建详解
S32K3学习笔记_01_MCAL的使用和环境搭建
文章目录
1、S32K3的简介
最近PDU项目中用到了NXP的S32K312芯片,把学习笔记记录下来,欢迎纠错,主要参考小猫爪的博客、芯片手册S32K3xxDS.pdf、参考手册S32K3XXRM.pdf。
1.1、开发环境的介绍
S31K312可以使用S32DS进行SDK方式的开发,EB tresos进行MCAL开发
EB tresos可以为MCAL开发提供图形化配置界面,而S32DS则为SDK开发提供图形化配置界面。
1.2、开发流程
1.2.1、SDK开发流程
#mermaid-svg-qxiHaNFL44VVJRjJ {font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ .error-icon{fill:#552222;}#mermaid-svg-qxiHaNFL44VVJRjJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qxiHaNFL44VVJRjJ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-qxiHaNFL44VVJRjJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qxiHaNFL44VVJRjJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qxiHaNFL44VVJRjJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qxiHaNFL44VVJRjJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qxiHaNFL44VVJRjJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qxiHaNFL44VVJRjJ .marker.cross{stroke:#333333;}#mermaid-svg-qxiHaNFL44VVJRjJ svg{font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qxiHaNFL44VVJRjJ .label{font-family:”trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ .cluster-label text{fill:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ .cluster-label span{color:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ .label text,#mermaid-svg-qxiHaNFL44VVJRjJ span{fill:#333;color:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ .node rect,#mermaid-svg-qxiHaNFL44VVJRjJ .node circle,#mermaid-svg-qxiHaNFL44VVJRjJ .node ellipse,#mermaid-svg-qxiHaNFL44VVJRjJ .node polygon,#mermaid-svg-qxiHaNFL44VVJRjJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qxiHaNFL44VVJRjJ .node .label{text-align:center;}#mermaid-svg-qxiHaNFL44VVJRjJ .node.clickable{cursor:pointer;}#mermaid-svg-qxiHaNFL44VVJRjJ .arrowheadPath{fill:#333333;}#mermaid-svg-qxiHaNFL44VVJRjJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qxiHaNFL44VVJRjJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qxiHaNFL44VVJRjJ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-qxiHaNFL44VVJRjJ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-qxiHaNFL44VVJRjJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qxiHaNFL44VVJRjJ .cluster text{fill:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ .cluster span{color:#333;}#mermaid-svg-qxiHaNFL44VVJRjJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qxiHaNFL44VVJRjJ :root{–mermaid-font-family:”trebuchet ms”,verdana,arial,sans-serif;}
在S32DS配置外设
在S32DS编译
在S32DS中调试
使用其他调试工具
1.2.2、MCAL开发流程
#mermaid-svg-Y4AoU6u2J52gxaHi {font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi .error-icon{fill:#552222;}#mermaid-svg-Y4AoU6u2J52gxaHi .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Y4AoU6u2J52gxaHi .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Y4AoU6u2J52gxaHi .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Y4AoU6u2J52gxaHi .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Y4AoU6u2J52gxaHi .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Y4AoU6u2J52gxaHi .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Y4AoU6u2J52gxaHi .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Y4AoU6u2J52gxaHi .marker.cross{stroke:#333333;}#mermaid-svg-Y4AoU6u2J52gxaHi svg{font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Y4AoU6u2J52gxaHi .label{font-family:”trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi .cluster-label text{fill:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi .cluster-label span{color:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi .label text,#mermaid-svg-Y4AoU6u2J52gxaHi span{fill:#333;color:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi .node rect,#mermaid-svg-Y4AoU6u2J52gxaHi .node circle,#mermaid-svg-Y4AoU6u2J52gxaHi .node ellipse,#mermaid-svg-Y4AoU6u2J52gxaHi .node polygon,#mermaid-svg-Y4AoU6u2J52gxaHi .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Y4AoU6u2J52gxaHi .node .label{text-align:center;}#mermaid-svg-Y4AoU6u2J52gxaHi .node.clickable{cursor:pointer;}#mermaid-svg-Y4AoU6u2J52gxaHi .arrowheadPath{fill:#333333;}#mermaid-svg-Y4AoU6u2J52gxaHi .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Y4AoU6u2J52gxaHi .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Y4AoU6u2J52gxaHi .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Y4AoU6u2J52gxaHi .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Y4AoU6u2J52gxaHi .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Y4AoU6u2J52gxaHi .cluster text{fill:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi .cluster span{color:#333;}#mermaid-svg-Y4AoU6u2J52gxaHi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:”trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Y4AoU6u2J52gxaHi :root{–mermaid-font-family:”trebuchet ms”,verdana,arial,sans-serif;}
在EB配置MCAL
使用编译器编译
在S32DS中调试
其他调试工具
2、下载安装包及软件包
2.1、登录注册
S32K312的开发工具及软件包都是从恩智浦(NXP)的官网下载,地址:https://www.nxp.com/
2.2、搜索安装包
需要下载三样东西:
RTD是什么,Real-time Driver,在S32K1时代,MCAL和SDK是两套不同的软件包,但是到了S32K3,就把两者集成了一下,MCAL和SDK共用一套代码,也就是RTD,意思其实就是这两个软件包里面的底层代码都是一样的。简单的来说,现在K3的MCAL就是在SDK的底层基础上封装了一层符合AUTOSAR标准的接口层。
2.2.1、搜索S32K3 Standard Software
注册登录后,需要搜索S32K3 Standard Software ,如图所示点击S32K3 Standard Software :
2.2.2、下载需要的软件
如下图,点击以下三个下载链接
2.3、S32 DS下载及安装
2.3.1、S32 DS的下载
下载X86 Win64的版本
当然也可以下载最新的安装包,本次只作演示。注意下载时需要记住对应版本的License Keys,安装时使用
2.3.2、S32 DS的安装
2.4、EB Tresos的下载及安装
2.4.1、EB的下载
可以任意选择EB的版本,这里我选则的29.0.0版本
注意:下载时需要记住激活码,安装时使用,如下图所示
2.4.2、EB的安装
下载EB tresos的时候可能会出现浏览器把后缀uip改成了gz的情况,将其修改回uip即可。点击setup.exe,一直next即可。
注意:需要记住其安装路径,后续安装MCAL会用到会用到。
2.4.3、EB的激活
安装完成后,点击EB_Client_License_Administrator_1_4_1_Setup.exe安装激活工具。然后打开激活工具,将之前保存的激活码添加到激活工具中,这样EB tresos就可以正常使用了
(注:激活码为试用版,不能用于项目正式量产,请联系EB购买正式license)。
2.5、MCAL(sdk)的下载及安装
2.5.1、MCAL的下载
对于RTD就下载最新的就好了,这里我选择是3.0.0。
第一个是安装包,第二个SDK软件包,下载即可
2.5.2、MCAL的安装
点击SW32K3_RTD_4.4_R21-11_3.0.0_D2303.exe安装MCAL(SDK),一直Next,直到这一步,将上一步安装的EB tresos的安装路径填进去即可
3、SDK开发实例
3.1、SDK包安装
打开S32DS后,点击Help->Install New Software后将前面下载的SDK软件包Add后,选中后点击Next,如下图所示:
3.2、导入一个Demo
点击File->New->S32DS Project From Example, 选取一个Demo:
可以打开mex文件,打开S32DS的图形化可配置界面进行配置:
3.3、新建SDK工程
第二种方式直接新建一个工程,具体操作如下,点击File->New->S32DS Application Project,选择芯片型号:
然后点击next,选择对于的SDKs
选择正确的SDK后,点击Finish,就新建成功了,可以用来调试和编译了。
可以选择打开刚才新建的工程,进行相关的图像配置。
问题:如果下载的是最新版本的SDK软件包,出现编译会失败,大概率是安装的工具链与SDK软件包的版本不匹配导致的。
解决方法:点击help->check for update,更新S32DS的工具链就能解决了
4、MCAL开发实例
4.1、MCAL软件包组成
找到安装的MCAL(RTD)目录。打开eclipse\plugins文件夹,就会看到很多外设例子,打开一个例子:
各个文件夹内容描述如下:
名称 | 描述 |
autosar | epd文件 |
config | EB配置模板文件 |
doc | 当前外设MCAL的Integration Manual和User Manual |
examples | EB tresos工程Demo和S32DS工程Demo |
generate_PB | PostBuild版模板源文件和头文件 |
generate_PC | PreCompile版模板源文件和头文件 |
generate_swcd | 不太了解 |
include | 当前外设MCAL驱动的头文件—需要移植 |
META-INF | 存放一些meta information相关的文件 |
src | 当前外设MCAL驱动的源文件—需要移植 |
再点击打开examples/EBT,文件目录如下图:
各个文件夹内容描述如下:
名称 | 描述 |
debug | 调试脚本 |
generate | EB tresos生成的代码,其中的src和include—需要移植 |
include | MCAL配套Demo的头文件 |
out | 编译生成的.o文件以及elf可执行文件 |
src | MCAL配套Demo的源文件 |
TresosProject | EB工程文件 |
Makefile | MCAL配套Demo的Makefile |
project_parameters.mk | Makefile的包含文件,注意包含一些路径,配置信息 |
再打开其中的TresosProject文件夹:其中config文件夹里面就包含了当前EB工程的xdm配置文件。
所以当使用EB配置完所有的外设MCAL后,只需要把以下的文件中的源文件和头文件移植到自己的工程中就可以了,分别是:
在上面的表格中,作了标记需要移植字样。
4.2、通过EB配置MCAL并生成代码
在MCAL的实例代码文件夹eclipse\plugins\Pwm_TS_T40D34M30I0R0\examples中,包含为EBT 及S32DS。其中EBT即为MCAL的工程,其中不仅包含了EB tresos的工程,还包括了配套的demo,下面就以其中PWM的例子做示范。
打开EB,并点击File->Import,点击next
然后找到相应的MCAL工程路径,选取自己想要的demo后,点击Finish
之后就是对MCAL进行配置,点击生成代码按钮,就可以生成相应的MCAL代码了。
如果想修改代码的存储位置,如下图所示:
注意:需要使用RTD里面的makefile和配套的MCAL demo的话,修改路径会导致无法通过编译。
4.3、编译配套的MCAL Demo
首先编辑一下examples\EBT\S32K3XX\Pwm_example_S32K344路径下project_parameters.mk脚本文件,修改一下其中的相关路径信息
主要修改以下三个路径:
接下来再把编译工具链路径添加到环境变量中,具体路径如下:
D:\soft\NXP\S32DS\S32DS\build_tools\msys32\usr\bin
接下来就可以进行编译调试了
参考链接
以上内容是学习或者转载摘录小猫爪博客,原文链接:
小猫爪:S32K3学习笔记01-S32K3 RTD【MCAL&SDK】的使用和环境搭建