加入CODE CHINA

· ä¸é™é€Ÿ    · ä¸é™ç©ºé—´    · ä¸é™äººæ•°    · ç§ä»“免费

免费加入
README.org

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模块的使用

J1939学习: J1939_basic

项目简介

🚀 Github 镜像仓库 🚀

源项目地址 ⬇ ⬇ ⬇

https://github.com/greyzhang/g_s32k144

发行版本

当前项目没有发行版本

贡献者 2

G GreyZhang @GreyZhang
G greyzhang @greyzhang

开发语言

  • C 99.6 %
  • Assembly 0.3 %
  • Makefile 0.1 %
  • C++ 0.1 %