S32K1xx开发实战:从零开始在S32DS上集成MCAL
2026/4/29 10:24:03 网站建设 项目流程

目录

  • 一. 环境与软件准备
  • 二. 在S32DS中新建工程
    • 2.1 新建工程
    • 2.2 芯片选择
    • 2.3 编译
  • 三. 集成MCAL
    • 3.1 MCAL集成
    • 3.2 startup.s修改
    • 3.3 编写主函数与调试

一. 环境与软件准备

主要需要三个软件:

  • S32 Design Studio (S32DS):NXP主推的IDE,我们用它来编译和调试。

  • EB tresos Studio:经典的AUTOSAR配置工具,MCAL的配置主要靠它。

  • S32K1xx MCAL:NXP官方发布的MCAL驱动包。

注意:以上软件均可在NXP官网下载,需要注册账
号。注意选择S32K系列对应的Real-Time Drivers (RTD) 或 经典的MCAL包。

二. 在S32DS中新建工程

2.1 新建工程

新建工程,选择S32DS Application Project。

2.2 芯片选择

这里以S32K118芯片为例,填写工程名称,工程路径,选择S32K118,点击Next。

2.3 编译

完成工程创建,成功编译工程。

三. 集成MCAL

3.1 MCAL集成

  • 找到Mcal安装路径下.\eclipse\plugins中的如下文件为Mcal静态代码包

  • 每个模块下需要include和src文件,选择需要的模块(其中Rte和Base模块必须),复制到刚刚创建好的S32DS工程中

    新建Mcal文件夹,复制静态代码:

  • 将EB生成的配置代码放入S32DS工程中
    最小工程只需要Base、Dio、Mcu、Port模块:

3.2 startup.s修改

官方提供的启动文件可能导致无法正常跳转main函数,建议修改。
删除:

#ifndef__START#ifdef__EWL__#define__START__thumb_startup#else#define__START_start#endif#endifbl __START

在Init .data and .bss sections最后增加bl main:

#ifndef__NO_SYSTEM_INIT/* Call the system init routine */ldr r0,=SystemInit blx r0#endif/* Init .data and .bss sections */ldr r0,=init_data_bss blx r0 cpsie i/* Unmask interrupts */bl main/*跳转main*/JumpToSelf:b JumpToSelf.pool.size Reset_Handler,.-Reset_Handler

3.3 编写主函数与调试

  • 编写应用代码
    删除原工程中main函数,编写测试函数,这里将周期翻转PTC6引脚电平:
#include"S32K118.h"#include"Mcu.h"#include"Port.h"#include"Dio.h"intmain(void){Mcu_Init(&Mcu_Config);Mcu_InitClock(0U);Port_Init(&Port_Config);while(1){Dio_WriteChannel(DioConf_DioChannel_PTC_6,STD_HIGH);TestDelay(1000);Dio_WriteChannel(DioConf_DioChannel_PTC_6,STD_LOW);TestDelay(1000);}}
  • 编译与下载测试
    打开工程配置,找到Settings添加头文件:

    编译:

    打开Debug配置,添加调式配置:

    运行代码,PTC6脚波形如下,最小Mcal工程搭建成功:

    如果觉得本文对你有帮助,欢迎点赞、收藏、评论交流!
    下一篇预告:《S32K1xx MCAL开发:Port/Dio模块配置》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询