对于NXP的S32K1xx系列MCU,前面已经介绍过,官方有专门支持该系列MCU开发的IDE工具——S32DS,这个工具还有对应的代码生成配置工具,而且也是官方推荐使用的工具。
S32DS开发环境是基于Eclipse改写的,熟悉Eclipse的话可以很快上手。但是很多人使用MDK-Keil软件更多,所以介绍下怎么使用MDK-Keil环境来开发S32K144.
我们首先要安装S32K1xx的Pack包。Pack包可以到Keil的官网进行下载,也可以通过菜单栏Pack Installer 界面进行下载。
S32K1xx的pack包最新版本是1.5.0,下载官网:
https://www.keil.arm.com/packs/s32_sdk_dfp-keil/boards/
然后点击下载即可。
下载完成之后,双击pack包进行安装:
安装路径默认即可。因为我已经安装过了,所以提示是否替换。
在新建S32K144的Keil工程之前,我们需要先把所必需的文件准备好。这些文件无非就是S32K1xx系列MCU的SDK库文件,所以我们首先要去官网下载了S32K1xx的SDK。
可以通过下面的官网链接下载,目前最新的版本是 4.0.3 .
https://www.nxp.com.cn/design/software/development-software/s32-sdk/s32-software-development-kit-for-s32k1:S32SDK-ARMK1
得到SDK之后,我们把所需的文件复制到我们新建工程的目录下面,准备后续使用。
在前面一篇文章中,已经详细介绍了S32K1xx的SDK框架和各个文件夹的作用了。这里不多介绍。
我们把 platform / rtos 这两个文件夹复制到我们要新建Keil工程的目录下,platform 的内容其实就是NXP提供的 S32K1xx 开发的外设驱动库函数,还要启动文件,链接文件等等。rtos目录则是关于通信的外设驱动会使用到信号量、互斥量等内容,然后这个文件有裸机实现的接口,也有基于FreeRTOS进行二次封装实现的。
复制那两个文件夹过来之后,如下:
1、选择菜单 Project->New Uvision Project… 新建工程
2、选择新建工程的保存路径
3、选择S32K型号,我使用的开发板是NXP的S32K144-EVB开发板,对应的芯片型号就是 S32K144UAxxxLLx ,根据自己手上的硬件选择对应的型号就行。
最后点击OK即可完成新建一个工程了。
工程的目录结构因人而异,按照自己的习惯来就好。我自己新建的工程目录结构如下:
目前这些目录还没有加入SDK外设驱动相关的文件。
给前面新建的工程目录结构,添加相关的文件。
新建一个基本的工程,所需要添加的SDK库文件有:
我们把上面所需的这些文件,添加到对应的每个工程的目录文件夹中。
我们点击魔术棒的按钮,然后对工程进行基本的配置。主要就是配置下头文件的路径,还要一些常用的设置就行了。注意的是,我们需要选择AC6版本的编译器,因为NXP最新的SDK选择只支持AC6版本的编译器了。
1、勾选使用 Use MicroLIB ,这样我们可以使用printf函数进行打印调试。
2、配置头文件路径
3、汇编编译器选项添加 START_FROM_FLASH 这个宏定义。
4、选择 .sct 散列文件。
NXP的SDK,里面的代码用到了大量的自定义的外部符号了,而这些符号都是在散列文件中定义的,所以我们需要使用NXP自己写的散列文件。而不能使用MDK-Keil自动生成的散列文件。
5、调试选项的配置
调试器选择自己对应的调试器即可,我使用的是J-Link调试器。
最终,使用MDK-Keil开发S32K144的模板工程就新建好了。
然后我们编译这个工程的结果如下:
提示说有2个警告,都是说这个版本不支持 xxx 什么的符号,我目前还不了解怎么去除这2个警告,先不管他,后面有机会再了解。
后续我就根据这个模板工程,进行S32K144的开发学习了。