# S32K144 MCU **Repository Path**: End-ING/s32k144 ## Basic Information - **Project Name**: S32K144 MCU - **Description**: learning records about S32K144 MCU (FreeRTOS, UART, CAN, SPI, PIT, FreeMaster, RTC, GPS, DMA, WatchDog、J1939、UDS、XCP、CCP) - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2025-01-31 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README * hacking S32K144 ** 简介 S32K144是NXP推出的车规级别的MCU,ARM架构的内核。芯片在设计上考虑了功能安全的设计,可以达到ASIL B的级别。 这方面我没有太多的ARM平台的经验,恰好借助这个平台了解一下。 虽说按照一般的认知,SDK比自己手写驱动要简单。但是关于SDK的使用,我也没有太多经验。这次hack过程中研究一下这里面的技巧。 除了驱动之外,尽量在这个平台上熟悉一下FreeRTOS的平台开发。 ** 维护者联系方式 - Email: greyzhang@126.com ** TDL - 1. MCU资料收集(DONE) - 2. 开发板资料收集(DONE) - 3. 开发工具选择(DONE) - 4. 工程创建以及开发环境配置(DONE) - 5. 软件调试方式(DONE) - 6. 周期性定时器(DONE) - 7. GPIO(DONE) - 8. 时钟配置(DONE) - 9. 串口(DONE) - 10. CAN(DONE) - 11. ADC(DONE) - 12. SPI(DONE) - 13. IIC - 14. RTOS - 15. BootLoader - 16. DMA(DONE) - 17. 中断(DONE) - 18. 加密 - 19. QuadSPI - 20. 数学以及电机库文件的使用 - 21. CRC(DONE) ** 实践路线 *** MCU资料收集 - S32Kxxx MCU产品模块图 - Data Sheet - 用户参考手册 - S32K系列情况说明书(这个其实包含了产品模块图的信息) - 相关资料: S32K144_001_docs - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104239649 *** 开发板资料收集 - 首先需要说明的是我购买的开发板就是官方的开发板版本,从标签看,版本是Rev C。 - 原理图 - 快速入门说明 - 相关资料: S32K144_002_EVB - 总结分析参考链接: https://blog.csdn.net/grey_csdn/article/details/104241437 *** 开发工具选择 - 编译器套件:选择NXP官方的S32DS for ARM。这是一个基于gcc的免费的开发套件,作为我们的学习选择还是不错的。 - 调试器:看到了开发板上自带了一个OpenSDA,这算是其中的一个选择。另外,我也准备了一个Jlink。 *** 开发工具S32DS for ARM初步了解 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104287624 *** S32DS快速上手文档分析 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104304187 *** S32DS for ARM的共性特征学习 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104304578 *** 使用S32DS for ARM创建S32K144工程并编译 - 相关代码参考: S32K144_003_new_project - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104320363 *** 开发板供电、软件烧写以及调试 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104342133 *** 使用S32DS通过例子创建相应工程 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104343682 *** 使用S32DS创建基于SDK的工程 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104344325 *** S32DS SDK的使用 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104344731 *** S32DS导入已经存在的工程 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104345059 *** S32DS解决编译找不到已经添加的文件和目录问题 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104347712 *** 使用S32DS结合SDK,创建FreeRTOS的工程 - 参考代码: S32K144_004_create_freeRTOS_project - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104347849 *** 基于FreeRTOS的串口打印例子测试与分析 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104383774 *** 在S32DS中修改工程名称 - 软件工程参考: S32K144_005_rename_project - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104384152 *** 时钟配置 - 核心代码参考: S32K144_006 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104420403 *** S32DS中实时查看变量的变化 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104420541 *** S32K144实现串口驱动 - 参考代码: S32K1144_007 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104420809 *** 串口的波特率配置测试 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104435958 *** 使用DMA的UART - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104436193 *** GPIO控制LED闪烁 - 代码参考: S32K144_009_GPIO_LED - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104444332 *** 周期性定时器 LPIT - 参考代码: S32K144_010_PIT - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104449049 *** FreeRTOS的队列 - 参考代码: S32K144_011_FreeRTOS_Queue - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104450056 *** printf via UART - 参考代码: S32K144_012_printf - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104450862 *** FreeMaster的使用 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104465392 *** FreeMaster的移植 - 参考代码: S32K144_013_FreeMaster - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104485061 *** FreeMaster的功能的快速开启与关闭设计 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104505838 *** Debug on FreeRTOS stack - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104507603 *** 软件触发模式的ADC - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104507921 *** RTC时钟初步 -参考代码: S32K144_014_RTC - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104547147 *** RTC时钟时间设定 - 参考代码: S32K144_015_RTC - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104565814 *** FreeRTOS的精准周期性任务调度 - 参考代码: S32K144_016_Periodic_Task - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104574942 *** 串口接收功能 - 参考代码: S32K144_016_UART_RX - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104578701 *** 基于DMA的串口收发 - 参考代码: S32K144_017_UART_DMA - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104579262 *** 串口的阻塞式收发 - 参考代码: S32K144_018_UART_Blocking - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104579539 *** 查询模式下的串口接收 - 参考代码: S32K144_019_UART_Polling - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104580702 *** 基于FreeRTOS的串口接收功能改进 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104593569 *** FreeRTOS Tick Hook - 参考代码: S32K144_020_FreeRTOS_Tick_Hook - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104595515 *** 获取FreeRTOS任务的优先级 - 参考代码: S32K144_021_FreeRTOS_Task_Priority - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104597164 *** FreeRTOS 守护程序启动监控 - 参考代码: S32K144_022_FreeRTOS_DaemonTask - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104597473 *** FreeRTOS heap剩余空间获取 - 参考代码: S32K144_023_FreeRTOS_FreeHeap - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104599396 *** 看门狗 - 参考代码: S32K144_024_WatchDog - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104643882 *** lptmr定时器使用 - 参考代码: S32K144_025_lptmr - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104686728 *** 模式切换 - 参考代码: S32K144_026_PowerMode - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104723732 *** 提升FreeRTOS的工作时钟 - 参考代码: S32K144_027_FreeRTOS_Clock - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104728213 *** GPS报文解析实现 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104739034 *** S32K144 EVB CAN基本配置实现以及测试 - 参考代码: S32K144_028_CAN_Transmit - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/104868882 *** CAN 接收功能初步 - 参考代码: S32K144_029_CAN_Receive_Basic - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105181759 *** CAN获取默认配置 - 参考代码: S32K144_030_CAN_Default_Config - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105186747 *** CAN波特率修改 - 参考代码: S32K144_031_CAN_Baud_Rate - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105212017 *** CAN FIFO初步 - 参考代码: S32K144_032_CAN_FIFO_Basic - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105233841 *** CAN FIFO接收全部的CAN ID - 参考代码: S32K144_033_CAN_FIFO_all_msg - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105280370 *** CAN的回调函数 - 参考代码: S32K144_034_CAN_CallBack_Function - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105303727 *** CAN的DMA收发模式 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105310772 *** printf via CAN - 代码参考: S32K144_035_printf_via_CAN - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105311915 *** CAN故障诊断 - 代码参考: S32K144_036_CAN_error_process - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105325933 *** CAN错误种类获取 - 参考代码: S32K144_037_CAN_error_type - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105329398 *** UDS初步 - 总结分析的小结参考链接: https://blog.csdn.net/grey_csdn/article/details/105345180 *** CRC模块的使用 - 总结分析的小结参考链接: [[https://blog.csdn.net/grey_csdn/article/details/106605759][S32K144 CRC模块的使用]] - 代码参考: S32K144_038_CRC ** J1939学习: [[https://github.com/GreyZhang/J1939_basic][J1939_basic]]