首页 > MAYA > 软件开发demo是什么意思-【S32K】S32K144入门笔记(1)从零开始搭建开发环境
2024
07-09

软件开发demo是什么意思-【S32K】S32K144入门笔记(1)从零开始搭建开发环境

0. 目录

目录

1. 原因

总而言之,我接触S32K144已经有一个月了,突然一个项目需求需要用到这个芯片,当时确实挺迷茫的。

在此之前我一直用的是ST芯片,感觉这个芯片的优点是系列比较全,不同需求可以找到不同型号,而且坑几乎大家都踩过,基本都能找到类似的问题,这次遇到的问题是ST没有车规型号吉祥物,得换了。

其实我个人觉得真的很难说哪个芯片好哪个不好,我觉得我做项目的时候一直没能找出芯片性能的差别,导致一个芯片可以接受,一个不可以。(当然我不会说主频、外设这些硬性指标,我指的是同速度、同外设之间的差别)

S32K144这个芯片不能说不好,使用起来也没有出现什么大的问题。

唯一的问题是资料太少了软件开发demo是什么意思,基本上只能在官网上找到有用的信息,太迷茫了。

2. 开发环境 2.1 软件开发环境选择

S32K144有三个主要开发环境:

S32DS

S32DS是NXP官方的开发工具Keil

Keil需要下载pack支持包,另外需要从S32DS导出一些源代码。

这个我没深入研究过,也没怎么用过。2.2 S32DS

这里我选择了S32DS,这是我第一次使用NXP芯片,所以决定用原生工具,这样支持可能更好,坑也少。

需要注意的是S32DS有好几种,就如同Keil有Keil C51和Keil MDK一样,编译出来的内核各有不同,所以需要在官网上选择一种。

对于 S342K144,选择 S32DS IDE for Arm。

2.2.1 下载与安装

找到的最新安装包是S32DS_ARM_Win32_v2018.R1_b180326.exe(目前是2019年10月的),下载比较慢,安装时填入激活码(官网下载界面就有,免费的),一路next就OK了,没什么坑。

主要坑的是安装完这个之后需要升级一个升级包(S32DS_ARM_v2018.R1_UP10.zip)才能得到最新的库函数接口。(升级操作:在help-Install new software窗口中点击Add,在Add Repo中选择S32DS_ARM_v2018.R1_UP10.zip)

如果你没升级过,默认的库是EAR_SDK_0.8.6,升级后是RTM_SDK_3.0.0(别问我EAR和RTM有什么区别,我用的时候感觉是一样的)。后来我咨询了原FAE,他们认为我们的库太老了,有bug,很难跟踪调试(别人问你一年前写的代码,你会一头雾水的)

2.2.2 演示项目

这部分非常重要,因为这可能是我们实施项目的最直接、最有效的方式(这是信息最全的)。

在File-New-S32DS project from example中,可以调出可以导入的演示项目。

我感觉demo主要分为两类

1.注册开发版本

感觉跟Stm32以前的寄存器版本差不多,类似51的开发,直接分配寄存器,这个效率比较高,但是可读性和可移植性比较差。

2.库函数版本

感觉跟stm32的hal库比较类似,NXP称之为Pal库,是一个中间的抽象层,这个版本的代码支持使用pe进行图形化配置(这部分感觉没有st的STM32cube好用)

2.3 硬件开发板选择

交换板必须是官方的(这种小众产品没有第三方的开发板)。

我找到了两个官方版本,一个黄色,一个蓝色。

我其实更喜欢蓝色的。它感觉更小,并且具备所有基本功能。但它可能是早期版本,而且已经缺货。

黄色条是S32K144EVB。

官方的demo都是基于此编写的。

2.3.1 硬件架构

开发板自带调试接口OpenSDA,后面会介绍。

板载接口包括 CAN、Lin/Uart、ADC、PWM、IO(Key)……

提供简单功能。

够了。

2.3.2 调试接口

刚开始做硬件的时候,他问我要留什么调试接口,我还没拿到调试板软件开发demo是什么意思,就跟他说要OpenSDA。

然后我们互相看了一会儿,硬件就乱七八糟了(最后只剩下SW口,VCC GND DIO CLK NRT,用jlink调试)。

其实一开始我误解OpenSDA是类似jtag、sw的调试接口,后来发现不是这样的,OpenSDA相当于在SW上面又封装了一层交互接口,可以类似U盘的方式操作,实现了一种非常方便的代码下载方式,我觉得还是比较贴心的,这部分就不多说了,下面列出参考链接,文章写得不错。

通过OpenSDA,您可以通过U盘更新固件,或者直接在S32DS中下载并仿真。

3创建一个新的S32DS项目

我们简单记录一下步骤,这里我们选择基于SDK库接口进行开发。

在弹出的对话框中填写“工程名称”,左下角选择芯片型号,如果不想使用默认地址可以勾选“使用默认位置”,并选择一个文件夹。

S32DS会在此文件夹下新建一个与项目名同名的文件夹表情包设计,所有的代码文件都会放在其中。

点击next,在SDKs中选择对应的SDK版本。(对于库函数之类的,建议使用最新版本的SDK,如果旧版本有问题才更新到新版本)

新安装的v2018.R1是0.8.0版本的SDK

目前(2019.10.12)最新版本是3.0.0(安装S32DS_ARM_v2018.R1_UP10.zip)。完成后,创建一个新项目并开始添加我们的东西。

第一步,修改**.pe文件。

新创建的项目的组成部分如下:

将封装修改为我们实际使用的封装,不同的封装是有区别的,比如S32K144有64脚封装和100脚封装,如果选择64脚封装的话,部分功能(比如UART3)会不可用(废话,这个引脚根本用不到)

更换封装后,pin_mux会因为引脚不兼容而被划掉,移除一个pin元件重新拉出,同时添加其他需要的元件,然后修改对应元件参数。

7.自动生成库函数接口代码工程-生成pe代码

8. 在 main.c 中写自己的代码,创建自己的 .c 文件。这个库有意思的地方就是有很多 extern,很多变量可以直接使用。怎么说呢,我个人觉得用起来很别扭。我更喜欢独立、低耦合、有标准输入输出接口的模块。不过入乡随俗,还是可以的。

参考链接

Freescale Kinetis 开发板 OpenSDA 调试器(第一部分) – 背景和架构 – 痞子衡

详解S32K SDK使用方法及S32 SDK软件编程思路

S32K项目迁移到Keil

系列文章

最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计