内容提要

1. S32DS for ARM v2018.R1安装IAR Eclipse Plugin插件

2. S32DS for ARM v2018.R1 安装IAR Eclipse Plugin后配置输出IAR链接器输出转换器(Output Converter)生成S19/HEX/BIN文件,编译报错问题的解决

3. S32DS for ARM v2018.R1 安装IAR Eclipse Plugin后,添加S32K SDK的PAL层组件编译报错文件解决

4. 将IAR和GCC(S32DS)工具链集成在一个S32DS应用工程中,共用一个SDK处理器专家配置

5. 为样例工程创建PEMicro调试器的调试目标

众所周知,IAR IDE是业界广泛使用的ARM Cortex M系列内核MCU编译、链接和调试工具链,S32K1xx系列使用的正是ARM Cortex M4F/M0+内核,所以,大家也可选择IAR IDE作为S32K1xx系列MCU的软件开发工具链,但目前,S32K SDK虽然可以支持IAR编译器,但没有提供单独的处理器专家图形化配置软件。

因此,本文将详细介绍如何在S32DS中安装和使用IAR Eclipse Plugin插件,然后利用S32DS IDE集成的处理器专家系统配置S32K SDK,并可以方便地调用IAR工具链对其进行编译、链接和调试:

此外,本文还提供了一个样例工程,将IAR和S32DS的GCC工具链通过不同的编译目标集成在一个应用工程中,使用同一个SDK的处理器专家配置和生成底层驱动,希望对大家有所帮助和启发。

1. S32DS for ARM v2018.R1安装IAR Eclipse Plugin插件

首先,下载安装IAR软件到电脑,并激活license,确保可以正常使用--新建S32K系列MCU的应用工程,编译、链接和调试都OK。Embedded_Workbench_8.0_ARM_8.10及以上版本对S32K系列MCU的支持较好,建议使用;

然后,打开S32DS for ARM v2018.R1安装目录下的IAR Eclipse Plugin安装指南--HOWTO_Install_IAR_Eclipse_plugin_into_S32_Design_Studio_for_ARM.pdf,根据其中步骤进行插件安装和设置,然后就可以在S32DS for ARM v2018.R1新建工程向导中看到IAR的选项了,添加相应的SDK后,就可以生成IAR工具链的驱动代码。

Tips:在C:\NXP\S32DS_ARM_v2018.R1\S32DS\help\resources\howto目录下,还有其他S32DS使用技巧和指南都非常实用,可以参考学习!

2. S32DS for ARM v2018.R1 安装IAR Eclipse Plugin后配置输出IAR链接器输出转换器(Output Converter)生成S19/HEX/BIN文件,编译报错问题的解决

在安装IAR Eclipse Plugin后,若配置输出IAR链接器输出转换器(Output Converter)生成S19/HEX/BIN文件:

然后,再编译应用工程,将提示以下链接器错误:

Fatal error[Ms007]: could not open file "config.icf"

解决办法是:去掉IAR链接器配置文件设置的双引号“”:

"${ProjDirPath}/Project_Settings/Linker_Files/S32K144_64_flash.icf"

${ProjDirPath}/Project_Settings/Linker_Files/S32K144_64_flash.icf

这样,再重新编译工程即可:

3. S32DS for ARM v2018.R1 安装IAR Eclipse Plugin后,添加S32K SDK的PAL层组件编译报错文件解决

基于IAR Eclipse Plugin,创建SDK的IAR工程时,添加外设抽象层(PAL)组件后,编译时会提示相应的PAL组件的头文件找不到的错误:

Fatal error[Pe1696]: cannot open source file "xxx_pal.h"

比如,添加can_pal组件后,生成代码,并编译,将提示以下错误:

Fatal error[Pe1696]: cannot open source file "can_pal.h"

解决方法是:在工程属性C/C++ Bulid-->Settings-->Tool Settings-->IAR C/C++ Compiler for ARM-->Preprecessor-->Additional include directories: 点击“+”添加PAL层组件的SDK目录即可:

Tips: 使用相对路径可以保证工程在其他电脑上也可以正确找到该文件路径!

4. 将IAR和GCC(S32DS)工具链集成在一个S32DS应用工程中,共用一个SDK处理器专家配置(样例工程下载与使用介绍)

新建工程时选择IAR和GCC工具链,使用处理器专家配置生成的SDK代码默认是不兼容的,因为其启动文件和链接文件不兼容。为了我制作一个使用S32K14x SDK RTM 2.0.0的S32DS for ARM v2018.R1的S32K144应用工程模板,通过配置不同的编译目标解决了IAR和GCC工具链兼容的问题,大家可以参考学习!

Tips:关于S32DS IDE中如何创建应用工程的编译和调试目标以及S32DS IDE的工程属性配置,请参考如下公众号文章(点击文章标题即可直接跳转阅读)

1.《 》;

2.《》;

下面具体介绍其使用方法。

首先,到如下百度云盘分享链接下载样例工程--S32K144_SDK_RTM_2_0_Iar_Gcc_CombinePrj.zip 到本地磁盘:

提取码: a6a4

然后,打开S32DS for ARM v2018.R1 IDE,通过菜单File-->Import, 将样例工程导入到当前Workplace:

导入后的样例工程如下,就可以像其他基于处理器专家的SDK工程一样添加S32K14x SDK的其他SDK驱动组件、配置并自动生成代码,然后使用IAR或者GCC对其进行编译、链接和调试了:

Tips:如果想在样例工程中添加SDK的PAL组件,并使用IAR工具链对其编译,还是需要像前面介绍的那样,将该PAL组件生成的SDK源代码目录手动添加到IAR C编译器包含目录中才能正常编译。

然后,可以通过选择不同的编译目标使用不同的工具链对当前工程进行编译:

5. 为样例工程创建PEMicro调试器的调试目标

在以上样例工程中,默认只有基于IAR C-SPY,使用J-LINK或者i-Jet作为调试器的调试目标,若手上没有这类调试器,想使用PEMicro的调试器,比如U-Multink/FX, U-Cycone/FX或者EVB板载的OpenSDA,来调试这个样例工程的话,可以参考一下步骤创建PEMicro调试器的调试目标:

首先,将编译目标切换为gcc_Debug,并成功编译生成elf文件:

然后,在工程的Debug Configurations窗口中,双击“GDB PEMicro Interface Debugging”,即可创建基于PEMicro调试器的调试目标,并自动命名为<工程名>_<当前编译目标>;

选择该调试目标,然后,在main一栏中,已经将Project自动设置为了当前应用工程,但C/C++ Applications中应用程序还是空的,这时点击“Search Project..”,在弹出的程序选择(Program Selection)窗口中,选择当前应用工程gcc工具链编译生成的elf文件(这里不能选择.out文件,因为.out文件是IAR的编译结果,基于GDB的PEMicro调试器无法识别):

接着,切换到当前调试目标的Debugger配置一栏,选择正在使用的PEMicro调试器,这里我的测试目标板为S32K144的EVB,使用其板载的OpenSDA作为调试器;

点击“Select Device”,选择目标MCU part number为NXP,S32K1xx Family, S32K144F512M1S:

并在GDB Client Settings-->Executable,配置GDB的可执行文件如下:

${arm32_cross_prefix}gdb${arm32_cross_suffix}

“Select Device”选择目标器件的窗口如下:

完成以上设置后,就创建好了使用PEMicro 调试器调试样例工程的调试目标,使用该调试目标就可以下载和调试样例工程了:

IAR具有很高的编译效率,而且有强大的代码测试功能和丰富的高级调试功能,可以帮助大家提高S32K1xx系列MCU的开发和调试效率,通过IAR Eclipse Plugin插件,能够在S32DS IDE中完美的统一IAR和GCC工具链,并使用处理器专家配置和生成SDK代码,完成底层驱动的开发,这样可以大大缩短产品的开发周期,提高开发效率,强烈推荐大家使用。

好消息:以后本公众号的所有原创文章,公众号发布后只要满足以下3个条件之一(单篇):

1) 打赏总金额超过500RMB;

2) 累计总阅读量超过8888;

3) 累计点赞超过500;

我就将其整理成带目录和书签的高清PDF文档,免费分享给大家~!

Tips:大家要是觉得我的文章写得精彩,有用,希望获得高清PDF版本。就请大家多点赞,转发分享和打赏~! 谢谢~!

本微信公众号已经发布的个人原创精品----嵌入式系统技术文章链接如下,欢迎大家参考学习,并转发分享(可直接点击下列文章题目跳转阅读):

1. 汽车电子ECU bootloader开发系列

2. 浅谈嵌入式MCU开发系列

3.   外设使用Tips系列

4. S32DS 使用Tips系列

5. CodeWarrior IDE使用Tips系列

6.   汽车ECU参数标定系列

7.   《答疑解惑》系列

原创写作不易, 如果大家觉得本文对你的工作和学习有帮助,也欢迎大家赞赏鼓励----我将坚持写作,给大家带来更多精彩的原创文章。

Tips:现在iPhone和Android手机的用户均可点击本文文末的“喜欢作者”对本文进行赞赏。

如果你喜欢本公众号的文章,请点击文章最开始的公众号关注或微信直接长按扫描识别下方二维码关注,你也可以在微信添加朋友-->公众号-->输入"汽车电子expert成长之路"搜索-->点击关注。若对本文观点有任何意见和建议也欢迎留言指出。

Enwei Hu(胡恩伟)

2018年11月7日于山城·重庆.