转自:http://blog.chinaunix.net/uid-20543183-id-1930831.html   ------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 Usb是一个很复杂的系统.在usb2.0规范中,将其定义成了一个分层模型.linux中的代码也是按照…
转自:https://mp.weixin.qq.com/s/WPZSElF3OQPMGqdoldm07A 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos.rt-thread等),对于优秀的代码框架及其痴迷.现就职于一家手机研发公司,任职Android BSP开发工程师. 正文开始 前情提要: 宋牧春: Linux设备树文件结构与解析深度分析(1) 征稿和征稿奖励名单: Linuxer-"Linux开发者自己的媒体"第二月稿件录取和赠书名单…
背 景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio 1. 概述 今天来聊一下Linux设备模型的基石:kset/kobject/ktype. sysfs文件系统提供了一种用户与内核数据结构进行交互的方式,可以通过mount -t s…
1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)************************************ -> Device Drivers -> SCSI device support(通用设备) -> SCSI disk support (磁盘支持) -> SCSI device support(设备支持) -> Device Drivers -> USB suppo…
本篇博客分以下几部分讲解 1.介绍USB四大描述 2.介绍USB鼠标驱动程序功能及框架 3.介绍程序用到的结构体 4.介绍程序用到的函数 5.编写程序 6.测试程序 1.介绍USB四大描述符 USB设备驱动程序里定义了许多与驱动程序密切相关的描述符.这里介绍一下四种比较关键的描述符:设备描述符.配置描述符.接口描述符.端点描述符.这几个描述符都位于include\linux\usb\ch9.h中,先看一下每个描述直接的关系,从图中可以看出每一个查到USB主机上的USB设备都有一个设备描述符,设备…
转自:https://mp.weixin.qq.com/s/OX-aXd5MYlE_YoZ3p32qWA 作者简介 宋牧春,linux内核爱好者,喜欢阅读各种开源代码(uboot.linux.ucos.rt-thread等),对于优秀的代码框架及其痴迷.现就职于一家手机研发公司,任职Android BSP开发工程师. 正文开始 1. Device Tree简介 设备树就是描述单板资源以及设备的一种文本文件.至于出现的原因,大家可以上网查询更多关于设备树的文章.本篇文章主要是更深层次的探讨设备文件…
Copy from :https://blog.csdn.net/woyimibayi/article/details/77574736 正文开始 1. Device Tree简介 设备树就是描述单板资源以及设备的一种文本文件.至于出现的原因,大家可以上网查询更多关于设备树的文章.本篇文章主要是更深层次的探讨设备文件的构成以及kernel解析设备树的原理.所以,本篇内容并不是针对没有任何设备树知识的读者.本篇文章主要针对已经使用过设备树或者对设备已经有所了解并想深层次的探究设备树的文件结构和ke…
简介 本文介绍USB驱动程序编写的流程,分析一个键盘的USB程序,基于linux-2.6.39 USB驱动概要 分层 主机层面的USB驱动的整体架构可以分成4层,自顶到下依次是 1.USB设备驱动:本文主要讲述的内容,利用USB核心提供的编程接口编写具体硬件设备与系统的交互逻辑 2.USB核心:linux内核实现,管理上层的USB设备驱动,并且对下面的USB通信机制做封装,封装的接口提供给上层做驱动编写 3.USB主机控制器驱动:主要负责USB硬件和主机通信机制 3.USB控制器:实际的硬件部分…
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 一.USB理论 1.      USB概念概述 USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB)  USB2.0版本速度480Mbps(高速USB) USB驱动由USB主机控制器驱动和USB设备驱动组成.USB主机控制器是用来控制USB设备和CPU之间通信的,USB主机控制器驱动主要用来驱动芯片上的主机控制器硬件.USB设备驱动主要是指具体的例如USB鼠标…
1. modprobe g_printer idVendor=0x0525 idProduct=0xa4a8 modprobe后面也可以加模块参数 2. prn_example从stdout获取数据然后通过USB发送出去,下面让他将文件中的内容发送出去: # cat data_file | prn_example -write_data 3.pdev = device_create(usb_gadget_class, NULL, devt, NULL, "g_printer%d", d…