/g_s32k144

learning records about S32K144 MCU (FreeRTOS, UART, CAN, SPI, PIT, FreeMaster, RTC, GPS, DMA, WatchDog、J1939、UDS、XCP、CCP)

Primary LanguageCGNU General Public License v3.0GPL-3.0

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资料收集

开发板资料收集

开发工具选择

  • 编译器套件:选择NXP官方的S32DS for ARM。这是一个基于gcc的免费的开发套件,作为我们的学习选择还是不错的。
  • 调试器:看到了开发板上自带了一个OpenSDA,这算是其中的一个选择。另外,我也准备了一个Jlink。

开发工具S32DS for ARM初步了解

S32DS快速上手文档分析

S32DS for ARM的共性特征学习

使用S32DS for ARM创建S32K144工程并编译

开发板供电、软件烧写以及调试

使用S32DS通过例子创建相应工程

使用S32DS创建基于SDK的工程

S32DS SDK的使用

S32DS导入已经存在的工程

S32DS解决编译找不到已经添加的文件和目录问题

使用S32DS结合SDK,创建FreeRTOS的工程

基于FreeRTOS的串口打印例子测试与分析

在S32DS中修改工程名称

时钟配置

S32DS中实时查看变量的变化

S32K144实现串口驱动

串口的波特率配置测试

使用DMA的UART

GPIO控制LED闪烁

周期性定时器 LPIT

FreeRTOS的队列

printf via UART

FreeMaster的使用

FreeMaster的移植

FreeMaster的功能的快速开启与关闭设计

Debug on FreeRTOS stack

软件触发模式的ADC

RTC时钟初步

-参考代码: S32K144_014_RTC

RTC时钟时间设定

FreeRTOS的精准周期性任务调度

串口接收功能

基于DMA的串口收发

串口的阻塞式收发

查询模式下的串口接收

基于FreeRTOS的串口接收功能改进

FreeRTOS Tick Hook

获取FreeRTOS任务的优先级

FreeRTOS 守护程序启动监控

FreeRTOS heap剩余空间获取

看门狗

lptmr定时器使用

模式切换

提升FreeRTOS的工作时钟

GPS报文解析实现

S32K144 EVB CAN基本配置实现以及测试

CAN 接收功能初步

CAN获取默认配置

CAN波特率修改

CAN FIFO初步

CAN FIFO接收全部的CAN ID

CAN的回调函数

CAN的DMA收发模式

printf via CAN

CAN故障诊断

CAN错误种类获取

UDS初步

CRC模块的使用

J1939学习: J1939_basic