自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (56)
  • 收藏
  • 关注

原创 Linux USB驱动工作流程

1. USB主机在Linux驱动中,USB驱动处于最底层的是USB主机控制器硬件,在其之上运行的是USB主机控制器驱动,主机控制器之上为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标、USB转串口等设备驱动)。因此,在主机侧的层次结构中,要实现的USB驱动包括两类:USB主机控制器驱动和USB设备驱动,前者控制插入其中的USB设备,后者控制USB设备如何与主机通信。Linu

2012-06-15 10:18:53 5168 1

原创 Linux热插拔处理机制

一、 udev 在2.6内核里,使用了udev来取代hotplug。据udev的作者Greg K.H说,之所以废弃了hotplug原因是sysfs的出现,这个东西会产生非常多的hotplug事件,远远超过了2.4的内核(只要实现了了kobject模型的设备驱动都回产生该事件)。所以hotplug变得复杂,而且因为hotplug都是bash所写,所以开始变得没有效率。于是出现了一个名叫h

2012-06-14 17:14:42 7138 1

原创 usb驱动程序分析

usb驱动是linux内核中比较复杂的驱动之一,因此,大多数usb教程建议从usb-skeleton开始学习usb驱动。个人认为这是相当正确的,usb-sekelton提供了一个usb驱动开发的模板,而且代码量较少,很适合初学者的学习。    记住,对于c语言的程序设计说,数据结构是整个程序的灵魂。因此,分析别人编写的代码的简洁的入口点就是高清代码中主要数据结构之间的关系。分析以usb-ske

2012-06-14 16:39:21 6968

原创 usb_register_dev

一个USBinterface对应一种USB逻辑设备,比如鼠标、键盘、音频流。所以,在USB范畴中,device一般就是指一个interface。一个驱动只控制一个interface。这样,usb_register_dev自然是注册一个interface,所以usb_register_dev的第一个参数是interface(usb_interface类型)。 usb_register_dev

2012-06-14 14:43:06 6391

原创 usb_register_dev

一个USBinterface对应一种USB逻辑设备,比如鼠标、键盘、音频流。所以,在USB范畴中,device一般就是指一个interface。一个驱动只控制一个interface。这样,usb_register_dev自然是注册一个interface,所以usb_register_dev的第一个参数是interface(usb_interface类型)。 usb_register_dev

2012-06-14 14:42:38 2405

转载 Linux+USB+鼠标驱动程序详解

USB 总线引出两个重要的链表!一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb d

2012-06-13 18:00:49 1912

原创 自旋锁spin_lock和raw_spin_lock

本文不打算详细探究spin_lock的详细实现机制,只是最近对raw_spin_lock的出现比较困扰,搞不清楚什么时候用spin_lock,什么时候用raw_spin_lock,因此有了这篇文章。1.  临界区(Critical Section)我们知道,临界区是指某个代码区间,在该区间中需要访问某些共享的数据对象,又或者是总线,硬件寄存器等,通常这段代码区间的范围要控制在尽可能

2012-06-12 13:59:36 1419

原创 Linux系统调用--fcntl函数详解

功能描述:根据文件描述词来操作文件的特性。   用法:   int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);     参数:   fd:文件描述词。 cmd:操作命令。 arg:

2012-06-08 16:15:59 1123

原创 I2C与SMBUS区别

SMBus是一种二线制串行总线,1996年第一版规范开始商用。它大部分基于I2C总线规范。和 I2C一样,SMBus不需增加额外引脚,创建该总线主要是为了增加新的功能特性,但只工作在100KHZ且专门面向智能电池管理应用。它工作在主/从模式:主器件提供时钟,在其发起一次传输时提供一个起始位,在其终止一次传输时提供一个停止位;从器件拥有一个唯一的7或10位从器件地址。SMBus与I2C总

2012-06-06 17:13:55 3144 1

原创 Touch Device Driver Requirements

Touch Device Driver RequirementsTouch device drivers should only register abs and key codes for the abs and buttons that they actually support. Registering excess axes or key codes may confuse t

2012-06-05 17:48:23 2569

原创 Linux驱动加载顺序

Linux内核为不同驱动的加载顺序对应不同的优先级,定义了一些宏:include\linux\init.h#define pure_initcall(fn)   __define_initcall("0",fn,1)#define core_initcall(fn)   __define_initcall("1",fn,1)#define core_initcall_sync(fn

2012-06-04 17:13:02 8958 1

原创 内核线程、轻量级进程、用户线程、用户进程

内核线程内核线程只运行在内核态,不受用户态上下文的拖累。处理器竞争:可以在全系统范围内竞争处理器资源;使用资源:唯一使用的资源是内核栈和上下文切换时保持寄存器的空间调度:调度的开销可能和进程自身差不多昂贵同步效率:资源的同步和数据共享比整个进程的数据同步和共享要低一些。轻量级进程(vfork创建)轻量级进程(LWP)是建立在内核之上并由内核支持的用户线程,它是内核线程的高度抽象

2012-06-02 14:31:06 3172

原创 linux led子系统

数据结构/include/linux/leds.henum led_brightness {     LED_OFF          = 0,     LED_HALF     = 127,     LED_FULL     = 255,};led_classdev代表led的实例:struct led_classdev {     const cha

2012-06-01 10:15:58 6190 1

UNIX环境高级编程

UNIX环境高级编程

2012-01-31

android内核移植文档整理

android内核移植文档整理,我移植时参考过的文档,论文,资料,等待资料.学习andoid内核移植的好文章

2011-12-26

Uboot启动和移植

Uboot启动和移植

2011-12-25

uboot分析和笔记

uboot分析和笔记 详细的分析 uboot分析和笔记 详细的分析

2011-12-25

Android面试题

Android面试题

2011-12-25

android底层相关模块介绍

android底层相关模块介绍供14章 包括android驱动所有模块,学习的好资料啊

2011-12-25

Android核心分析

Android核心分析 Zygote Service - maxleng的专栏 Service深入分析 IPC框架分析 Binder,Service,Service manager

2011-12-25

Android编译系统

Android_build_systemAndroid_build_systemAndroid_build_system

2011-12-25

android编译大全_完全指南

android编译大全_完全指南

2011-12-25

Android的编译系统

Android的编译系统

2011-12-25

FPGA学习经验

FPGA学习经验共享FPGA学习经验共享FPGA学习经验共享FPGA学习经验共享

2011-12-25

matlab书籍整理

matlab书籍整理

2011-12-25

超声波测距资料打包

超声波测距资料

2011-12-25

嵌入式系统设计开发流程

嵌入式系统设计开发流程嵌入式系统设计开发流程嵌入式系统设计开发流程嵌入式系统设计开发流程

2011-12-25

ucos 2内核结构

ucos 2内核结构

2011-12-25

嵌入式操作系统介绍

嵌入式操作系统介绍

2011-12-25

任务管理 时间管理 内存管理

任务管理 时间管理 内存管理

2011-12-25

uCOSII移植

uCOSII移植

2011-12-25

C语言实现FFT

C语言实现FFT

2011-12-25

C2000与单片机对比分析

C2000与单片机对比分析

2011-12-25

基于DSP的FFT算法实现

基于DSP的FFT算法实现

2011-12-25

TMS320C2000 DSP硬件结构

TMS320C2000 DSP硬件结构

2011-12-25

TMS320C2000 DSP指令系统

TMS320C2000 DSP指令系统

2011-12-25

CCS的技术概述

CCS的技术概述

2011-12-25

做DSP最应该懂得157个问题

做DSP最应该懂得157个问题

2011-12-25

基于TMS320C240湿度传感器测试系统设计

基于TMS320C240湿度传感器测试系统设计

2011-12-25

Jabber(XMPP)服务协议的概述中文版

Jabber(XMPP)服务协议的概述中文版

2011-12-25

AVR实现MP3,歌曲放在U盘.

AVR实现MP3,歌曲放在U盘,原理图,代码都有,还有说明哦

2011-12-25

XMPP协议简介

XMPP协议简介

2011-12-25

佛山网通EPON的FTTH工程方案设计

如今,更多用户关注多样化、个性化的通信服务,宽带服务的需求已经上升到了一个新的台阶。随着IPTV视频组播、点播业务的全面展开,对接入网提出了更高的带宽需求。 现有宽带接入方式,如xDSL,已越来越不能满足用户高带宽、多业务接入的需求。随着光接入技术的发展,光纤到户的综合成本比以前有大幅度下降。目前进行FTTH技术和业务的试验条件已经具备。 本文主要讨论了佛山网通EPON的FTTH工程设计方案,对工程涉及的试验业务、网络结构、小区布线、带宽设计、IP地址规划、VLAN划分、设备特性、ODN设置等进行了详细的描述,并对该工程采用EPON的FTTH技术进行了详细的分析。本次试验工程为佛山进行大规模的FTTH商用奠定了基础。

2011-12-25

03_Android的Linux内核与驱动程序

03_Android的Linux内核与驱动程序

2011-12-25

BootLoader_与Linux_内核的参数传递

BootLoader_与Linux_内核的参数传递

2011-12-25

linux 内核启动过程以及挂载android 根文件系统的过程

linux 内核启动过程以及挂载android 根文件系统的过程

2011-12-25

Eclipse_OpenOCD_OpenJTAGv3嵌入式开发教程

Eclipse_OpenOCD_OpenJTAGv3嵌入式开发教程Linux

2011-12-25

超宽带无线通信技术 ppt

超宽带无线通信技术 超宽带无线通信技术

2022-09-11

ARM---Cortex-A8处理器

ARM---Cortex-A8处理器, PPT版本, 非常好的参考资料。 欢迎下载 Cortex-A8处理器 技术特点; Cortex-A8内部 功能及特点; Cortex-A8内核工作模式; Cortex-A8存储系统。

2022-09-11

opencl SVM例程

opencl SVM例程

2016-08-16

linux设备启动char_dev2

linux设备启动char_dev2

2012-01-31

linux设备启动char_dev1

linux设备启动char_dev

2012-01-31

linux字符设备驱动

linux字符设备驱动

2012-01-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除