本文介绍一下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进行开发调试。

S32K1XX系列单片机 ——(1)开发环境搭建相关推荐

  1. 【先楫HPM6750系列】RT-Thread开发环境搭建和Hello World

    [先楫HPM6750系列]RT-Thread开发环境搭建和Hello World 本篇介绍HPM6750开发板的RT-Thread Studio开发环境搭建,以及在RT-Thread Studio环境 ...

  2. 单片机---HLK-W801开发环境搭建

    总目录 <单片机-HLK-W801开发环境搭建> <单片机-HLK-W801蓝牙BLE功能测试> 最近刷淘宝,偶尔就会刷到一些国产芯片,于是买了一块海凌科的开发板,型号HLK- ...

  3. 涂鸦智能模组SDK开发系列课程——SoC开发环境搭建(一)

    SoC开发环境搭建 本章节主要介绍如何搭建涂鸦 Wi-Fi 和 Wi-Fi&Bluetooth LE 系列模组二次开发的编译环境.在 Windows 上使用 VirtualBox 虚拟机软件安 ...

  4. [Android系列—] 1. Android 开发环境搭建与Hello World

    前言 开始之前先熟悉几个名词: SDK -- Software Development Kit, 软件开发工具包.这个词并不陌生, JDK,就是Jave Development Kit,同样对于And ...

  5. 【JAVA零基础入门系列】Day1 开发环境搭建

    一.安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可. http://www.oracle.com/technetwork/java/javase/downloads/jdk ...

  6. 手牵手系列之TypeScript开发环境搭建

    新建项目 初始化 npm init 安装全局依赖 npm install typescript tslint -g 执行命令初始化,项目根目录生成tsconfig.json文件 tsc --init ...

  7. Android深入浅出系列之Android开发环境搭建—SDK(三)

    安装SDK 1:下载SDK 只有下载了Android的,SDK(Software Development Kit)软件开发工具包,我们才能从事安卓的开发,SDK可以从Android的官方网站上下载,下 ...

  8. win10下pyqt5低功耗蓝牙系列一:开发环境搭建

    1.序言 之前在网上搜索关于python实现低功耗蓝牙(BLE)的案例,基本都是让安装pybluez等之类的工具,实测发现基本行不通,具体原因也不记得了,折腾了将近一个星期时间.这两天看Qt的QtBl ...

  9. PIC32单片机harmony开发环境搭建并新建harmony工程

    软件:maplab x 编译器:xc32 开发框架:harmony 建议安装时选择英文,此处省略上面三个软件安装过程. 安装完毕后,tools -> plugins -> availabl ...

  10. HT32合泰单片机开发环境搭建和配置教程

    HT32合泰(Holtek)单片机开发环境搭建安装教程 前言 最近在准备合泰杯的比赛,在看合泰官方的PPT和数据手册学习,顺便做个合泰单片机的开发环境搭建教程. 合泰杯比赛发放的开发板是ESK32-3 ...

最新文章

  1. 冠军方案分享:ICPR 2020大规模商品图像识别挑战赛冠军解读
  2. OpenCV图像处理常用手段
  3. 蓝牙模块hc05原理图_使用步进电机和Android App的蓝牙控制迷你升降机
  4. 线程池每次用都创建吗_跳槽涨薪季面试题之多线程(三)
  5. tamper绕WAF小结
  6. win10+VS2015+boost_1.60.0
  7. 【LeetCode】36. Valid Sudoku
  8. 3dmax物体轴心点坐标和unity3d不一样_Unity3D新手必看:几个让你相见恨晚的小技巧...
  9. Kibana查询ES报错:[circuit_breaking_exception] [parent] Data too large
  10. ceph对接openstack环境
  11. 9个最新的手机/移动设备jQuery插件
  12. Web 应用程序渗透测试清单
  13. wbs简单介绍以及相关模板截图
  14. select模型+epoll模型+reactor模型
  15. JS 获取浏览器高度和宽度
  16. gopro7怎么回看视频_gopro7推荐帧数设置 gopro7视频格式设置
  17. 为什么说人间值得,因为有这么多美好让我们留恋。金秋十月初九于指南山村 。...
  18. Golang 原子操作与互斥锁
  19. 高德地图(第二篇)测量距离小工具
  20. truffle init/unbox 中遇到的许多错误以及解决

热门文章

  1. 联想ibm服务器修改uefi,解决联想笔记本bios设置uefi变灰色的方法
  2. 测试相貌相似度的软件,快乐相似脸 - 测试你们之间的长相相似度
  3. flash视频的param属性解释
  4. CAN协议深度解析-简单易懂协议详解
  5. js继承的几种方式,圣杯模式
  6. 全国地表径流量数据获取/植被类型数据/NPP数据/土壤侵蚀数据/土壤质地分类/降雨量栅格数据/太阳辐射量数据
  7. Xshell远程连接配置 Ubuntu 18.04.6 + Anaconda + CUDA + Cudnn + Pytorch(GPU+CPU)
  8. cpri带宽不足的解决方法_CPRI基带数据的低损耗压缩
  9. SMC在线气动制图软件PneuDraw
  10. 最新二次开发仿包图网素材图片源码