当前位置: 首页 > 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.jsqmd.com/news/948383/

相关文章:

  • 从CAN报文解析到数据可视化:CAPL数据类型转换在真实车载测试项目中的应用实战
  • 芮城县26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 通达信数据接口终极指南:5步构建你的量化交易数据源
  • 不止S参数!HFSS中那些‘非主流’激励怎么用?电压源、电流源与磁偏置实战解析
  • MOOTDX:打通Python量化投资与通达信数据的桥梁
  • 告别音乐格式困扰:qmc-decoder 让你的QQ音乐在任何设备自由播放
  • 原平市26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 2026年长春包车服务商怎么选?从班车到旅游的专业对标指南 - 精选优质企业推荐官
  • 5分钟完成原神成就自动化管理:YaeAchievement终极免费工具全解析
  • MATLAB实现的无人机自适应控制仿真包:含实时参数估计与轨迹跟踪效果可视化
  • Elsevier投稿追踪插件:告别手动刷新的智能审稿监控方案
  • S4.0当所有产品都有AI,差异化从哪里来
  • 猫抓插件:浏览器视频下载的终极解决方案,3步轻松搞定网页资源保存
  • MATLAB太阳角度计算工具包:输入经纬度和时间,直接输出天顶角、方位角与高度角
  • 山西大同经济开发区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • GD32E230 ADC注入通道实战:用定时器2触发,1ms精准采样电机相电流
  • 学生党必入!2026洗发水,控油清爽+高性价比双王冠 - 每日行业榜
  • AI 第十二周学习计划 全栈 AI 项目打包上线 商业化落地复盘
  • 终极指南:使用Defender Remover彻底解决Windows Defender性能束缚
  • Windows系统安全深度解析:OpenArk反Rootkit工具实战应用指南
  • GPT-5.5是假的,但可控AI智能体2024年已可落地
  • 告别路由器!用笔记本热点给树莓派联网,5分钟搞定SSH远程桌面
  • S7-1200PLC学习程序分享-三轴机械手 + 收放卷伺服控制程序
  • GPT-4o免费策略背后的商业逻辑与技术真相
  • 海盗船收购艾格特后推Nightsword V2无线鼠标:130美元,续航最长170小时
  • 山西朔州经济开发区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 山西转型综合改革示范区26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 4种实用方法,快速完成新旧电脑数据迁移
  • 如何用Python免费获取A股行情数据:MOOTDX完整指南
  • MATLAB车辆运动检测与轨迹跟踪GUI工程(含实测视频、截图和完整说明)