17403|6

17

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Linux驱动编程——ch340x驱动移植 [复制链接]

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

主要概念:

ch340x驱动移植

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

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

ch340简介

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

实验目的:

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

硬件电路:

开发板,一个 CH340 模块。

驱动源码下载:

下载地址:http://www.wch.cn/download/CH341SER_LINUX_ZIP.html

这里我选择 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

 

此帖出自Linux开发论坛

最新回复

这个应该是安装ch34x驱动吧,移植称不上呢!   详情 回复 发表于 2021-9-16 11:36
点赞(2) 关注(1)
个人签名happy more day

回复
举报

25

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

ch340应该很早就支持了啊

此帖出自Linux开发论坛
 
 

回复

305

帖子

0

TA的资源

纯净的硅(初级)

板凳
 

这我要试一试,半年前跟沁恒的技术人员沟通了数次,最终无果。

此帖出自Linux开发论坛
 
个人签名

“Everyone wants the project to be good, fast, and cheap... pick two.”

- Unknown

 
 

回复

305

帖子

0

TA的资源

纯净的硅(初级)

4
 

仅仅是识别出一路USB恐怕还不能说明移植成功,要实际串口通信一下试试。

此帖出自Linux开发论坛
 
个人签名

“Everyone wants the project to be good, fast, and cheap... pick two.”

- Unknown

 
 

回复

7628

帖子

2

TA的资源

五彩晶圆(高级)

5
 

ch34x 的驱动linux官方代码就已经支持了,好像在driver/usb/serial下面。

此帖出自Linux开发论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 

这个不错喔,哥们实际测试下,看看行不行,感谢分享

此帖出自Linux开发论坛
 
 
 

回复

1942

帖子

2

TA的资源

版主

7
 

这个应该是安装ch34x驱动吧,移植称不上呢!

此帖出自Linux开发论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
USB转串口芯片PL-2303驱动程序

USB转串口芯片PL-2303驱动程序

LPCXpresso生成bin文件的方法及一些命令设置(图文并貌)

一直在找使用LPCXpresso生成*.bin文件的方法,不成想竟然同时找到了LPCXpresso一些,其他的命令,如生成*.hex,*.lss及console显 ...

郭天翔老师,我只想为你擦去一些C51代码里的小小蒙尘

在我接触的学51的人里,不少人是通过看视频教程入门的,而这其中为数不少的又是看的 郭天翔 的教程。 郭天翔的大名早就耳闻 ...

#8月改装#迅捷FW300R无线路由器改装,改64MB内存+8MBFLASH+USB,跑DD-WRT

本帖最后由 jackfrost 于 2015-8-29 09:58 编辑 手头有个迅捷(FAST) FW300R的300M无线路由器,1个WAN口,4个100M LAN ...

【LSM6DSOX有限状态机例程学习 二】--有限状态机编程使用方法

上一章讲了啥是有限状态机模型和LSM6DSOX的FSM的特点。 本章我将从FSM的编程模块到Unico FSM编程界面,分别介绍各 ...

【Silicon Labs BG22-EK4108A 蓝牙开发评测】 IV. 创建工程:通过蓝牙控制直流电机

本帖最后由 zhang1gong 于 2022-1-19 23:36 编辑 通过几天阅读资料恶补(SiliconLabs公司的资料:《UG103.14: Bluetooth® ...

【2022得捷电子创新设计大赛】物料开箱—STM32F750, nano ble 33

十分感谢版主帮忙指导下单,原来设计选定的esp32-s3后来看到论坛小伙伴说没有屏幕,于是紧急更换成了带屏幕的STM32F750,考虑到 ...

关于mos作开关的缺陷

例如nmos 在gs为0时,d向s流的电流可以阻断,但由于寄生二极管的存在,导致电流由s向d极流。简而言之,mos作开关时,只能可靠截 ...

[ ST NUCLEO-U575ZI-Q 测评] 做一个监控显示器

串口中断不定长接收 - RF/无线 - 电子工程世界-论坛 (eeworld.com.cn) 优化OLED显示 - RF/无线 - 电子工程世界-论坛 (eewor ...

如何在Linux系统实现屏幕旋转?触觉智能RK3568鸿蒙开发板演示

本文介绍Linux系统实现屏幕角度旋转的方法,以解决不同产品形态的展现方式,其中Ubuntu、Debian系统可以通过xrandr工具实现屏幕 ...

关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表