
S32K144开发环境介绍与简单工程的调试
S32K144开发环境介绍与简单工程的调试,适合刚入门时期查阅
S32K144开发环境介绍与简单工程的调试
前言
由于工作原因,接触到了恩智浦的S32K144单片机,正好处于学习阶段,为了方便自己梳理知识点,本系列将以各个组件驱动为章节具体分析讨论其原理以及应用细节初步拟定了以下几种组件:。工欲善其事,必先利其器
1 S32DS(IDE)版本选择
- 从学习的角度来说,选择最新版的IDE是最好的,使用体验会较为流畅。(如v3.5、v3.4等)
- 从实际的角度来说,其次根据实际项目情况,若有旧版本IDE开发的项目,则优先使用与项目相同版本的IDE,具有更好的兼容性。(如2018.R1)
2 S32DS(IDE)安装与介绍
2.1 获取与安装所需版本IDE
以本人为例,由于项目需求我安装的是S32 Design Studio for Arm® 2018.R1,于是进入NXP官网,首先必须进行注册与登录账户,与后续申领License有关,搜索相关IDE版本并下载安装。(开始下载后会弹出License页面,注意保存)
-
下载页面
-
具体安装步骤不再赘述,无论什么版本的IDE,都可以通过这个流程从恩智浦官网获取。
2.2 SDK安装方法
现在大部分芯片都会提供SDK开发包以辅助开发,通常直接选用最新的安装包即可,这里选择了SDK3.0进行安装与更新,具体流程如图所示。
之后勾选要安装的SDK继续即可。
3 资料手册获取途径
下文给出了可以解决大部分基础问题的官方手册,很多时候想不明白或是网上搜索的资源匹配不高,不多的时候,官方文档永远是一个值得参考的资料。
3.1 SDK用户手册查阅(UserManual)
一般每个SDK包都会存放它的用户手册,以SDK3.0为例打开安装IDE的目录
D:\NXP\S32DS_ARM_v2018.R1\S32DS\S32SDK_S32K1xx_RTM_3.0.0\doc\Start_here.html
可以直接查看*UserManual.pdf
或者使用Web排版的Start_here.html
进行查阅,一般用户手册有以下几点内容:
- SDK的基本介绍
- SDK的demo解析
- SDK的驱动函数详细介绍
3.2 芯片数据手册查阅(Data Sheet)与参考手册查阅(Reference Manual)
除了SDK相关的手册外,官网中可以搜索到的数据手册与参考手册,如下图所示
- 参考手册常用于查找寄存器的高位低位所代表详细信息
- 数据手册主要涉及了MCU整体的结构,以及总线时序等详细信息
4 IDE界面介绍与搭建工程
4.1 IDE界面介绍
在Window-Show View-Others
中可以找到所有可以打开的窗口,根据自己的习惯自行排布即可。
工作区中常用的窗口有:
- Project Explorer(工程文件)
- Progress(查看编译进度等)
- code(代码区)
- Components(工程中所使用的组件)
- Components Library(组件库)
- Components Inspetor(组件设置)
- Console(控制台)
- Expressions(变量监控)
4.2 工程搭建
4.2.1 新建example工程
如果是初次接触一块板子,那么第一件事肯定是跑个hello world
定个心。那么这时候一般选用SDK中自带的Demo进行搭建,如图所示。
一般选用最新的SDK中的例子进行验证,此处选择SDK3.0 - S32K144 - hello_world_s32k144
进行建立,等待Progress中的进度任务结束,即可完成搭建,demo中的组件都是配置完全的,只需要连接开发板调试即可。
4.2.2 新建自定义应用工程
当我们需要建立自己的工程文件时,与新建Demo稍有不同的在于,File - new - APP
选择SDK版本,一般选用最新版,之后确认即可。
值得一提的是,EWL(Embedded Warrior Library)和 Newlib 都是为嵌入式系统设计的 C 语言标准库实现。它们都提供了一组用于执行常见任务(如内存管理、字符串操作和数学计算)的函数。
- Newlib 是一个可移植性强,具有可重入特性、功能完备的 C 库,已广泛应用于各种嵌入式系统1。它由 Red Hat 维护,并且可以在许多不同的处理器架构上使用。
- EWL 是由 NXP 公司提供的一种 C 库,专为其 Power Architecture 处理器设计。它提供了与 Newlib 类似的功能,但针对 NXP 处理器进行了优化。
这两个库之间的主要区别在于它们支持的处理器架构和优化程度。Newlib 和 EWL 都提供了精简版本,割舍掉部分如printf等函数,即 Newlib-nano 和 EWL-nano,它们旨在减小编译后的代码大小。这两个库都可以生成较小的可执行文件,但是具体哪个库生成的可执行文件更小取决于许多因素,包括目标平台、编译器优化设置以及您使用的库函数。使用 NXP 的 Power Architecture 处理器,那么使用 EWL 可能会产生更小的代码。或者将两个库分别编译项目,然后比较结果,看哪个库更适合符合需求。
- 新建的工程文件默认是自带了clcok、osif、pin、等组件
- 需要添加其他组件,需要从Library中自行添加,并在设置完成后点击右上角的Generate Code 按钮生成代码。
- 最后在工程中编写逻辑或继续封装自定义的抽象层驱动进行开发。
4.2.3 调试与烧录
在新建工程中即可选择调试的方式,一般使用J-Link
或者官方EVB版中自带的Open SDA
进行调试。
在工作区中,可以进入Debug的详细设置页面
-
该页面可以选择进行Debug的方式(ram、falsh、auto),以及需要调试的工程。
-
该页面用于设置与DeBuger的连接,以及是否在每次烧录时
Full Chip Erase
擦除全部片区。一般用于初始化到最初始的状态(在.code中无法恢复) -
当点击Debug后,进入调试页面即可开始调试,一般常用:
Breakpoint
、Setp into
、Setp over
、Run to line
(ctrl+R)。 -
变量监控功能。
总结
归纳了简单的工程建立所用的常用组件与项目常用组件
基础常用的组件有:
- uart 常见的通讯方式,一般用于百米内的通讯
- iic 半双工的通讯方式,常用于板内通讯
- spi 全双工的通讯方式,常用于板内通讯
- pwm 调制脉冲,用于驱动各类电机或其他驱动需求
- adc 采集电压等常用的模数转换组件
- timer 计数器或脉冲采集器,常用于滴答计时器或采集方波信号
项目中常用组件:
- power mode 电源模式管理
- flash 内存分区等操作
- watchdog 看门狗,防止程序卡死
- flexio 灵活IO口,可以配置为IIC\SPI\UART\PWM等等
- rtc (real time clock)实时时钟,有单独供电模块,可以在掉电后继续保持运行。
- eeprom 读写掉电后保存的信息
- boot(strap) loader 启动流程相关的“自举”程序
- ipc 一种进程间的通讯方式
s32k144开发流程的开发流程图:
修订日期:2023.08.04
更多推荐
所有评论(0)