嵌入式linux学习笔记--linux下基于imx6ullpro 的 CP2102 /CH340 驱动 以及简单的测试
今天再次编译了linux 的内核,想起来之前一直没实现的嵌入式linux 的串口驱动,故想实验一下。
本文章会分别介绍CP2102 以及CH340两者的驱动 以及他们的简单的测试,后续可能会更新一个 使用串口驱动的demo。 实验平台是韦东山老师的imx6ullpro开发板,外接的模块就是cp2102 和ch340。
CP2102 和CH340 其实是不太一样的驱动,最直观的表现就是 CP2102 的价格要贵,然后据说稳定性能好不少。
1. CP2102 linux 下的驱动添加
CP2102 的驱动已经集成到了linux的内核中,我们只需要在进行内核编译的时候将这个驱动添加到编译选项中,就可以直接使用他的驱动了!
具体过程:
1.1 搭建开发环境
这一部分其实主要就是指定编译使用的工具链以及目标板的架构,交叉编译的工具链
最后一个工具链的位置还需要各位读者自己根据情况添加!
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/root/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
1.2 配置内核的编译项
我自己总结的 默认的内核编译流程是这样的
make mrproper
cp config_ok .config
make zImage -j6
make dtbs
在韦东山老师提供的linux kernel 中存在一个设置好的 .config文件
其中 拷贝其实就是相当于 进行了一次的makefile
但是这样其实并不符合我们这次实验的预期,我们需要在现有的基础上添加 cp210x的驱动
所以就是 在拷贝完之后再进行make menuconfig 手动打开 cp210x的驱动编译选项。
make mrproper
cp config_ok .config
make menuconfig
make zImage -j6
make dtbs
这个是我找到的cp210x 的驱动的位置 选中这个选项!
然后执行 make zImage 编译出来内核。之后再使用工具将这个给和下载到机器上。
实验可以看到的效果就是 插上CP2102 之后 会有内核的打印信息
[root@imx6ull:/mnt]# [ 2888.414025] usb 1-1.3: new full-speed USB device number 7 using ci_hdrc
[ 2888.612034] cp210x 1-1.3:1.0: cp210x converter detected
[ 2888.629486] usb 1-1.3: cp210x converter now attached to ttyUSB0
[ 2888.698829] cp210x: disagrees about version of symbol module_layout
注意: 我这里是调整了内核的打印等级,不调整可能打不出来!
echo "7 4 1 7" > /proc/sys/kernel/printk
此时 使用echo 指令 想usb的设备节点 echo数据 就可以将数据发送出去!!!
以上 只是简单的使用 配合上 open read write 以及ioctrol等函数 我们还可以实现 调整波特率。可以参考:https://blog.csdn.net/Stone_Xin_H_T/article/details/81490790
2. CH340 驱动
ch340 驱动和CP2102 不一样,这个芯片的驱动 linux内核默认不内置。所以我们需要拿到源码 然后编译产生一个 .ko 文件 ,进而加载驱动 才可以使用。
这一部分就不详细介绍了,需要预先编译好内核 然后在工程的makefile里面指明 内核的路径 然后去make 就会产生ko的驱动文件。 代码在这里 直接拉走 编译就好了
https://gitee.com/jeasonb/ch340_imx6ullpro
Makefile的 内核路径记得换成自己的!!!!
插下 cp2102 插上 CH340 的打印如下,也可以使用 echo 的方法去打印字符串 不在赘述!
嵌入式linux学习笔记--linux下基于imx6ullpro 的 CP2102 /CH340 驱动 以及简单的测试相关推荐
- linux学习笔记(五)编译内核模块生成ko驱动文件
系列文章目录 linux学习笔记(五)编译内核模块生成ko驱动文件 文章目录 系列文章目录 前言 一.加载内核简介 二.第一个hello world文件 1.文件树 2.hello.c 3.Makef ...
- Linux学习笔记-Linux下读写文件
在Linux编程需要读写文件时,有两种方式: (1)ANSIC: 使用stdio.h里的函数.fopen, fclose, fwrite, fread (2)Linux API:Linux提供了另外一 ...
- linux学习笔记 linux内核6.0.2目录结构
一.linux内核目录 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386.arm.arm64.powerpc.mips等.Linux内核目前已经支持30种左右的体系结构.在 ...
- [Linux学习笔记] Linux历史发展与应用
2019独角兽企业重金招聘Python工程师标准>>> UNIX发展历史: (1) 1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发 ...
- Linux学习笔记——Linux、命令 01
操作系统的发展史 Unix 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘.显示器),连接一台电 ...
- Linux学习笔记-Linux下的设备文件
在Linux下,有一种文件的类型叫设备文件. 在/dev目录下的文件基本上都是设备文件,文件属性以c或b打头(charactor, block) 设备文件用于代表一个物理设备 例如,声卡.显卡.键盘. ...
- Linux学习笔记010---CentOS7下安装FTP服务
JAVA技术交流QQ群:170933152 按照这个就可以 1.安装vsftp 1.1.安装vsftp,测试安装的vsftpd的版本是:vsftpd.x86_64 0:3.0.2-11.el7_2 y ...
- Linux学习笔记019---Centos7下安装Maven
JAVA技术交流QQ群:170933152 1.虚拟机的话,首先可以去配置一下静态ip,参考其他博文 1.如果下载不成功,可以配置ftp,可以参考其他博文 $ cd /opt $ wget https ...
- Linux学习笔记001---Windows下安装CentOS7_并且安装桌面UI
简述 CentOS(Community Enterprise Operating System - 社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux ...
最新文章
- vscode用鼠标滚轮_「鼠标」垂直鼠标体验之三 麦塔奇Rockstick2摇杆鼠标
- 激辩:机器究竟能否理解常识?
- OpenCV识别形状
- Animation动画:
- 爬虫采集-基于webkit核心的客户端Ghost.py [爬虫实例]
- ABP理论学习之依赖注入
- Sql server profiler抓出的语句不可信
- java udp 同一个端口实现收发_Java网络编程之UDP协议
- python读取数据集前十行_Python读取数据集并消除数据中的空行方法
- 中介分析(四)- 因果中介分析
- 15款好用的web开源安全测试工具等你来
- 名词用作动词举例_[名词的活用] 名词的活用例子
- 欧美明星,明星照片,韩国明星,街拍照片
- 数据可视化-制作交易收盘价
- 深度学习中的batch、epoch、iteration
- HARK学习(七)--ConstantLocalization
- 制作像UberEats和Deliveroo这样的移动应用程序需要多少钱
- 软件设计的七大原则 --开闭原则 里氏替换原则 依赖倒置原则
- 如何把win7电脑设置成网站服务器吗,如何为win7电脑设置服务器
- LCQuAD2.0-问题数据集生成-论文阅读笔记