本文介绍一下NXP S32系列单片机开发环境的搭建方法,分两种:S32DS和Keil。
1. S32DS
S32DS是NXP开发的一款IDE,编译器是GCC,支持Lauterbach、P&E和Jlink等调试器,集成了NXP芯片底层和一些中间层的SDK,还有AUTOSAR的MCAL可以免费试用。
(1)安装
软件下载链接如下:
https://nxp.flexnetoperations.com/control/frse/download?agree=Accept&element=12367047
需要注册账号,注册完进入下载页面后有以下选项,蓝色框中就是Windows环境下的安装包,可以同时下载红框中的安装指导,按照安装指导中的步骤一步步安装即可。注意本页面先不要关闭,在上面License Keys选项卡下有一个Activation Code,安装过程中要用。
安装这里不过多介绍了,网上也有更详细的教程。
软件安装好之后的界面如下图所示:
打开时会弹出组件安装界面:
这里有很多组件,点击左侧的组件,在右侧有组件详细的介绍,选择要用的组件进行安装,我这次用的是S32K144,常用的组件有以下几个:
下面这个RTD就包含了芯片的MCAL,符合AUTOSAR标准:
(2)创建工程
安装完以上几个组件之后,我们就可以创建新工程了,点击File-New-S32DS Application Progect,可以从基于SDK创建一个工程:
点击上图红框位置选择SDK,可以看到我们之前安装的SDK:
选择一个SDK后,点击Finish,一个新的工程就创建好了,如下图所示,点击编译可以直接编译通过:
(3)配置外设
选中工程,点击红框中的按钮,可以配置单片机外设:
① 引脚配置
默认进入的是引脚配置,如下图所示,在引脚配置选项卡中,点击一个引脚,会让你选择引脚功能,以及输入输出方向等,即可完成对PORT的配置:
也可以在下图中的外设信号选项卡配置外设引脚,如点击CAN0的RX引脚,会提示你有哪几个引脚可供选择,选择其中的一个即完成了对该外设引脚的配置。
② 时钟配置
点击红框中的位置能打开时钟配置界面:
左侧是时钟树,右侧有寄存器等选项卡,根据需要进行配置:
③ 外设配置
在概述选项卡下可以切换回引脚配置,或进入外设配置:
下图为CAN的配置,可以配置外设属性,如CAN的波特率、采样点、是否支持CAN FD等,其它模块也类似。
(4)更新外设配置代码
当引脚、时钟、外设都配置好后,需要更新工程源代码,如下图所示:
点击后会提示有哪些文件会被更新:
点击OK后,稍等一会,可以在右下角看“Update Code”的进度,完成后我们点击下图中的红框即可切换回工程代码界面,可以看到board文件夹下增加了相应的配置文件,SDK->Driver文件夹下增加了所配置的外设,我们就可以在应用层代码中直接调用Driver文件夹下的接口函数了。
(5)创建包含MCAL的例程
上文演示了如何从SDK创建新工程,但SDK中的驱动不是MCAL,不符合AUTOSAR架构,我们来看下如何创建一个包含MCAL的工程。
首先从例程新建工程:
我们可以看到,在安装了上文所述的组件之后,这里能看到很多Examples,其中的一些就是带有MCAL的,如CAN、PORT、DIO、FEE等,我们以CAN的为例,选中后点击Finish:
创建好的工程如下图所示,此时编译是不能通过的,缺少底层驱动文件,
像上文配置外设的方法一样,配置好CAN模块,点击更新源代码后,会看到工程中多了RTD驱动包和一些自动生成的配置文件,这时再点击编译就可以编译通过了:
其中RTD中就是MCAL的源码,generate这一系列文件夹就是自动生成的MCAL配置文件。
2. Keil
Keil现在已经支持S32系列了,keil的MDK编译器编译ARM芯片的程序效率比价高,而且keil支持的调试器更全,基本上常用的调试器都支持。下面就来介绍一下如何使用keil开发S32系列单片机。
(1)安装keil芯片包
可以直接在Keil的芯片库中安装:
直接下载速度太慢了,有需要的可以从下面链接下载,然后安装:
链接:https://pan.baidu.com/s/1bQqh8hOPCnh-7VSO_kVTOg
提取码:oplk
芯片包安装后,可以在以下路径找到:
这个Keil官方的DFP中有一些文件需要替换,从下面的连接下载压缩包:
链接:https://pan.baidu.com/s/1NLg-HodeL3dYrJtqa1h-uA
提取码:ufy0
解压后可以看到以下两个文件夹,把它们复制到上面的路径下,重复文件直接覆盖,完成后即可。
(2)新建工程
点击OK后悔弹出以下弹窗,勾选红框中的选项:
(3)添加汇编启动代码
启动代码不会被自动添加进工程中,此时编译会出错,需手动添加以下路径的.S文件进工程:
添加完成后如下图所示:
(4)添加main文件
新建一个main.c文件,添加进工程:
(5)添加编译选项
在工程配置中的以下两个位置分别添加:__ ARMCC_VERSION、-U__GNUC__【注意ARMCC前有个空格,需删掉,是为了避免CSDN的显示错误而临时添加的】
(6)选择链接脚本
在工程配置以下位置处选择下面路径下的链接脚本:
C:\Users\Thinkpad_Local\AppData\Local\Arm\Packs\Keil\S32_SDK_DFP\1.5.0\platform\devices\S32K144\linker\arm\S32K144_64_flash.sct
以上就完成了一个新工程的搭建,现在再编译就可以编译通过了,并且可以跳转至main函数运行。
最后推荐一个公众号“汽车电子expert成长之路”,本文中Keil开发环境的搭建参考了公众号上面的文章。
后面我会介绍一下如果用EB配置MCAL,并集成到Keil进行开发调试。