今天再次编译了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 驱动 以及简单的测试相关推荐

  1. linux学习笔记(五)编译内核模块生成ko驱动文件

    系列文章目录 linux学习笔记(五)编译内核模块生成ko驱动文件 文章目录 系列文章目录 前言 一.加载内核简介 二.第一个hello world文件 1.文件树 2.hello.c 3.Makef ...

  2. Linux学习笔记-Linux下读写文件

    在Linux编程需要读写文件时,有两种方式: (1)ANSIC: 使用stdio.h里的函数.fopen, fclose, fwrite, fread (2)Linux API:Linux提供了另外一 ...

  3. linux学习笔记 linux内核6.0.2目录结构

    一.linux内核目录 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386.arm.arm64.powerpc.mips等.Linux内核目前已经支持30种左右的体系结构.在 ...

  4. [Linux学习笔记] Linux历史发展与应用

    2019独角兽企业重金招聘Python工程师标准>>> UNIX发展历史: (1) 1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发 ...

  5. Linux学习笔记——Linux、命令 01

    操作系统的发展史 Unix 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘.显示器),连接一台电 ...

  6. Linux学习笔记-Linux下的设备文件

    在Linux下,有一种文件的类型叫设备文件. 在/dev目录下的文件基本上都是设备文件,文件属性以c或b打头(charactor, block) 设备文件用于代表一个物理设备 例如,声卡.显卡.键盘. ...

  7. Linux学习笔记010---CentOS7下安装FTP服务

    JAVA技术交流QQ群:170933152 按照这个就可以 1.安装vsftp 1.1.安装vsftp,测试安装的vsftpd的版本是:vsftpd.x86_64 0:3.0.2-11.el7_2 y ...

  8. Linux学习笔记019---Centos7下安装Maven

    JAVA技术交流QQ群:170933152 1.虚拟机的话,首先可以去配置一下静态ip,参考其他博文 1.如果下载不成功,可以配置ftp,可以参考其他博文 $ cd /opt $ wget https ...

  9. Linux学习笔记001---Windows下安装CentOS7_并且安装桌面UI

    简述 CentOS(Community Enterprise Operating System - 社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux ...

最新文章

  1. vscode用鼠标滚轮_「鼠标」垂直鼠标体验之三 麦塔奇Rockstick2摇杆鼠标
  2. 激辩:机器究竟能否理解常识?
  3. OpenCV识别形状
  4. Animation动画:
  5. 爬虫采集-基于webkit核心的客户端Ghost.py [爬虫实例]
  6. ABP理论学习之依赖注入
  7. Sql server profiler抓出的语句不可信
  8. java udp 同一个端口实现收发_Java网络编程之UDP协议
  9. python读取数据集前十行_Python读取数据集并消除数据中的空行方法
  10. 中介分析(四)- 因果中介分析
  11. 15款好用的web开源安全测试工具等你来
  12. 名词用作动词举例_[名词的活用] 名词的活用例子
  13. 欧美明星,明星照片,韩国明星,街拍照片
  14. 数据可视化-制作交易收盘价
  15. 深度学习中的batch、epoch、iteration
  16. HARK学习(七)--ConstantLocalization
  17. 制作像UberEats和Deliveroo这样的移动应用程序需要多少钱
  18. 软件设计的七大原则 --开闭原则 里氏替换原则 依赖倒置原则
  19. 如何把win7电脑设置成网站服务器吗,如何为win7电脑设置服务器
  20. LCQuAD2.0-问题数据集生成-论文阅读笔记

热门文章

  1. 切图工具:关于工具的几个概念
  2. matlab 计算阴影面积,MATLAB求解阴影面积
  3. python-docx操作word文件(*.docx)
  4. 物联网概论学习总结(已结课)
  5. Zemax中的MTF
  6. IDC运维如何转linux运维,智简魔方DCIM系统助力IDC运维人员解决难题
  7. Python--huan
  8. 关于TCP同时打开-无需Listener的TCP连接建立过程
  9. 如何在谷歌地图上绘制矢量道路线并导出为图片
  10. 天翼云推出全栈政务混合云 支持私有化运行