当前位置: 首页 > news >正文

Autosar NXP S32K3xx系列 基于EB Tresos 配置复杂驱动MCAL 工程导入关联 技术分享

本文介绍如何使用 S32DS 进行 AUTOSAR MCAL 工程的编译和调试,本文不详细介绍MCAL配置,重点在于集成,虽然配置过程较为繁琐,实操过一遍就会熟悉整个工程的框架。以后每次在 EB 中更新配置,生成代码的文件夹已经集成在 S32DS 工程中,无需手动拷贝。而且再次新建工程可以此为模版,修改个别路径和链接位置即可,十分方便。希望能够帮助到有此需求的朋友们,也是在这里作下笔记避免自己遗忘。

一、 软件安装列表

全篇以 NXP S32K344 为例建立工程,使用到的软件及对应版本如下:

EB Tresos Studio 28.2.0(需要License的话可以直接去NXP官方下载)
MCAL 配置工具
SW32K3_RTD_4.4_2.0.2 MCAL包
S32K3 MCAL RTD 安装包,使用 EB Tresos Studio 进行配置
S32 Design Studio 3.5
NXP S32 系列的集成开发环境(IDE),可用于工程创建、配置、编译、调试等
5.9_D2312.zip
S32DS 升级包第 9 版本
5.8_D2311.zip
适用于S32K3xx 的 RTD 基础开发包

安装教程请移步其他博文,本文直接跳过,开始建立工程。

二、 新建项目

芯片本文使用S32K344举例(若使用K312,K146这些类型的芯片对应选择即可)

设置 FPU,选择Hardware选项栏

三、 删除生成的文件和创建新文件夹

工程创建会自动生成一些启动代码,链接文件,头文件和main.c文件等,因为使用MCAL配置驱动层,在MCAL包内部就含有启动代码(Platform/Startup)和链接文件(Platform/build_files/gcc),以及所需要的模块头文件和源文件,因此需要把工程内的这些文件删掉。

然后在工程目录下创建三个文件夹,分别是Generate,Mcal_Plugins,Tresos_Project Generate:存放EB编译生成的include,src,output文件 Mcal_Plugins:存放MCAL包导入的模块头文件,源文件,以及启动文件和链接文件等Tresos_Project:存放EB工程

同理创建Mcal_Plugins和Tresos_Project文件夹

会看到新创建的文件夹和Debugger文件夹都呈现灰色,是因为还没添加到编译路径。

四、 将新创建的文件夹和Debugger文件夹添加到工程编译路径

同理操作Generate,Mcal_Plugins和Tresos_Project文件夹

五、 在Mcal_Plugins文件夹下添加MCAL包所用到的模块,并且删除一些不需要的文件,只保留include,src,header,startup,build_file

本文使用S32K344 LED作为示例工程,其中需要添加MCAL配置的模块有Base,Platform,Mcu,Dio,Port,Rte模块。(注意Rte模块里面包含了很多SchM文件!!!因此记得需要添加Rte模块,不然最后编译工程会出现很多报错!!!)

介绍一下: Autosar SchM 模块是 AUTOSAR 体系中的一个状态管理模块,它的主要职责是管理系统的状态切换。SchM 模块通过定义一系列的状态和状态转换规则,来实现系统状态的有序切换。在 AUTOSAR 体系中,SchM 模块通常与其他模块协同工作,以实现整个系统的功能。

现在开始操作,首先打开提前下载好的Mcal包,SW32K3_RTD_4.4_2.0.2

打开文件夹下的Plugins文件,就会看到很多模块文件夹,文件夹里面包含许多文件,其中也包含上文所提及我们工程关联所需要的include,src,header,startup,build_file,先随机打开一个Base文件夹给大家看看,以免后续大家的操作会出错。

下图就可以看到里面有我们工程关联所需要的include,src,header,startup,build_file的其中一些文件。

然后回到上层目录,把LED工程所需要的Base,Platform,Mcu,Dio,Port,Rte模块复制到S32DS工程目录下的Mcal_Plugins文件夹。

复制完成后,打开每个模块文件夹,保留下我们工程关联所需要的include,src,header,startup,build_file文件,其他文件都删掉!!!

Base:保留include,src,header Dio:保留include,src Mcu:保留include,src Platform:保留include,src,startup,build_files(只保留gcc,删掉ghs和iar) Port:保留include,src Rte:保留include,src

Base:

Dio:

MCU:

Platform:

Port:

Rte:

做完这些操作后回到S32ds工程下refresh一下工程即可看到Mcal_Plugins目录下我们添加进来并且做了删除更改的文件夹了

六、 在S32ds工程下添加MCAL头文件和源文件路径

右键工程名,选择“Properties -> Build Variables”并添加两项变量

  • “MCAL_MODULE_NAME_SUFFIX” 字段 “_TS_T40D34M40I0R0”
  • “MCAL_PLUGIN_PATH” 路径 “C:\EB\tresos\SW32K3_RTD_4.4_2.0.2\eclipse\plugins”(选择自己MCAL包下载路径下的plugins文件夹路径!!!)

这样配置的好处是,如果S32K3 RTD MCAL 软件包有版本更新,在此处修改路径和模块后缀即可。

(请注意 Base 和 Platform 模块的特殊性!!!),目前只能一条一条添加,如果各位有任何好的办法,欢迎在博文下方留言交流讨论。

上图是添加完路径的图,大家可以参考对照一下。

七、 配置项目参数(添加宏定义,设置优化等级,设置gcc 链接文件

添加宏定义

S32K3XX

S32K344

GCC

USE_SW_VECTOR_MODE

D_CACHE_ENABLE

I_CACHE_ENABLE

ENABLE_FPU

上图是添加完宏定义的图,大家可以参考对照一下。

设置优化等级

设置优化等级并添加 Other optimization flags 字段:

-fno-short-enums -funsigned-char -fomit-frame-pointer -fstack-usage

上图是设置完优化登记的图,大家可以参考对照一下。

设置gcc 链接文件

切记勾选“Do not use standard start files” 删掉原来的链接文件,添加新的链接文件。

上图是设置完gcc 链接文件的图,大家可以参考对照一下。

八、 新建EB工程

打开 EB tresos 新建工程,取消勾选默认路径,选择之前在 S32DS 建立的工程目录中的 Tresos_Project 文件夹,注意这里封装了两层。
输入 ECU ID,目标是 S32K3xx,将默认生成代码的路径改成S32ds工程文件下的Generate文件夹,链接到之前在 S32DS 工程中建立的 Generate 文件夹。
勾选“在列表中添加最小数量的子元素”,创建工程阶段我们先不添加任何模块,直接点“Finish”。
如果前面忘记配置生成路径,也可以在建立好工程之后,右键工程名选择“Properties”并修改“Generation Path”。

九、 添加模块配置MCAL(本文不详细介绍MCAL配置,重点在于集成)

配置好后点编译工程

refresh一下S32ds工程即可看见生成的文件

九、 Main.c替换

用 Dio 模块 MCAL 例程中的c 文件直接替换掉 S32DS 中工程的 main.c 文件。

在main.c 中注释掉两行代码“#include "check_example.h"”和“Exit_Example(TRUE);”

还需要跟着改动和添加platform的初始化函数,Io口函数接口可以在Generate/include/Dio_Cfg.h下去找EB配置的入口

编译通过就代表移植成功了!!!

博主是一个刚毕业的BMS底软工程师,在学习的路上遇到很多坑,通过写文章来记录所学到的知识,希望能为大家尽可能的避开一些坑,后续还会继续分享一些BMS相关的知识,以及储能CMS和二级架构三级架构这方面的技术知识,创作不易,希望大家可以多多支持,相互交流技术,讨论心得,如有不足之处敬请批评指正!!!

http://www.gsyq.cn/news/1459905.html

相关文章:

  • 通达信数据接口终极指南:5步构建你的量化交易数据源
  • 山西大同经济开发区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • MATLAB太阳角度计算工具包:输入经纬度和时间,直接输出天顶角、方位角与高度角
  • GD32E230 ADC注入通道实战:用定时器2触发,1ms精准采样电机相电流
  • 海盗船收购艾格特后推Nightsword V2无线鼠标:130美元,续航最长170小时
  • Windows系统安全深度解析:OpenArk反Rootkit工具实战应用指南
  • GPT-4o免费策略背后的商业逻辑与技术真相
  • 告别路由器!用笔记本热点给树莓派联网,5分钟搞定SSH远程桌面
  • 山西朔州经济开发区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 4种实用方法,快速完成新旧电脑数据迁移
  • AtlasOS系统USB设备识别问题排查指南:从快速诊断到深度修复
  • 从‘101’序列检测器入手:手把手对比Verilog实现Moore与Mealy状态机的差异
  • 豆包2026新版100个实测功能:从生活到职场的AI操作系统
  • 上海景丰泰再生资源回收:上海废旧电脑回收公司 - LYL仔仔
  • 从流水灯代码反推:新手如何理解51单片机中的C语言位运算(左移、右移、取反)
  • 莱芜区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 铝塑包装机厂家推荐:2026药片泡罩/铝塑/铝铝包装机生产厂家盘点 - 栗子测评
  • 扫码报修系统之扫码巡检介绍
  • GLM-4.7-Flash实战指南:3B激活参数的轻量大模型办公落地
  • 【github】多人协作使用git,从本地更新仓库-笔记
  • SI6 Networks IPv6 Toolkit终极指南:专业IPv6安全评估与网络故障排除工具集
  • 3个技巧让X-Mouse Controls窗口切换效率翻倍:深度解析Windows焦点跟随鼠标的实战方案
  • Video.js 视频列表插件:点选即播,自动续播下一个
  • Qwen3-32B-gs-A8W8量化模型性能评测:96%GSM8K准确率背后的秘密
  • PHP设计模式工厂模式详解
  • 【职场】你公司挂在墙上的使命愿景价值观,本质是一套人事物的操控系统
  • TinyLlama-1.1B-Chat-v0.1安全部署指南:保护AI对话系统的5个关键步骤
  • 新手避坑指南:用ArcGIS和SWAT2012做水文模拟,我在石羊河流域踩过的那些‘雷’
  • 2026年江苏钢结构厂家:徐州门式钢结构/钢结构天桥/钢结构栈桥,钢板下料/钢板切割/预埋件钢板有实力的企业 - 品牌企业推荐师(官方)
  • MATLAB小波图像拼接教学包:带GUI操作界面、多组实测图像与完整可运行代码