S32K3 工具篇1:新手如何安装S32DS RTD4_0_0
大家好,我是火山,一个从事嵌入式行业多年的菜鸟工程师,做过8bit,16bit,32bit MCU相关应用项目。目前深耕32bit ARM内核MCU,32bit MCU接触的有NXP 的kinetis L,K,M,KW等系列,LPC,I.MX RT,自学了些I.MX 6ULL 嵌入式linux知识。目前,由于职业规划战略调整,准备进军AUTO MCU,所以从NXP S32K3系列开始学习,在此分享自己的S32K3学习历程。
工欲善其事,必先利其器!首先,需要构建S32K3的编译环境,了解SDK的情况。当然S32K3的编译环境和SDK的情况比较复杂(凌乱),看关键字就有一堆,如果全部糅合在一起,就很乱,很容易懵了。比如,关键字有:S32DS, RTD, LLD, MCAL, EB tresos, AUTOSAR, 各种软件安装包,更新包,依赖包等等。所以,为了梳理结构,需要明确目标:我现在有啥?我想干啥?我要做啥?
好,新手咱也不扯那么多,先了解几个概念:
S32DS: IDE,用来编译代码的,就像IAR, MDK,但是这个IDE它厉害啊,它有配置工具(CT),直接通过GUI界面勾勾选选就能帮你生成代码了,你不需要用传统思维,去扒着寄存器搞。
RTD: Real Time Driver, 就是SDK,第一想法,你为啥就不叫SDK呢?多熟悉?这是有原因的,因为它比SDK更厉害,它有两把刷子:MCAL和SDK风格的API,即RTD MCAL, RTD LLD(Low Level Driver), RTD MCAL 对于MCAL 驱动,RTD LLD对应我们常规理解的SDK驱动。好,MCAL是啥玩意?
图1
MCAL:MCAL就是在SDK的基础上,又封装了一层符合AUTOSAR标准的接口层,它是这个样子的:
图 2
**AUTOSAR:**汽车开放系统构架(Automotive Open Sytem Architecture),此处省略一万个字,因为我还不会,待我慢慢学习,知道的就是用来做软硬件分离,标准化应用软件和底层软件直接的接口用的。
EB tresos: 这是另外一个配置工具,是用来配置完全满足MCAL的驱动的,据说S32DS的MCAL配置还是不如EB tresos配置生成代码那么能满足AUTO SAR接口。
作为一个auto MCU小白,我现在手上有一个S32K344的板子:S32K3X4EVB
图 3
这个板子有一个板载的opensda debugger,我想用这个板子,用IDE编译一个工程,然后下载进去,完成我的第一次auto MCU体验。
那我缺啥?除了板子,啥都缺,没有IDE,没有SDK,那就开始造起来!
本文目标:安装S32DS+RTD4.0.0(LLD,暂不涉及MCAL), 并且利用RTD4.0.0自带的例程,下载到现有的S32K344板子上。
一, 软件下载
软件需要下载的有:IDE, RTD,以及相关的乱七八糟插件,依赖包。
看了一些文档,说先注册了www.nxp.com的账号,然后就能在“My NXP Account”->Software下面找到RTD了,但是我第一次进去,空空如也,啥也没有。所以,我用我的惯性思维,直接去找IDE和RTD。
1.1 RTD 下载
首先找到S32K3页面:
https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-general-purpose-mcus/s32k3-microcontrollers-for-automotive-general-purpose:S32K3
然后,在software里面点击:S32K3 Standard Software
图 4
图 5
进来,看到两个和我目标相关的了:S32 Design Studio, S32K3/S32M27X-Real-Time Drivers for Cortex-M
先去RTD: S32K3/S32M27X-Real-Time Drivers for Cortex-M
一看一堆RTD,我要下载哪个呢?各种版本,和PXX,HFXX。经过咨询,基础版本,常用版本的有3.0.0, 4.0.0, PXX都是patch包,用来更新基础版本的,HFxx是快速更新包,这个patch,HFxx按道理是包含了基础版本了。但是,实际使用下来,直接按照,总是差这个,差那个,所以,为了安全起见,还是下载基础包靠谱,大不了再去打patch,这里我选择用最新的基础包4.0.0:
4.0.0 S32K3_S32M27x Real-Time Drivers AUTOSAR R21-11 Version 4.0.0
图 6
图 7
下载上面提到的两个包:
SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_DS_updatesite.zip
SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_ReleaseNotes.pdf
第一个.exe是给EB tresos用的。
打开SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_ReleaseNotes.pdf,看看这个RTD 4.0.0到底需要哪些包和依赖,然后,咱下好对应的包做准备。
因为我用的是S32K344,那么我需要如下几个包,其他系列等用到再去装也不迟:
图 8
好,知道了,需要装S32DS 3.5, 还有它的update,以及development
目前到这里,以及下载了图8第4项,RTD:
SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_DS_updatesite.zip
下面再去分别下载1:S32DS IDE,2:S32DS 更新包,3:S32K3XX development 包
1.2 S32DS IDE 和 更新包 下载
直接网址:https://www.nxp.com/s32ds
图 9
选择第一个,这个是供S32K3使用的,进去点击download,会发现一堆的update,不着急,慢慢往下找,找到S32 Design studio 3.5-windows
图 10
图 11
图 12
分别下载1,2项。1就是IDE的安装包。2就是之前图8提到的第2项更新包。
得到:
S32DS.3.5_b220726_win32.x86_64.exe
SW32_S32DS_3.5.8_D2311.zip
这里下载S32DS.3.5_b220726_win32.x86_64.exe,一定要注意,会生成一个license,这个一定要记录好,后面IDE安装的时候要用这个激活码的,如果不记得,可以在IDE下载的license地方看到:
图 13
图 14
1.3 S32K3XX development 包下载
图5,1选项点进去,下载下面红框里面的:
图 15
获得SW32K3_S32DS_3.5.8_D2311.zip
到目前为止,所有的包和安装文件都已经就位:
IDE: S32DS.3.5_b220726_win32.x86_64.exe
IDE update: SW32_S32DS_3.5.8_D2311.zip
S32K3 development: SW32K3_S32DS_3.5.8_D2311.zip
RTD: SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_DS_updatesite.zip
二, 软件安装
下面分别安装IDE,IDE update, S32K3 development, RTD
2.1 安装S32DS IDE
右击S32DS.3.5_b220726_win32.x86_64.exe,使用管理员模式安装:
图 16
尤其是你的电脑有安全保护的,一定要用这种方式的管理员权限安装,本人就是因为没有选这个,安装了3次都没成功。
安装选择的路径,建议标注下你使用的RTD版本,这个里面有诀窍,因为不同的RTD版本,不能在同一个S32DS里面兼容,所以要分开来装,这里举例,RT4.0.0的S32DS,取名:
C:\nxp\S32DS.3.5_RTD400
下面就没什么特殊的,下一步下一步,遇到需要激活码的,把下载的时候收到的激活码填进去就可以了。这里注意,激活码只能在一台电脑用,换一个电脑就不行了,不要侥幸,我试过,肯定不能两台电脑。
安装完成后,打开S32DS,做一些配置:
Help->install new software
图 17
把上图中的http换成https。
2.2 安装 IDE update,development,RTD
Help->install new software
图 18
图 19
全选,并且取消“contact all update sites during install to find required software“,然后 next,完成所有安装。
用同样的方法,安装:
S32K3 development: SW32K3_S32DS_3.5.8_D2311.zip
RTD: SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_DS_updatesite.zip
安装完成后,重新启动S32DS,皆可使用RTD了。
三, 工程导入
打开S32DS:
File->New->S32DS Project from example
图 20
图 21
打开之后,可以看到,每个外设里面有两种类型的代码:不带lp和带lp的。
不带lp的:MCAL代码, 也就是RTD MCAL
带lp的:非MCAL代码,也就是RTD LLD
我们这里选择带lp的。
导入直接编译一把,发现一堆error,不成功。
图 22
而且,看工程里面的文件,也太简短了,缺驱动。
这是因为,这个demo是基于配置工具CT的,我们需要进入CT工具生成下代码。
点击ConfigTools->clocks
图 23
这次回来再编译,可以看到,驱动也进来了,而且能编译成功了。
图 24
四,代码下载与结果验证
找一个12V,2A的电源,连接到S32K3X4EVB板子J14,SW1拨到最左边,给板子上电。找一个USB线连接J40 opensda接口。
S32DS点击debug按钮:
图 25
可以看到,能够自动识别板载的opensda,并且进入debug模式。
按下F8,全速运行,可以看到,板载的D13红灯闪烁10次之后熄灭,说明到目前为止,所有的IDE环境,RTD 代码已经配置完成,并且能够下载到S32K344板子成功运行。