linux驱动编程——ch340x驱动移植

Linux驱动编程——ch340x驱动移植

主要概念:

​ ch340x驱动移植

​ 作为通用器件,厂商都有提供适配各种平台的驱动。linux一般会提供驱动源码。

​ 一般所谓驱动移植,就是将厂商的驱动源码拿来改一改,编译成自己系统版本适配的驱动。

​ ch340简介

​ usb转串口芯片,需要编写驱动。

实验目的:

​ 移植,编译并加载官方 ch34x 驱动,实现 usb 转串口功能。

硬件电路:

​ 开发板,一个 CH340 模块。

驱动源码下载:

​ 下载地址:https://blog.csdn.net/JAZZSOLDIER/article/details/70169732

​ 这里我选择 Linux 驱动
在这里插入图片描述
​ CH341SER_LINUX.ZIP 包含三个文件

​ ch34x.c ch34x 的驱动源码

​ Makefile 编译

​ readme.txt 一些版本及命令说明

代码:

​ 我们主要修改 ch34x.c 两个地方

​ 注释掉如下两行
在这里插入图片描述
在这里插入图片描述
​ 修改Makefile,我没有使用自带的 Makefile,而是自己编写。

KERNELDIR := /home/sixer/imx_kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
CURRENT_PATH := $(shell pwd)

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

target := ch34x
obj-m := $(target).o
APP_NAME := $(target)_app

build: kernel_modules

kernel_modules:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

clean:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
#	rm -rf $(APP_NAME)

dir_exist = $(shell if [ -d "/nfsroot/$(target)/" ]; then echo "exist"; else echo "noexist"; fi)
$(info $(dir_exist))

install:
ifeq ("$(dir_exist)", "noexist")
	$(shell mkdir /nfsroot/$(target))
	#"文件夹不存在,已重新创建文件夹"
endif
#	arm-linux-gnueabihf-gcc $(APP_NAME).c -o  $(APP_NAME)
	cp *.ko  /nfsroot/$(target)/

编译运行:

make编译

生成目标文件 ch34x.ko

make install 将目标拷贝到 NFS 目录

插上我的 ch340 模块

insmod ch34x.ko 加载ch34x驱动

实验现象:

[root@iTOP-iMX6UL]# cd /mnt/nfs_dir/ch34x/
[root@iTOP-iMX6UL]# ls
ch34x.ko
[root@iTOP-iMX6UL]# insmod ch34x.ko 
usbcore: registered new interface driver ch34x
usbserial: USB Serial support registered for ch34x
[root@iTOP-iMX6UL]# usb 2-1.3: new full-speed USB device number 4 using ci_hdrc
ch34x 2-1.3:1.0: ch34x converter detected
usb 2-1.3: ch34x converter now attached to ttyUSB0

[root@iTOP-iMX6UL]# 

总结:

​ 加载完 ch34x 驱动,插上模块,系统立马识别出一路串口,说明我的移植成功。

微信号:

​ InsertingAll

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值