S32KSDK使用详解之KeilMDK开发S32K1xx系列MCU应用程序(使用ProcessorExpert配置SDK)汽车电子expert成长之路电子技术应用AET中国科技核心期刊

1.通过KeilIDE的PackInstaller在线安装S32KSDKpack

2.升级KeilPack中EAR0.8.6的S32K14xSDK到RTM2.0.0版本

2.1通过packSDK安装目录下的ReleaseNotes确定SDK版本

2.3将KeilpackSDK安装目录下的middleware、platform和rtos三个文件夹替换为RTM2.0.0SDK的,以实现SDK升级

3.新建S32K的Keil应用工程并选择使用SDK

3.1创建S32K的Keil应用工程

3.2选择和配置S32KSDK驱动

4.在S32DSforARMv2018.R1中使用ProcessorExpert图形化配置生成SDK驱动配置文件

4.1新建S32K144的S32DS应用工程并选择使用S32K14xSDKRTM2.0.0

4.2从ProcessorExpert的ComponentLibrary中添加SDK驱动组件

4.3根据S32K144-EVB硬件设计配置SDK组件

4.4生成SDK配置代码

4.5将ProcessorExpert生成的S32KSDK配置代码拷贝添加到Keil应用工程中

5.设置S32KKeil应用工程选项与在Keil中调用S32KSDK

5.1设置Target使用MicroLIBC语言库

5.2设置KeilC/C++编译器配置

5.3设置Keil汇编代码编译器配置

5.4设置Linker的链接文件使用SDK提供的S32K144_64_flash.sct

5.5调用S32K14xSDK驱动及添加测试应用程序

①用户按键GPIO输入中断ISR

②main()函数调用时钟初始化、GPIO引脚初始化、GPIOIRQ中断使能及ISR安装、ADC模块初始化和自校准(AutoCalibration)以及LPUART串口初始化函数

③main()函数主循环中调用ADC软件触发采样转换及转换结果读取API,并将结果通过LPUART串口阻塞发送API函数发送给PC电脑

5.6编译KeilSDK应用工程

6.使下载调试和测试S32K的KeilSDK应用工程

6.1设置编译目标为Flash,将应用程序下载到S32KFlash中进行调试,掉电程序不丢失

6.2设置编译目标为SRAM,将应用程序下载到S32KSRAM中进行调试,掉电后程序丢失

总结

ARM公司的Keil,也被称为KeilMDK(MicrocontrollerDevelopmentKit)集成开发环境(IDE)是很多ARM内核控制器开发者的首选工具链,原因如下:

①Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。其方便易用的集成环境、强大的软件仿真调试工具让MCU的应用工程开发事半功倍;

②Keil是与IAR齐名的专业MCU编译器,其编译效率非常高,并对业界的几乎所有调试器(debugger)都支持,相对GHS和Windriver来说,性价比较高;

④KeilIDE的ARM编译器的界面保持了与之前C51编译器一致,都十分简洁易用,让很多之前使用51单片机的庞大用户群体能够无缝升级;

NXP的S32K1xx系列汽车级通用MCU,使用ARMCortexM0+/M4F内核,也当然可以使用KeilMDK开发其应用程序,但是在NXP提供的SDK中,并不直接支持KeilMDK:

然而,Keil公司在2017年年底通过其packinstaller提供过一般SDK的支持包:一方面,其使用的SDK版本是EAR0.8.6,是早期版本,存在很多bug,因此,并不推荐用户使用;另一方面,Keil中无法像S32DSIDE一样使用ProcessorExpert对S32KSDK进行图形化配置从而自动生成SDK驱动配置文件;

为此,本文详细介绍KeilIDE中S32KSDK的pack安装、SDK升级至RTM2.0.0、使用S32DSIDE的ProcessorExpert为S32KKeil应用工程配置S32KSDK,S32K的Keil应用工程编译器、链接器设置,编译链接和调试等,并提供了配套的demo工程供大家参考学习,希望对大家有所帮助。

下载安装MDK(Keil5)IDE,这里使用最新的Keilv5.27。只有Keilv5.24及以上版本才支持S32K1xx系列MCU。

打开安装好KeilIDE,在下图中点击其菜单栏PackInstaller的快捷图标即可打开补丁包安装器:

然后,在补丁包安装器--PackInstaller,在线(online)搜索S32K下载安装其最新的SDKpack,请保持电脑网络连接正常:

安装完成后,结果如下:

这样S32KSDK作为Pack,就被安装在Keil的安装目录下了。其中,

通过检查每个安装目录下的ReleaseNotes.pdf,可以确定该pack中的SDK版本:

可以发现,Keil的pack中包含的SDK版本较老,还是EAR0.8.6的,并非推荐使用的RTM版本。所以需要更换为最小的RTM版本,这里替换为S32K14xRTM2.0.0,具体方法和步骤如下:

①目录platform/devices/S32K144/startup下的arm文件夹

Tips:该文件夹包含个partnumber的启动汇编文件--startup_S32K14x.s,需要备份S32K142/4/6/8相应子目录以支持整个S32K14x系列:

②目录platform/devices下的startup.c启动文件

③目录platform/devices/S32K144/linker下的arm文件夹

Tips:该文件夹包含个partnumber链接文件--*.sct,分散加载文件,需要备份S32K142/4/6/8相应子目录以支持整个S32K14x系列:

④目录platform/drivers/src/interrupt下的interrupt_manager.c文中断管理器驱动源文件

①将KeilpackSDK安装目录下的middleware、platform和rtos三个文件夹删除:

②然后,将S32DSforARMv2018.R1安装目录下S32K14x_RTM_2.0.0文件夹下的middleware、platform和rtos三个文件夹拷贝到Keil的S32Kpack安装目录下:

使用该压缩包,大家可以省略步骤2.2的备份工作;

大家将其下载后,在2.4步骤,将压缩包拷贝到KeilpackSDK安装根目录下,右键->解压到当前文件夹(X),覆盖新的SDK即可完成升级最后一步Keil工具链移植代码恢复:

在解压过程中确认文件替换窗口中,选择“全部选是(A)”:

选择菜单Project->NewUvisionProject...创建应用工程:

选择保存路径,并输入应用工程名,点击“save”保存:

选择MCU型号(Device)和软件pack,这里测试硬件平台使用S32K144EVB,其partnumber为FS32K144UAVLL,LQFP-100引脚封装,故选择S32K144UAxxxLLx即可:

Tips:在以上窗口中,可以通过搜索快速找到具体的partnumber,S32K1xx系列MCU的partnumber命名规则如下:

在Keil的ManageRun-TimeEnvironment窗口中,选择需要使用到的SDK驱动和BSP及中间件协议栈等;

这里,为了测试S32K144-EVB的ADC模拟输入、GPI按键输入和LED输出以及LPUART窗口通信,选择如下:

BoardSupport(BSP):(S32K144-EVB)

Tips:不能选择这里的BSPAPI,因为其调用的还是老版本SDKERA0.8.6的驱动,其与我们更新的RTM2.0.0不兼容;

Device:

eDMA:由ADC驱动、LPUART及其他通信外设驱动使用;

Device->SDKDriver中选择的SDK驱动具体如下:

Tips:在选择SDK驱动时,Keil会Validate用户的选择,找出其中的依赖关系,比如选择S32K144-EVB的LED组件时,其依赖其SDK的PINDriver和Clock驱动,点击“Resolve”即可自动选择添加相应SDK驱动:

Tips:Keil应用工程的SDK配置可以在开发过程中随意增加和删除,通过KeilIDE的ManageTun-TimeEnvironment快捷图标即可打开:

选择好SDK驱动之后,其相应的底层驱动代码就会被添加到应用工程中:

在S32DSforARMv2018.R1中新建一个S32K144的应用工程,选择使用同样的S32K14xSDKRTM2.0.0:

为了配置生成Keil应用工程中SDK驱动的配置文件,在S32DS应用工程中,添加相应的SDK组件--ADC、LPUART,PINS、Clock_Manager、Interrupt_Manager、eDMA和osif等:

根据S32K144-EVB的以下硬件设计:

S32K144-EVB上有一颗三色RGBLED,低电平点亮,高电平熄灭:

RGBLED的S32K144MCU引脚分配如下表:

RGBLED

S32K144GPIO

方向

BLUE

PTD0

输出

RED

PTD15

RGEEN

PTD16

S32K144-EVB设计了两个下拉到地的用户机械按键作为GPIO输入,可做GPIOIRQ上升沿中断测试:

USERBUTTONS的S32K144MCU引脚分配如下表:

USERBUTTONS

BTN0

PTC12

输入下拉

PTC13

S32K144-EVB设计了一个5K的滑动变阻器连接到S32K144MCU的ADC0的12通道,以测试ADC模拟信号采集转换功能:

外部滑动变阻器的S32K144MCU引脚分配如下表:

外部滑动变阻器

ADC通道

POTENTIOMETER

PTC14

ADC0_SE12

S32K144的LPUART连接到S32K144-EVB的板载OpenSDA虚拟串口:

LPUART1的S32K144MCU引脚分配如下表:

LPUART1

TXD

PTC7

输入

RXD

PTC6

完成以上SDK驱动组件配置后,点击GenerateCode,即可生成需要的SDK配置代码:

Tips:在S32DSIDE应用工程中,打开任意C代码源文件,在编辑窗口中,右键->ShowIn->SystemExplorer,即可在Windows的资源管理器中打开其所在的文件夹目录:

在Keil应用工程工程根目录下新建ProcessorExpert_Generate_SDK_ConfigFiles和Application文件夹,并将S32DS应用工程中ProcessorExpert配置生成的代码和main.c拷贝到相应目录下:

并在Keil工程中,创建两个同名的group,将相应目录下的所有文件添加到Keil应用工程中:

若在应用程序中要使用C语言标准库,比如stdio.h中的标准输入输出函数,则需要使能使用MicroLIB库,方法如下:

在Keil工程的目标选项(OptionsforTarget)的Target一栏勾选UseMicroLIB选项如下:

在Keil工程的目标选项(OptionsforTarget)的C/C++一栏设置其C/C++编译器选项如下:

在Keil工程的目标选项(OptionsforTarget)的Asm一栏设置其汇编编译器选项如下:

在linker设置中,将默认的"UseMemoryLayoutfromTargetDialog"选项去勾选,然后手动选择S32K144_64_flash.sct作为工程链接文件(ScatterFile,分散加载文件):

完成以上设置之后,在keil应用工程中就可以使用S32K14xSDK了,只需要在调用SDK驱动的C源代码文件中,包含Cpu.h头文件即可:

#include"Cpu.h"

针对本例测试,在main.c中添加如下代码:

①用户按键GPIO输入中断IST

Tips:以上代码中使用了S32K14xSDK的中断管理器(Interrupt_Manager)组件的中断ISR安装API函数--INT_SYS_InstallHandler(),故需要将MCU的中断向量表重映射到SRAM中,所以需要修改工程的分散加载文件--,S32K144_64_flash.sct在其开始处定义宏--__ram_vector_table__:

#define__ram_vector_table__1

完成以上代码之后,编译即可:

选择编译和调试目标为“S32K144_DebugFlash”进行编译:

编译完成后,在工程目标选项的Debug配置中,选择使用合适的硬件调试器:

然后又点击Keil菜单栏的调试进入图标,即可进入调试,并运行至默认的main()函数第一行的断点:

全速运行,或者重新复位S32K144-EVB板,即可发现测试功能工作正常:

Tips:Keil除了可以支持ULINK和JLINK这样的专业调试器对S32K系列MCU进行程序下载和调试器之外,还支持使用S32K144-EVB板载OpenSDA或者PEMicro的U-Multink作为调试器下载和调试S32K的KeilSDK应用工程。

具体方法和配置,请参考Keil官网通过的以下应用笔记(其中还包含了诸多KeilIDE的编译器使用和Debugger软件使用Tips,是学习KeilIDE不可多得的参考资料,强烈推荐):

选择编译和调试目标为“S32K144_DebugRAM”重新编译应用工程:

然后,在工程目标选项的Debug配置中,选择使用合适的硬件调试器:

Tips:这里实现将程序加载到MCUSRAM中进行调试的关键是:在以上配置界面中,去勾选“loadApplicationatStartup”,选择InitializationFile,使用工程根目录下的Dbg_RAM.ini初始化脚本,其通过控制脚本实现了从编译结果*.axf中读取并设置CPU内核堆栈指针(SP),程序计数器(PC)和中断向量表偏移地址(VTOR)设置,复位并加载编译器结果到MCUSRAM以及脚本命令控制运行到main()函数等工作:

DebugRAM的调试结果如下:

与DebugFlash一样,可以实现相同的调试功能,全速运行,测试结果与DebugFlash一致。

Tips:DebugRAM时,中断向量表和应用程序被编译到SRAM中了,不占用MCU的Flash资源,所以其不会破坏原有MCUFlash中的程序,且下载过程无需擦除和编程Flash,所以下载速度非常快,也因此,其常被用作外设/应用程序快速验证或者产品量产后做失效分析(FA--FailureAnalyze)进行硬件外设模块功能验证。其掉电后,程序丢失。其实,即使下载后未掉电,SRAM中的程序不会丢失,此时复位MCU,SRAM中的程序也不会执行,因为MCU复位后默认的中断向量表在0x0000的Flash地址;

本文详细介绍了ARMKeil5.27IDE中使用S32KSDK开发S32K应用程序的方法和步骤,以及如何将S32DS中ProcessorExpert图形化配置和生成的S32KSDK配置文件添加到Keil工程中使用的方法和步骤。

同样的SDK代码,在不开编译器优化的情况下:

使用Keil编译的结果如下:

使用S32DSv2018.R1(gccv6.3)编译的结果如下:

可以看到,Keil和S32DS编译的结果,占用SRAM资源相差不大,但占用的Flash(代码编译结果存储器)空间却只有S32DS编译结果的一半不到(15.72kB.vs33.45kB);

代码编译效率提高了一倍多!!!

除了本文的Keil开发S32K应用程序及SDK使用之外,Keil官网也提供了以下三个应用笔记和丰富的demo工程,供大家参考学习:

THE END
1.完蛋了Z完蛋了 Z-Library真打不开了 据说因为TikTok上分享太多 树大招风 被美国政府封了 非常依赖这个网站 可以下载成本大套的史料汇编以及各种意想不到的资料 评论区有新链接试试看!#科学人冷战科学史# ?收藏 2601 123 ?1002 评论 o p 同时转发到我的微博 按热度 按时间 https://weibo.com/1812175903/MdrWctiwA
2.zlib不能用了标题: Re: zlib不能用了 发信站: 水木社区 (Tue Oct 31 13:11:45 2023), 站内 The current domains of the original Z-Library project are: ? https://singlelogin.re ? https://z-library.se 没有验证过 但是来源应该是可靠的 【在 upndown 的大作中提到: 】 : 之前还行,后来捐了https://www.newsmth.net/nForum/article/Book/77908?p=1
3.中科院终于出手了,知网再也不见!oldestdiver默认收藏夹?杭漂6年的AI工程师,用AI颠覆职场?分享效率办公、自媒体利器!工具箱无偿分享,关注后自动回复~ 充电 关注8.4万 默认收藏夹 1/138 创建者:oldestdiver 收藏 中科院终于出手了,知网再也不见! 13.6万播放 【整整328集】敢称全站最细,2024最新录制C语言零基础入门教程,干货无废话,带你一步步从零小白入门https://m.bilibili.com/playlist/pl3156335354
4.为什么知网的外文文献看不了为什么知网的外文文献看不了 因为个人无法登录知网账号,所以看不了外文文献。只有学校、科研机构和期刊杂志合作的平台才会提供免费的知网账号,有些外文文献也能在知网看得到。还有一种看不了的情况是,你已经登录了知网,但是所属机构没有购买此文献的授权,那也是看不了的。知网介绍 知网百科(Cnkipedia)是全球最https://baijiahao.baidu.com/s?id=1739215737258269988&wfr=spider&for=pc
5.library.skshu.com/yyys67372660.htm女生把筷子放在放屁眼里不能掉的视频免费 40.69MB 950好评 成人小视频下载 玖玖精品电影 国产精品久久久久三级无码 11.64MB 525好评 韩国美女被插鸡鸡的电影 风骚淫妇高H女房东小说 97久久0930 33.25MB 627好评 日本人惩罚女人用注射器往屁眼里灌水视频 ?18 欧美老妇丰满XXXXX http://library.skshu.com/yyys67372660.htm
6.工具Zlibrary图书馆,电子书大全(亲测可用)clibraryhttps://zh.zlibrary-be.se/ 第五次更新(更新于2024.04.3) https://zh.zlibrary-sg.se/ 第四次更新(更新于2024.01.22) 刚试了一下其他以前的链接,只有clibrary的链接不能用了,大家注意吧,因为clibrary不能用了,所以我改了本文的名字(毕竟不是以clibrary为主了),从【(z-library平替)Clibrary中文图书馆https://blog.csdn.net/qq_41539778/article/details/128833489
7.正式谢幕!Kindle中国电子书店停止云端下载服务6月30日,Kindle中国电子书店停止云端下载服务,风靡一时的阅读器终成“时代的眼泪”。 图片来源:亚马逊中国官网 许多网友在社交媒体上表示惋惜,部分网友称,“尽管充满不舍和遗憾,阅读还会继续,希望Kindle能在将来回归中国市场”,还有网友调侃道,“Kindle真成泡面https://mp.weixin.qq.com/s?__biz=MjM5NTQyMjAyMg==&mid=2650590585&idx=4&sn=3db3dc29ad85713ea789d5cdf9fe2ae2&chksm=bfa5fdd356d445817721ab0234dd83cc1d39e2362c9ee3b7d752c3ab548f150d4c59956322b2&scene=27
8.Zilibrary资源轻松获取指南,详细下载指南助你轻松找到所需资源Zilibrary下载指南:本指南提供简单易懂的操作步骤,帮助您轻松获取所需的资源。无论您是在寻找学术资料、小说、漫画还是其他各类图书,Zilibrary都能满足您的需求。跟随我们的下载指南,您将能够顺利地获取并享受这些资源,为您的阅读和学习提供便利。 本文旨在为广大热爱阅读的朋友们提供关于如何使用Zilibrary这一电子书籍平https://www.zovps.com/article/index.php/post/412333.html
9.libraryResource使用libraryloaderlazihuman的技术博客贸泽网站提供了一款元器件库工具——Altium Library Loader,它依靠贸泽背后强大的数据库和器件库,可以将多种元器件的原理图符号、PCB封装、3D模型直接导入Altium Designer软件中,不仅节省了时间,还避免了我们自己绘制过程中的测量误差、管脚不对应等问题。 1. Altium Library Loader库加载器软件的安装 https://blog.51cto.com/u_12947/10772907
10.Zilibrary可用入口检索知识文献检索小木虫论坛求助:免费英文专业图书Zilibrary可用入口?https://muchong.com/t-16286086-1-pid-1
11.混合函数(精选八篇)但在某些实际应用中, 对计算的逼近阶的要求不高, 而对计算的实时性即计算速度要求较高, 例如在图像处理中, 插值数据都是等距节点上的像素值。因此, 本文用插值节点处的差商Δi代替导数di, 构造仅基于函数值的插值样条。 2基于函数值的二元混合差值格式https://www.360wenmi.com/f/cnkeyqdyislc.html
12.如何在zilibrary上下载电子书到静读天下【创新维】_触控一体机哪个品牌好 【创新维】_无线触摸一体机 【创新维】_85寸触摸一体机厂家 【创新维】_触控一体机42寸 【创新维】_山东42寸触摸一体机 【创新维】_佛山触摸一体机 【创新维】_触摸一体机厂商 【创新维】_天津触控一体机 【创新维】_纳米电容屏黑板 https://xbeibeix.com/video/BV1BN4y1K7Za
13.3年级下册语文听课记录13篇(全文)林淑荣老师这节课准备得比较充分,无论从实验用的金鱼,还是老师设计的板书,都作了精心的设计。但还是处在着一些不足,具体表现在: 1、本节课内容较多,时间较仓促。 2、个别实验有走过场的现象,学生记录表不能很好去完成、呈现。 3、观察金鱼吃食和呼吸的实验学生很感兴趣,但难度大,学生对操作材料的使用不能很好https://www.99xueshu.com/w/file68vyvm6c.html
14.最方便的。。。不用zilibxxx的找书方法。。。?。。。更新我的秘?网站。。。 去vx号:mobi图书馆 真的嘎嘎好用。。。嘎嘎方便。。。 只要第一次注册了邮箱就ok。。。 但是书肯定没有zilibrary那么全的。。。哥哥们想看一些比较出名的书可以用这个。。。 有哥哥反馈。。。赞 回应 转发https://www.douban.com/group/topic/281175435/
15.安装vs2015时无法安装“适用于visualC++2015的公共工具”已安装这个产品的另一个版本,这个版本的安装无法继续。要配置或者删除这个产品的现有版本,请用“控制面板上的添加/删除程序”。 请参考这篇文档:https://msdn.microsoft.com/zh-cn/library/ms235299.aspx 每个Visual C;; 可再发行包都会检查计算机上是否存在较新版本。 如果找到较新版本,则不https://social.msdn.microsoft.com/Forums/sqlserver/zh-CN/3d02c5f9-a03a-4ca1-a90f-6b6220a2e3fd/vs2015visualc2015?forum=vstudiozhchs
16.小学英语课程表学生从开始学习英语就伴随着开始拼写记忆单词了。对于很多孩子而言,记忆单词是一件苦不堪言的事儿。小学英语重在读单词、记单词,因为正直孩子记忆力活跃的最佳时期。一些语法知识大概了解就差不多了,因为对于英语真正意义上的学习几乎都是从初中考试的,初中才会开始系统化的学习。 https://www.meipian.cn/297omv2p
17.Zlibrary复活教程!懒人找资源网上有人整理了一些Zlib镜像网站,不过小懒测试都不能访问了。 原帖:https://www.ooopn.com/tool/zlibrary/ 即使挂T也不能,如果你有特殊网络的话可以用下面的方法: 1 . Tor访问 教程: https://bbs.yibook.org/d/206-hui-fu-xia-zai-fang-shi-2-shi-yong-tor-xia-zai-z-library-zi-yuan https://www.shangyexinzhi.com/article/5430961.html
18.OracleASM+11gR2安装1.4.9 ora-15077,ASM磁盘组不能挂载 Readme 看到群上还有人纠结ASM的安装,我很痛心,不过想想自己当时安装的时候花了将近一周的时间才安装好,主要是白天上班,又没有网络,所以只好晚上安装了,自己开始安装的时候是11.2.0.1.0,这个版本安装有很多bug,虽然安装成功了但是很痛苦,后来参加OCP培训,老师给了11.2.0.3.0https://blog.itpub.net/26224914/viewspace-1290146/
19.全球最大盗版电子书网站ZLibrary:又被美国查封了快科技5月5日讯,沉默了几个月后,美国执法部门开始了针对Z-Library的新一轮打击。 最近几日,Z-Library多个新的主域名被查封,点击后弹出FBI提示。随后,Z-Library通过社媒确认了部分域名被攻击下线的消息,并给出了击中可供登陆的备选方法。 据悉,去年11月,号称是全球最大电子图书馆的Z-Library被美国FBI封禁,连同https://tech.ifeng.com/c/8PXop5HTTWn&wd=&eqid=d9d7c5840001f66a0000000564623771
20.Zlibrary电子图书馆如果有兴趣读点名著经典呢,自然一般的读书软件要收费了,可能让手头拮据的人望而却步,也许更多的是不愿投资自己,今天就给大家带来一波白嫖福利!!!看不看以后再说。。。 今天给大家带来一个免费下载各种经典名著的网站——Z-library。相信互联网的诸多大佬早已知晓此网站,并精通各种白嫖方法,不过我“火烧云”同志呢https://www.clzg.cn/article/411380.html