0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用S32DS开发环境快速开发高性能汽车MCU应用

华兴万邦技术经济学 来源:华兴万邦技术经济学 作者:华兴万邦技术经济 2022-03-31 14:48 次阅读

随着市场需求和汽车行业不断推进电动化、网联化、智能化和共享化等“新四化”,工程师将会面对越来越多的软件开发项目,去用高性能的、获得车规级和功能安全认证MCU开发相关应用。将MCU供应商匹配提供的MCU开发环境,与业内领先的开发工具相结合,将会给开发人员带来开发效率和成果性能的大幅提升。

本文以在汽车行业被广泛使用的S32K系列32位Arm Cortex汽车MCU为例,来介绍通过整合利用其S32DS开发环境和在行业中已被广泛采用的IAR Embedded Workbench for Arm工具链,快速开发高性能汽车MCU应用。

自2017年推出以来,NXP S32K1 MCU在汽车电子市场上被广泛应用。在此基础上,NXP于2020年推出S32K3 MCU,进一步扩展了基于Arm Cortex-M0+/M4F的S32K1 MCU系列产品。全新的S32K3 MCU基于Arm Cortex-M7,并提供了多核和锁步选项,可支持功能安全 ISO 26262 ASIL B/D。S32K3 MCU主要用于汽车车身电子系统、电池管理和新兴的域控制器

01

459745bc-b0a5-11ec-aa7f-dac502259ad0.png

图1:NXP S32K(来源:NXP)

为了解决与日俱增的软件复杂度问题,NXP推出了实时驱动(RTD),可支持AUTOSAR和非AUTOSAR应用上的实时软件,主要用于Arm Cortex-M内核,使所有软件层均符合ISO 26262要求。从而可以快速完成符合相关认证要求的应用。

45b151b4-b0a5-11ec-aa7f-dac502259ad0.png

图2:NXP 实时驱动(RTD) (来源:NXP)

NXP S32K3 MCU拥有广泛的合作伙伴来帮助客户开发。作为NXP的重要合作伙伴,IAR Systems提供专业的嵌入式软件开发工具。最新推出的IAR Embedded Workbench for Arm V9.20.1已经正式支持NXP S32K3 MCU (见参考材料1)。IAR Embedded Workbench for Arm V8.50.10 功能安全版本可用于基于S32K3实时驱动(RTD)的应用开发。

45c22ec6-b0a5-11ec-aa7f-dac502259ad0.png

图3:IAR Systems嵌入式软件开发工具

IAR Embedded Workbench for Arm广泛应用于汽车电子软件开发。其高度优化的编译器可以生成运行效率极高、并且体积小的可执行代码,最大程度释放MCU性能,降低FLASH和RAM的占用。同时IAR Embedded Workbench for Arm具有强大的调试器、代码分析工具可以帮助研发人员提升开发效率,提高代码质量,保障产品的可靠性。

为了方便客户的应用开发,IAR Embedded Workbench for Arm与NXP S32DS工具做了相应的集成,方便客户在IAR Embedded Workbench for Arm工具上快速进行工程初始化。

NXP的S32 Design Studio中的S32配置工具(Configuration Tools) 可以快速配置引脚、时钟和外设,大大简化了S32K3 MCU的配置工作,可以加速开发前期的准备工作。通过S32DS做项目工程初始化,然后导入到IAR Embedded Workbench for Arm中进行项目开发,可以为S32K3系列芯片用户带来极大的便捷。

02

下面将具体介绍如何利用NXP S32DS建立工程并导入到IAR Embedded Workbench for Arm来加快基于NXP S32K3 MCU的汽车软件开发。

在NXPS32DS中安装IAREclipse插件

NXP S32DS支持IAR Eclipse插件,但是IAR Eclipse插件没有包含在S32DS安装包中,需要单独安装,其方法可具体可以阅读(参考材料2)。在实际应用中,这适用于S32 Design Studio for ARM,同样也适用于S32 Design Studio for S32 Platform。

在NXPS32DS中建立工程

在NXP S32DS中建立工程并选择IAR Toolchain for Arm作为对应的工具链:

45df3b92-b0a5-11ec-aa7f-dac502259ad0.png

然后通过Configuration Tools配置对应的引脚、时钟和外设并自动生成相应的代码:

45efd97a-b0a5-11ec-aa7f-dac502259ad0.png

导出S32DS工程到IAREmbedded Workbench for Arm

在S32DS中建立工程时,如果选择了IAR Toolchain for Arm 作为工具链,对应的工程可以导出并导入到IAR Embedded Workbench for Arm,具体步骤可以查阅(参考材料3)。导出工程的操作适用于S32 Design Studio for ARM和S32K1,同样也适用于S32 Design Studio for S32 Platform和S32K3。

但是按照链接中的操作之后,IAR Embedded Workbench for Arm工程文件夹目录和NXP S32DS里面的原有工程文件夹目录不一致:

460ab786-b0a5-11ec-aa7f-dac502259ad0.png

461b7b48-b0a5-11ec-aa7f-dac502259ad0.png

为此IAR提供了一个叫做EWPtool的插件,可以导入对应的源文件目录到工程,具体可以查阅(参考材料4)。

03

下面是在从NXP S32DS导Workbench for Arm中之后的操作:

1. 删除对应的Freescale Processor Expert文件夹(对应的工程文件夹目录都会被删除):

462f6950-b0a5-11ec-aa7f-dac502259ad0.png

2.添加新源文件目录并选择对应工程目录(指向NXP S32DS创建工程的目录):

46405fd0-b0a5-11ec-aa7f-dac502259ad0.png

46571e32-b0a5-11ec-aa7f-dac502259ad0.png

3.对应IAR Embedded Workbench for Arm的工程文件夹目录和NXP S32DS里面的原有工程文件夹目录一致:

466d0daa-b0a5-11ec-aa7f-dac502259ad0.png

468223c0-b0a5-11ec-aa7f-dac502259ad0.png

4.由于NXP S32DS中的startup代码中的程序入口函数和中断向量表与IAR Embedded Workbench for Arm默认使用的程序入口函数和中断向量表不同,需要做下面的配置(在Linker选项中指定对应的程序入口函数,在Debugger选项中指定对应的中断向量表地址:“--drv_vector_table_base=_ENTRY_VTABLE”):

46956458-b0a5-11ec-aa7f-dac502259ad0.png

46b2f0c2-b0a5-11ec-aa7f-dac502259ad0.png

5. 然后就可以在IAR Embedded Workbench for Arm中进行编译,下载和调试等相关操作了:

46cad4da-b0a5-11ec-aa7f-dac502259ad0.png

总结

本文以NXP最新推出的S32K3 MCU及相关的软件开发资源为例,通过展示如何利用NXP原厂配置的S32DS工具建立基于S32K3 MCU的工程,并选择业内广受欢迎的IAR Toolchain for Arm 作为工具链来提升对代码质量要求很高的项目的开发效率。通过NXP S32DS中的Configuration Tools配置对应的引脚、时钟和外设,并自动生成相应的代码,然后导出NXP S32DS工程到IAR Embedded Workbench for Arm进行后续开发。利用NXP S32DS的灵活配置和IAR Embedded Workbench for Arm高效的编译效率加快基于NXP S32K3 MCU的汽车软件开发。

当然,随着越来越多的中国科技企业在工业应用、医疗设备和其他要求高可靠性和高性能的关键应用中发力,在这些领域中也存在着如何结合MCU原厂开发工具,以及诸如IAR Systems这些第三方厂商提供的高性能工具链各自的优势做应用开发的机会,工程师朋友们可以多做了解和尝试。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16011

    浏览量

    343544
  • 汽车电子
    +关注

    关注

    2999

    文章

    7446

    浏览量

    161561
  • S32DS
    +关注

    关注

    0

    文章

    8

    浏览量

    682

原文标题:如何结合原厂MCU和开发环境与业内领先软件工具来加速关键任务型应用开发

文章出处:【微信号:Technomics,微信公众号:华兴万邦技术经济学】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    瑞萨RA8T1高性能电机控制新品解读(下)应用与开发

    在上一篇文章中,我们介绍了高性能RA8T1 MCU的整体概况和性能配置解析。最后我们进入到开发人员最为关心的部分,关于目标应用及开发支持。
    的头像 发表于 02-21 12:17 495次阅读
    瑞萨RA8T1<b class='flag-5'>高性能</b>电机控制新品解读(下)应用与<b class='flag-5'>开发</b>篇

    【国产高性能运动控制MCU 先楫HPM5361】开发板介绍与准备

    HPM5361EVK是一款基于先楫HPM5300系列高性能RISC-V内核MCU开发板。它具有双精度浮点运算和强大的DSP扩展能力,主频为480MHz,内置1MB Flash和288KB SRAM
    发表于 12-03 13:22

    使用Arduino IDE搭建AT32 MCU开发环境

    使用Arduino IDE搭建AT32 MCU开发环境旨在帮助使用Arduino IDE开发AT32的用户,快速建立
    发表于 10-26 07:48

    高可靠、高性能车规MCU, 满足车身控制多元应用

    等;故障率接近零容忍,使用寿命也更长。 车规等级制程、高可靠、高性能MCU 笙泉迈向一般汽车和新能源车用市场,将安全和可靠性的严谨要求置于首位,遵循AEC-Q100标准打造了这款8位车规MC
    发表于 09-15 12:04

    云途车规MCU软件开发环境搭建及使用详解

    MCU的嵌入式软件开发领域,过去很长一段时间都是以基于Eclipse框架开发的IDE为主,典型此类IDE包括:NXP的CodeWarrior 10.x/11.xIDE, S32DS
    的头像 发表于 08-22 10:12 3734次阅读
    云途车规<b class='flag-5'>MCU</b>软件<b class='flag-5'>开发</b><b class='flag-5'>环境</b>搭建及使用详解

    如何关闭S32DS工作区中的项目?

    我想知道如何关闭 S32DS 工作区中的项目,因为我已经关闭了工作区中的项目但是当我想用 [ctrl+Alt+E] 打开它时显示消息“一个项目已经存在于工作区”已显示,但我什么也看不到!
    发表于 06-05 09:02

    如何将EB Tresos生成的代码集成到S32DS中?

    如何将EB Tresos生成的代码集成到S32DS中? 要将EB Tresos生成的代码集成到S32DS中,可以按照以下步骤操作: 1.打开S32DS集成开发
    的头像 发表于 06-01 16:51 1799次阅读

    S32ds Studio 3.4版是否支持S32K388或S32K358系列?

    S32ds Studio 3.4 版是否支持 S32K388 或 S32K358 系列?
    发表于 05-30 08:08

    S32K1xx开发包和S32K1实时驱动的区别是什么?

    S32DS (Design Studio) 中的 S32K1xx 开发包是什么。 什么是 S32K1 实时驱动程序。 区别和应该安装哪个还是都安装?
    发表于 05-24 10:39

    S32DS v3.5必须配置什么才能在左侧生成代码?

    我必须配置什么才能在左侧生成代码? 目前右边是我的。我正在使用 S32DS v3.5 文件:\\\\board\\\\Siul2_Port_Ip_Cfg.h
    发表于 05-17 06:08

    S32DS for ARM v2.2激活错误怎么解决?

    我在我的笔记本电脑上安装 S32DS for ARM v2.2,它是激活错误。我的笔记本电脑信息包括: 中央处理器:AMD 锐龙 7 PRO 6850HS 操作系统:Windows 11 家庭普通版 22H2
    发表于 05-12 08:46

    为SJA1110 SDK使用S32DS 3.4,在“帮助 -&gt; S32DS 扩展和更新”中找不到任何相关包怎么解决?

    你好。我正在为 SJA1110 SDK 使用 S32DS 3.4。 我在“可用的 S32DS 软件站点”中添加 SDK .zip 文件,用于“首选项 -> S32 平台的 S
    发表于 05-10 07:17

    求分享S32DS的CAN2ETH和ETH2CAN LLCE示例

    我看不到 S32DS 的 CAN2ETH 和 ETH2CAN LLCE 项目示例。 有什么可用的吗?
    发表于 05-05 12:11

    Can_Llce_DS_Can2Can_S32G274A_M7示例的S32DS 3.5错误怎么解决?

    我在打开 S32DS 3.5 中的 Can_Llce_DS_Can2Can_S32G274A_M7 项目时收到了附件。是否可以共享此项目支持的 S32DS 版本? 我正在使用 RTD 4.0.0 和 LLCE 1.5.0。
    发表于 05-05 06:38

    S32DS上的MCAL是否支持TCPIP堆栈?

    只是想确认 S32DS 上的 MCAL 是否支持 TCPIP 堆栈
    发表于 04-27 08:26