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.知乎图书下载秘籍,轻松掌握全攻略,高效下载技巧!运营赞助本文介绍了知乎图书下载的全攻略,为读者提供了轻松掌握下载技巧的指南。通过简单的步骤,读者可以轻松地下载到自己喜欢的图书资源。文章详细阐述了下载过程中需要注意的事项和可能遇到的问题,帮助读者避免不必要的困扰。无论是新手还是老手,都可以通过本文了解到知乎图书下载的方法和技巧。 https://www.zovps.com/article/index.php/post/446819.html
2.Kindle免费书籍下载指南,探索海量优质资源的获取方法电子书阅读器Kindle已经成为现代人生活中不可或缺的一部分,它让我们随时随地都能沉浸在书海中,Kindle上的书籍大多需要付费购买,对于预算有限的读者来说,免费书籍的获取就显得尤为重要,本文将详细介绍如何通过合法途径在Kindle上下载免费书籍,让你轻松拥有海量优质资源。 http://www.kinghong8.com/post/3758.html
3.中考英语十六种时态(一).pdf2)1usedtodomyhomeworkinthelibrary. (注意与beusedtodoing短语的区别) 3.一般将来时 1)表示将来打算进行或期待发生的动作或状态.例如: Ishallgraduatenextyear. 2)几种替代形式: l)begoingto+v在口语中广泛使用,表示准备做或将发生的事情例如: I'mgoingtobuyahousewhenwe'vesavedenoughmoney. 2)beto+v表示计https://www.renrendoc.com/paper/269951180.html
4.ASP.NETCore适用于.NET的开源Web框架下载PDF 在Web 上查看 ASP.NET Core architecture e-book 本指南提供有关使用 ASP.NET Core 和 Azure 构建整体 Web 应用程序的端到端指南。 下载PDF 在Web 上查看 Azure quick start e-book 在本简短指南中,探索了适用于各种 .NET 应用程序方案的 Microsoft Azure 服务。可以快速了解适合你的服务。 https://asp.net/
5.GitHubgzi/tclibpdf:TCPDFPHPPDFLibraryg-zi / tc-lib-pdf Public forked from tecnickcom/tc-lib-pdf Notifications Fork 0 Star 0 TCPDF - PHP PDF Library - https://tcpdf.org License View license 0 stars 219 forks Branches Tags Activity Star Notifications g-zi/tc-lib-pdf develop 2 Branches0 Tags Code This branch is https://github.com/g-zi/tc-lib-pdf
6.Zlibrary阅读器app下载Zlibrary阅读器安卓手机版1.5 大小:20.8MB时间:2024-01-17 下载 相关合辑 android手机播放器android读书软件ipad阅读软件安卓airpods弹窗软件手机阅读器软件email软件pdf阅读器app漫画阅读器app手机有声小说阅读器cosplay软件txt手机阅读器手机阅读器txt本地阅读器apptxt阅读器app阅读器app电子书阅读器app网络小说阅读器apphttps://m.liqucn.com/rj/9019965271180.wml
7.《中国基督教研究》2023年第20期汉语基督教研究网This journal is collected in AIRITI Library and indexed in DOI database. Journal of Research for Christianity in China (Semi-Annual, ISSN: 2325-9914) is published jointly by the Center of Chrisitanity and China in Los Angeles, USA and the Center for the Study of Religion and Chinese Societyhttps://chinesecs.cn/6431.html
8.Zlibrary进阶使用方法新人报道信息时代,涌现出了各种各样的图书分享网站:鸠摩搜书、genesis Library、古登堡计划……其中zlibrary是一个非常好的网站,提供上千万本的图书下载。近期发现zlibrary有很多功能没有用到,研究了一下之后,分享给大家。 如何进入zlibrary? 使用这个网站的第一步是进入这个网站,不然怎么能够使用呢? https://sspai.com/post/74027
9.RoughGuideMandarinChinesePhrasebook(withAudio)thirty-two sanshier sahn -shur-er Liang is similar to 'a couple' in English and is used with measure words (see below): two friends liangwd pengyou lyang-way pung-yoh two buildings liangsuo fangzi lyang-swor fahng-dzur Ling (zero) is used when there are zeros in the middle of a https://epdf.tips/rough-guide-mandarin-chinese-phrasebook-with-audio.html
10.AntDesignimage浏览pdf文档antdesignlibrary不过后来还是在ant的基础上搞出来了,此帖不光能解决一个library的依赖问题,还能解决多个library递归依赖的问题。 ===正文=== 废话不多说,贴上build.xml 1. <?xml version="1.0" encoding="UTF-8"?> 2. <project name="ProjectName" default="release" basedir="."> 3. <property file="https://blog.51cto.com/u_14444/10716970
11.知网论文下载攻略,探索学术资源的必备指南经济本文提供知网论文下载指南,帮助学术研究者探索学术资源的有效途径。通过简单易懂的步骤,指导用户如何高效利用知网平台获取所需的学术资料。本文旨在帮助读者更好地了解知网的使用方法,提高学术研究效率,促进学术交流与发展。 本文目录导读: 了解知网 注册与登录 http://app.huayiii.com/post/14554.html
12.初中高中英语单词带音标全20240602105145.pdf初中、高中英语单词带音标全.pdf 74页VIP内容提供方:微传网络 大小:51.71 MB 字数:约48.07万字 发布时间:2024-06-06发布于河北 浏览人气:37 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)初中、高中英语单词带音标全.pdf 关闭预览 想预览更多内容,点击免费在线预览https://max.book118.com/html/2024/0602/7020013026006115.shtm
13.数字图书馆Zlibrary免费的数字图书馆,图书种类丰富,统统免费下载!找个好的阅读器开始书香之旅吧! 介绍: Zlibrary是全球最大的数字图书馆,自2009年免费的图书馆,里面包含各种文学著作,理工学科,人文艺术、学术论文等应有尽有,书籍提供多种格式下载,包括PDF、epub、mobi等格式下载! https://www.zaera.cn/6429.html
14.PDF本资源为PDF-XChange Editor Plus(PDF编辑器)官方中文版64位V8.0.333.0 的安装包,这是一款非常好用的PDF 编辑器,支持PDF文档编辑、添加图章水印、插入图片、虚拟打印机等功能。总之功能特别强大,大大提高办公效率! PDF-XChange Edit PDF编辑器 官方中文版64位V8.0.333 免费版2020-06-15 上传大小:180.00MB https://www.iteye.com/resource/qq_37225042-12524195
15.Zlibrary复活教程!懒人找资源https://bbs.yibook.org/d/206-hui-fu-xia-zai-fang-shi-2-shi-yong-tor-xia-zai-z-library-zi-yuan 小懒很多年没玩Tor了,这里就不测试了。 而且看样子没有TG机器人好用 2 TG机器人 教程帖: https://bbs.yibook.org/d/220-hui-fu-xia-zai-fang-shi-1-tong-guo-tg-ji-qi-ren-xia-zai-z-https://www.shangyexinzhi.com/article/5430961.html
16.第48章MDK的编译过程及文件类型全解(1)腾讯云开发者社区(4) 使用armlink链接对象文件,根据程序的调用把各个.o文件的内容链接起来,最后生成程序的axf映像文件,并附带程序各个域大小的说明,包括Code、RO-data、RW-data及ZI-data的大小。 (5) 使用fromelf生成下载格式文件,它根据axf映像文件转化成hex文件,并列出编译过程出现的错误(Error)和警告(Warning)数量。 https://cloud.tencent.com/developer/article/1623176
17.TowardsUnderstandingThirdTowards Understanding Third-party Library Dependency in C/C++ Ecosystem Wei 1 Tang , Zhengzi Xu2?, Chengwei 2 Liu , Jiahui 2 Wu , Shouguo 3 Yang , Yi 2 Li 12 Ping Luo and Yang Liu 1 School of Software, Tsinghua University, Beijing, China 2 School of Computer Science and https://dl.acm.org/doi/pdf/10.1145/3551349.3560432
18.filezillaserver下载缓存问题模拟搜索引擎 [仿站教程] 整站下载器如何单独下载图片? http://yqlj.iis7.com/ahtml/filezillaserver%E4%B8%8B%E8%BD%BD%E7%BC%93%E5%AD%98%E9%97%AE%E9%A2%98
19.zilibrary怎么用输入书名,中英文皆可,选择想要下载的书籍,注意选择epub格式,点击确定下载(图二)下载完成后找到浏览器右上角的下载按钮,点开可以看到所有下载的书籍(图三)。点击下载好的书籍,则可自动跳转至iPad自带的图书app 以上步骤完成,就可以愉快的看书啦~&#129716;Z-library里还可以搜到PDF文件,用其他https://zhidao.baidu.com/question/207996308362471485.html
20.llPdfLibFullSource3.6.rarCreatePDFDelphidelphi下载海量资源 写文章/发动态/加入社区 立即登录 会员中心 消息 创作中心 学习中心成长任务 发布 版权申诉 delphi 5星· 超过95%的资源115 浏览量2022-07-15上传1.81MBRAR Delphi的PDF开发控件,llPDFLib是一个100 的Object Pascallibrary,用于创建PDF文档。用它创建PDF文档不使用任何DLL和其他第三方软件。llPDFLib包括https://download.csdn.net/download/weixin_42651887/86211048
21.InDesign全真试题库4,下列有关页面(Pages)调板的描述,哪些的错误的(D) ZI'MfkEZ* 在页面调板中显示了文档的所有主页和文档页面 vqq7IV)| 页面调板分为上下两部分,上部分为主页(Master Page),下部分为文档页(Document Page) pYtG%< 可以通过页面调板来改变文档页的前后顺序 ^CIO,I https://www.douban.com/note/127704737/
22.终身VIP会员可用蚂蚁图书馆公告55. The Air University Library's index to military periodicals [electronic resource] : AULIMP [2000 - ] 56. Airiti Library, Hua yi xian shang tu shu guan [electronic resource] : CEPS Zhong wen dian zi qi kan zi liao ku ji ping tai fu wu + CETD Zhong wen shuo bo shi zi liao kuhttp://lib.mayiso.com/zrk/tsggg/2014-11-02/1645.html
23.如何在zilibrary上下载电子书到静读天下【创新维】_触控一体机哪个品牌好 【创新维】_无线触摸一体机 【创新维】_85寸触摸一体机厂家 【创新维】_触控一体机42寸 【创新维】_山东42寸触摸一体机 【创新维】_佛山触摸一体机 【创新维】_触摸一体机厂商 【创新维】_天津触控一体机 【创新维】_纳米电容屏黑板 https://xbeibeix.com/video/BV1BN4y1K7Za