CH348驱动移植至Linux系统中
1 环境准备
1.1 完成内核编译
此处不做赘述,完成内核编译时驱动开发的基础。
1.2 下载驱动文件
下载网站地址:https://www.wch.cn/downloads/CH9344SER_LINUX_ZIP.html
下载后解压获得如下三个文件,整个文件移植到交叉编译环境中。
2 编译驱动
2.1 配置Makefile文件
2.2 编译
此处使用的orangepizero2,其中内核架构为ARM64,交叉编译工具为aarch64-none-linux-gnu-gcc
输入如下指令开始编译。
make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu-
生成如下目标文件,并将其移植到开发板中。
3 驱动加载验证
3.1 加载前节点情况
//加载驱动前,查看dev 节点
ls /dev
3.2 加载后节点情况
//加载 驱动文件
insmod ch9344.ko
//查看dev 节点
ls /dev
4 应用验证
应用层核心代码如下。
fd = open("/dev/ttyCH9344USB0", O_RDWR|O_NOCTTY);
for(int i=0;i<100;i++)
write(fd ,"helloworld",10);
return 0;
交叉编译后在开发板上运行,在WINDOW环境下接入串口线,串口线一段接入到CH348 第0号端口上。
结果如下: