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,Por

### S32K3 Autosar 配置方法及教程 #### 使用 EB Tresos 进行复杂驱动 MCAL 工程导入关联 对于基于 NXP S32K3xx 系列Autosar 项目,可以利用 EB Tresos配置复杂驱动 MCAL (Microcontroller Abstraction Layer) 。这种配置方式允许灵活调整软件包路径模块后缀,从而简化了当 S32K3 RTD MCAL 软件包有版本更新时所需的更改工作[^1]。 ```python # 示例:设置MCAL库路径 mcalkit_path = "path/to/mcalkit" module_suffix = "_v0_9_7" # 版本号作为模块名的一部分 ``` #### LIN 模块的具体配置流程 针对 LIN 协议栈的配置过程涉及多个方面的工作。使用 S32 Design Studio 或者类似的工具能够帮助工程师更高效地完成这些任务。具体来说,在进行引脚分配之前需要先定义好通信参数以及节点属性等基本信息[^2]。 ```xml <!-- XML片段展示部分LIN配置 --> <LinConfigSet> <LinChannel Id="LINCAN"> <!-- 定义通道特性 --> </LinChannel> </LinConfigSet> ``` #### 结合RTD技术实现AUTOSAR与NON-AUTOSAR融合 为了使 S32 RTD 功能得到充分利用,可以从最基础的 CAN demo 开始学习其配置要点。此过程中不仅涉及到标准 AUTOSAR 组件的应用,还需要考虑如何有效地将其与其他非标准化组件结合起来共同运作[^3]。 ```cpp // C++代码示例:初始化CAN控制器并发送消息 Can_Init(&canController); Can_Write(canHandle, &messageToSend); ``` #### 将 IO 模块集成到 ISOLAR 工程中 最后一步则是把各种输入输出设备加入到整个系统架构里去。这通常意味着要编写额外的支持函数用于处理特定硬件资源的操作请求;同时也要确保所生成的目标文件能被正确编译链接进最终产品之中[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值