1.简介
我们有个项目需要用到多个串口接外设,但因为复用的关系导致原本RK3568的支持的串口不够用,所以硬件画板就添加了一个USB转串口的IC电路(CH9344)一转四。接下来我们就要开始在RK3568上移植CH9344的驱动,让它跑起来。因为是挂在USB上的,所以不需要配置dts,移植完驱动就可以使用了
2.移植过程
因为走USB,所以原理图就没有必要看了,就是一路USB口插了一个串口Hub
2.1下载驱动文件
在沁恒微官网(http://www.wch.cn/bbs/thread-67447-1.html)上直接下载驱动文件就可以了,我移植的时候最新为v1.16,现在更新到v1.17了
2.2移植驱动文件
下载完成后打开driver目录,会看见如下的文件
一个合格的程序员当然是先看README了,大致就是介绍把驱动编译成模块,再用insmod指令加载进系统,但是按照这个操作,就会加载到你编译的服务器上,那么怎么移植到rk3568 SDK上并编译进固件里面呢
那么我们打开Makefile,会看见驱动源文件是放在kernel/drivers/usb/serial/上编译的
我们就把源驱动文件放进rk3568/kernel/drivers/usb/serial/上,修改Kconfig与Makefile,再在kernel编译时配置config使其编译进kernel img上
3.验证测试
编译完成kernel后,烧录进设备上,开机就会自动加载ch9344模块驱动,在dve上就会生成4个设备节点