因为我有一个TI的arm bb black开发板及一个英飞凌的TC275 MCU开发板,然后我想做一个把PC及2块板子连接起来玩玩,就想到了UDS诊断小项目。
一,目的
- 学习python界面开发--已完成。
- 加深python类相关设计方法--已完成。
- 复习arm设备驱动开发框架--已完成。
- 完成一个复杂系统底层搭建,为将来开发上位机应用做准备--已完成。
二,项目启动:工欲善其事必先利其器
- 先搭建了驱动开发环境
bb-black驱动开发系统环境搭建(VNC/SSH/NFS)--Apple的学习笔记 - 搭建了软件编译调试环境
ubuntu vscode内核模块软件开发环境搭建--Apple的学习笔记
三,项目调研:入门
- 先复习了设备树的应用
Linux基于pinctrl的LED控制—Apple的学习笔记 - socketCAN驱动应用
bb-black添加SocketCAN驱动--Apple的学习笔记 - python socket通信学习
python socket通信--Apple的学习笔记 - python界面开发入门
python GUI ttk库 -- Apple的学习笔记
python模拟IG报文发送界面--Apple的学习笔记
四,项目评估:通信设计
- 数据交互的雏形设计
诊断小系统通信设计(初步)--Apple的学习笔记 - 验证python client设计
诊断系统python Client端架构验证--Apple的学习笔记 - 验证arm/linux server设计
诊断系统Linux Server端架构验证--Apple的学习笔记 - arm和TC275 CAN通信电路验证
购买了1050 can传输器模块,用杜邦线连接后,示波器查看报文,验证电路搭建成功。
TC275及arm socketCAN硬件系统验证--Apple的学习笔记 - 通信重构及调试
将之前提出的疑问逐个解决,进行调试解决bug
通信架构及锁重构,解决coredump--Apple的学习笔记
五,项目完成:代码优化及资料打包
- 资料打包上传到gitee
Python_arm_TC275诊断小系统完成--Apple的学习笔记
六,剩余问题记录
- python发送的报文十六进制都是\x打头的,但是将字符串转十六进制最后还要替换成\x比较麻烦,我直接点击send后在python中直接发送b\x02\x10\x03。将来需要做应用层工具开发的时候再修改。此次目的是搭建底层系统。
- arm socketCAN中没有处理busoff的API,只做了read和write。后续准备深入下socketCAN的源码及内核驱动的数据流。
已完成:socketCAN内核源码分析是否支持busoff自恢复--Apple的学习笔记 - c++11的智能指针传递给thead后编译报错,所以没有用智能指针,后续关于智能指针需要做个专题学习。