项目简介
本项目是基于C语言开发的针对S32K系列微控制器的ECU刷新系统。系统借助S32K1xx的CAN接口连接周立功USBCANFD - 100U - mini,结合ZCANPRO软件的ECU刷新功能开展测试。运用UDS服务把相关hex文件下载到指定RAM空间,再通过Flash驱动函数将应用程序烧录至Flash的APP片区,完成ECU刷新。一套代码理论上可同时支持多个型号,目前已测试S32K144和S32K118。
项目的主要特性和功能
- ECU刷新功能:利用UDS服务将应用程序烧写至Flash的APP片区,实现ECU刷新。
- 多型号支持:一套代码理论上可同时支持多个型号,已测试S32K144和S32K118。
- 驱动函数调用:通过计算Flash驱动函数在RAM内的偏移地址,用函数指针调用编程、擦写、校验等Flash API。
- 实时通信:实现SEGGER RTT协议,支持在嵌入式目标上进行实时通信,可读写目标应用程序数据。
- 中断管理:提供中断管理功能,包括中断处理程序安装、使能/禁能中断及设置优先级。
- 同步和调度:实现互斥锁、信号量等同步和调度机制,管理多任务执行。
- 电源管理:支持运行模式、低功耗模式等电源模式的配置和切换。
- 调试和追踪:重定向标准库函数输出到SEGGER RTT,实现应用程序的调试和追踪。
安装使用步骤
硬件准备
确保有S32K144 - EVB开发板、J - Link、USBCANFD - 100U - mini和12V外部电源,S32K144 - EVB开发板用12V独立供电,保证CAN Transceiver正常工作。
软件准备
安装S32 Design Studio for ARM Version 2.2、ZCANPRO和J - Flash。
配置和编译
- 从提供的链接下载本项目的源代码。
- 根据项目的配置要求,使用相应的IDE(如Keil uVision、IAR Embedded Workbench等)进行配置和编译。
烧录和调试
将编译后的程序烧录到S32K144开发板,通过SEGGER RTT工具进行实时通信和调试。
运行和测试
运行应用程序,通过ZCANPRO软件的ECU刷新功能进行测试,同时通过SEGGER RTT工具观察运行结果,进行必要的测试和调整。
注意事项
本工程代码尚存在许多已知BUG,不可用于实际量产环境,可自行调试解决。操作时需注意ZCANPRO软件的相关设置,避免出现问题。此外,关于S32K144 APP工程调用Flash_EraseFlashDriverInRAM()
会导致程序卡死的问题,建议在APP工程中一律不调用该函数。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】