汽车电子expert成长之路

本博客发布的个人原创精品----嵌入式系统技术文章,欢迎大家参考学习,并转发分享!

S32DS使用Tips--SDK使用常见问题(FAQ)答疑

2
阅读(908) 评论(0)

内容提要

引言

FAQ NO.1 如何创建在MCU应用工程中添加SDK?

方法1. 在新建应用工程向导中选择使能相应的SDK

方法2. 选中应用工程,右键-->SDKs添加(适用于创建工程时未使能SDK的应用工程)

FAQ NO.2 如何添加/切换使用SDK时Processor Expert的MCU引脚封装?

FAQ NO.3 如何打开SDK的demo工程以及如何使用demo工程?

FAQ NO.4 如何获取并安装最新版本的SDK?

方法1. 通过S32DS IDE的软件更新推送,给S32DS IDE打补丁安装

方法2. Check S32DS IDE官网,下载升级包安装

FAQ NO.5 如何查看SDK外设组件(Component)的帮助文档?

总结


引言


使用S32DS IDE开发NXP S32K/R系列MCU以及Qorivva MPC57XX系列MCU应用程序的工程师,可能已经注意到,其集成了可以图形化配置并自动生成代码的处理器专家系统--Processor  Expert,用于配置SDK。使用NXP提供的MCU SDK可以省去大家开发外设底层驱动的时间和精力,帮助大家实现产品原型的快速开发和功能验证。

10.jpg

NXP S32DS IDE 中提供的SDK软件架构如下:

11.jpg

本文旨在答疑一些大家使用SDK和Processor Expert时遇到的常见问题(FAQ),以帮助大家更好的使用S32DS IDE的SDK。


Tips:本文介绍内容虽然基于S32DS for Power v2017.R1和MPC5744P SDK,但其同样适用于其他版本的S32DS for ARM/Power以及其他MCU系列(比如S32K、MPC5748G和MPC5746C等)的SDK。


FAQ NO.1 如何创建在MCU应用工程中添加SDK?


方法1. 在新建应用工程向导中选择使能相应的SDK


新建应用工程向导第一步,菜单File-->New-->New S32DS Project:

12.jpg

新建应用工程向导第二步,输入应用工程名(只能以英文字母开头,不能包含英文字母和阿拉伯数字以及下划线之外的其他特殊字符)、选择储存路径(默认位置为打开S32DS IDE时选择的工作空间Workspace)、选择MCU Part Number以及内核编译工具链(如果安装并想使用其他第三方工具链,请在此选择,默认选择为S32DS IDE集成的GCC工具链)等设置:

13.jpg

新建应用工程向导第三步,选择内核和SDK、C语言库,标准输入输出设备支持以及默认调试器等,在此点击选择需要使用的SDK即可:

14.jpg

15.jpg

工程创建成功后,在应用工程浏览器(Project Explorer)窗口中,可以看到有一个叫ProcessorExpert.pe的文件,即为SDK的处理器专家配置信息储存文件:

16.jpg

方法2. 选中应用工程,右键-->SDKs添加(适用于创建工程时未使能SDK的应用工程)


如果你已经创建好了一个MCU的应用工程,但是在工程创建向导中没有使能SDK,也可以以下方法和步骤使能SDK:

首先,选中应用工程,然后右键-->SDKs:

17.jpg


在弹出的SDKs选择界面中,选中想要添加的SDK,然后选择Attach/Detach...,在弹出的Attach/Detach SDK窗口中,点击添加相应的编译目标,然后OK:

18.jpg

此时可以看到,相应的Debug、Release和Debug_RAM编译目标下该SDK都有“+”了,表示已经使能,点击Apply-->OK:

19.jpg

Tips:在以上窗口中,可以通过显示所有(SDKShow all SDKs)和只显示最新版本(Show only latest version),对SDK进行筛选,并实现在不同的SDK版本之间相互切换。


最后,在应用工程的浏览器(Project Explorer)窗口中,可以看到SDK的配置文件ProcessorExpert.pe和SDK的代码保存目录都已经被创建并添加到当前应用工程了:

20.jpg

Tips:请注意,此时SDK相应的代码并没有被生成,所以在编译工程之前,需要点击应用工程的浏览器(Project Explorer)窗口的SDK的配置文件ProcessorExpert.pe打开SDK组件浏览窗口,并点击生成代码:

21.jpg

此时,点击Processor Expert生成代码后,立即编译工程,会报若干SDK目录下的startup.c启动文件中的变量/符号未定义的错误:

22.jpg

这是因为添加SDK之后,其在Project_Settings-->Linker_Files下添加了两个来自SDK的链接文件--MPC5744P_flash.ld和MPC5744P_ram.ld,而默认不带SDK的应用工程的链接器设置中还是使用的之前创建工程时默认的链接文件--57xx_flash.ld和57xx_ram.ld以及libs.ld

23.jpg

所以需要将其删除并添加正确的链接文件到相应的编译目标即可:

  • Debug/Release-->MPC5744P_flash.ld;

  • Debug_RAM-->MPC5744P_ram.ld;

24.jpg

若此时编译还会遇到如下_start()启动函数多处定义的错误:

25.jpg

解决办法是选中应用工程,右键-->Build Configuration Explorer,打开编译配置浏览器窗口:

26.jpg

在打开的编译配置浏览器窗口中点击工程Startup_Code目录下的所有汇编文件,将其移出编译(点击相应的加号“+”即可):

27.jpg

然后,将应用工程clean并重新编译即可成功编译:

28.jpg

Tips:从以上介绍可以看到,如果大家想使用NXP的SDK,最好在创建应用工程向导中就选择使能。


FAQ NO.2 如何添加/切换使用SDK时Processor Expert的MCU引脚封装?


不同的MCU引脚封装(package),对于的引脚数量和功能不同,在使能SDK时,其默认添加的只是其中的一种封装(一般默认为该MCU part 对应的最大封装),比如本文测试的MPC5744P,则为其最大的MPGA-257封装:

29.jpg

若想要切换到其他封装,方法和步骤如下:


在SDK的组件库(Components Library)窗口中选择Processor-->Applicable to project, 然后找到创建应用工程时选择的MCU part,右键-->Add to project:

30.jpg

在弹出的窗口中选择想要添加的封装,这里选择MPC5744P LQFP144-pin的封装(可以同事选择多个不同的封装),然后next

31.jpg

然后,选择要适用的工具链(此处为S32DS IDE自带GCC 编译器)-->Finish:

32.jpg

可以看到,这样刚刚选择的新的MCU封装就被添加到应用工程,并被自动选择为当前应用工程的目标封装(Target Package):

33.jpg

但是,此时PinSettings组件存在error,因为改变了封装,之前封装上的某些引脚信号在新的封装上不一定存在或者匹配,消除error的方法和步骤如下:


首先,在组件浏览器窗口选择Reload Project,并同步更新ProcessorExpert.pe配置文件:

34.jpg

35.jpg

然后,选中PinSettings组件右键-->Remove Component(s) from Project,将其删除:

36.jpg

并在组件库(Components Library)-->Categories中搜索PinSettings组件,右键-->Add to project, 重新添加该组件即可:


37.jpg

另外,此时,若想要重新切回之前的封装(MPC5744P LQFP144-->MPC5744P MBAG257)也是可以的,具体方法步骤如下:


在组件浏览器窗口Processor下,选中想要切换回的之前的封装,右键-->Component Enabled, 重新使能该组件:

38.jpg

这样,就可以将目标MCU的封装切换为之前的封装,同样,此时PinSettings组件也会存在error,需要按照上面介绍的方法,将该组件从当前应用工程中删除并重新添加即可。


FAQ NO.3 如何打开SDK的demo工程以及如何使用demo工程?


S32DS IDE及SDK安装时,其会将SDK的Demo工程一起安装到S32DS的安装目录下供大家学习和参考,之后,用户可以从菜单File-->New-->S32DS Project from Example打开SDK的Demo工程Import窗口:

39.jpg

在Create S32DS Project from Example窗口中,选择想要学习的SDK版本,目标MCU型号以及相应的SDK组件demo工程,即可以在其右边的Description窗口中看到该demo工程的大概功能表述,选择Finish,即可打开所选择的SDK Demo工程:

40.jpg

在导入的SDK外设组件demo工程在工程浏览器(Project Explorer)窗口的doxygen目录下,有一个以工程名命名的dox文档,其中包含了改demo工程的详细信息:


  • Application description:工程软件代码实现功能描述;

  • Prerequisites:工程运行要求;

  • Boards supported:支持的硬件开发板(即SDK release时使用的测试板子);

  • Hardware Wiring :硬件信号线/跳线/跳帽;

  • How to run:具体的工程下载、调试步骤和观察到的结果描述

41.jpg

Tips:S32DS IDE的SDK中集成了丰富的外设组件demo工程,这些SDK的demo工程是我们学习使用SDK最好的参考资料,强烈推荐大家在使用某一个外设组件之前,仔细阅读学习和测试相应的demo工程,在此基础上修改或者移植自己的SDK工程。


FAQ NO.4 如何获取并安装最新版本的SDK?


NXP的SDK在不断的更新中,使用最新版本的SDK,可以保证驱动的正确和稳定。S32DS IDE SDK的更新通常包含在S32DS的补丁包中,有以下两种方法可以安装最新版本的SDK:


方法1. 通过S32DS IDE的软件更新推送,给S32DS IDE打补丁安装


在S32DS IDE的菜单help-->Check for Updates,检查并打开软件可用更新(Available Updates)窗口:

42.jpg

在弹出的Available Updates窗口中,选择可用的补丁,Next

43.jpg

44.jpg

Next,选择同意相应的license条款-->Finish即可完成安装:

45.jpg

46.jpg


Tips:通过此种方法更新补丁非常方便快捷,但是需要电脑连接到互联网,且有时最新的SDK补丁包不一定及时推送到S32DS IDE中;


方法2. Check S32DS IDE官网,下载升级包安装


在网页浏览器的地址栏输入:https://www.nxp.com/S32DS,然后回车,即可打开S32DS IDE的官网网页:

47.jpg

点击相应的链接就可以进入不同目标MCU/内核版本的S32DS IDE官网网站;

比如我们点击进入到S32DS for Power的官网网页,切换至DOWNLOADS一栏,选择更新和补丁(Updates and Patches )即可看到所有release的更新和补丁包,选择需要的补丁包,下载到本地磁盘:

48.jpg

然后,在S32DS IDE中,选择菜单Help-->Install New Software...,打开新软件安装窗口:

49.jpg

在安装(Install)界面中,选择Add...-->Add Repository(软件仓库),选择Archive(压缩包)...,将下载到本地磁盘的补丁包(无需解压)添加进来:

50.jpg

然后,选择所选软件安装压缩包中需要安装的软件更新或者补丁,next,同意相应的license条款,最后Finsih,即可完成安装。

51.jpg

52.jpg

53.jpg


Tips:使用此方法,无需电脑连接到互联网,只需要提前在联网的电脑上下载好软件更新和补丁就好,所以此方法适用于电脑无法连接到外网或者网速较慢的场合。


Tips:另外,已经安装过的补丁,无法再次安装,所以如果选择的补丁包中包含了之前已经安装过的软件更新或者补丁,则需求将其勾选去掉;低版本IDE的补丁包也可以安装到高版本的IDE中使用。


FAQ NO.5 如何查看SDK外设组件(Component)的帮助文档?


在应用工程中添加了SDK的外设组件后,在工程的组件浏览窗口中选中某一外设组件,右键-->Doxygen Documentation, 即可打开其帮助文档:

54.jpg

该帮助文档为存储在S32DS IDE安装目录下的网页文件:

55.jpg

该该文件中,包含SDK各个外设组件的详细功能表述(Detailed Description),特性(Features),功能(Functionality)、初始化配置(Initialization)、注意事项(Important Notes)、demo代码(Example code)、数据结构(Data Structures)以及相应的API函数参数描述(Functions)等;


Tips:在S32DS IDE的安装目录下,也提供了相应SDK的pdf格式的帮助文档,方便大家阅读、学习和使用:

56.jpg

其中不仅包含了所有网页版帮助文档的内容,还囊括了支持MCU平台(Supported Platforms)、IDE支持、MISRA兼容性、例程和demos等相关内容,是大家学习和使用SDK最好的一手资料:

57.jpg


总结

本文回答了大家在使用NXP S32DS IDE集成的SDK时遇到的几个常见问题,并给出了一些实用的SDK学习和使用Tips,希望对大家有所帮助。

当然,要正真使用好SDK,不但需要仔细阅读本文中介绍的SDK demo工程和帮助文档进行归纳和总结,还需要了解其软件架构和编程思想,我会在后面的文章中为大家带来相关内容,敬请关注!