驱动
文章平均质量分 79
与时俱进2014
这个作者很懒,什么都没留下…
展开
-
内存映射
一. 概述 内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,相反,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间用户空间两者之间需要大量数据传输等操作的话效率是非常高的。 首先,驱动程序先分配好一段内存,接着用户进程通过库函数mmap()来告诉内核要将多大的内存映射到内核转载 2012-11-26 10:44:21 · 398 阅读 · 0 评论 -
Netstat 命令的常用方法
1. 列出所有端口 (包括监听与非监听端口)使用netstat -a列出所有端口# netstat -a | moreActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 localhost:30037翻译 2012-11-22 08:58:12 · 504 阅读 · 0 评论 -
交叉编译
如何交叉编译应用程序,技巧,注意事项。最近大家都涉及交叉编译应用程序,感觉大家的路子有点偏,觉得有必要纠正一下。 一般的应用程序编译的步骤无外呼 ./configure && make && make install 但是对于交叉编译不能照搬,尤其要注意不能轻易make install(当然如果指定了 --prefix就无所谓了, 否则可能会覆盖标准路径的程序就惨了) 这里有转载 2012-11-22 08:52:35 · 554 阅读 · 0 评论 -
USb的基础补习
在进入学习之前,先认识一下USB的重要关键字,这些关键字也是在以下的学习里面将出现的字眼:1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个转载 2012-11-22 08:51:42 · 318 阅读 · 0 评论 -
如何编写Linux下的USB键盘驱动
如何编写Linux下的USB键盘驱动1. 指定USB键盘驱动所需的头文件: #include /*内核头文件,含有内核一些常用函数的原型定义*/#include /*定义内存分配的一些函数*/#include /*模块编译必须的头文件*/#include /*输入设备相关函数的头文件*/#include /*linux初始化模块函数定义*/#include /*USB设转载 2012-11-22 08:49:44 · 591 阅读 · 0 评论 -
ramdisk
ramdisk 一 什么是RamDiskRam:内存,Disk:磁盘,在Linux中可以将一部分内存当作分区来使用,称之为 RamDisk。对于一些经常被访问、并且不会被更改的文件,可以将它们通过RamDisk放在内存中,能够明显地提高系统性能。RamDisk工作于虚 拟文件系统(VFS)层,不能格式化,但可以创建多个RamDisk。虽然现在硬盘价钱越来越便宜,但对于一些我们想让其访问转载 2012-11-22 08:45:23 · 1764 阅读 · 0 评论 -
usb开发的基础
一、USB命令在USB规范里,对命令一词提供的单词为“Request”,但这里为了更好的理解主机与设备之间的主从关系,将它定义成“命令”。 所有的USB设备都要求对主机发给自己的控制命令作出响应,USB规范定义了11个标准命令,它们分别是:Clear_Feature、Get_Configuration、Get_Descriptor、Get_Interface、Get_Status、Set转载 2012-11-22 08:50:24 · 443 阅读 · 0 评论 -
Linux下USB驱动之skeleton分析
Linux下USB驱动之skeleton分析1.结构体 内核其实就是一坨坨的数据结构,加上一根根链表。 对于初学者,如果直接看USB驱动代码,大概会被那些名字相近的结构体弄得晕头转向,比如usb_host_interface和usb_interface,看着看着就把两个混淆了。所以,在学习USB驱动之前,建议把相关结构体都拎出来看一下,其实,也就那么几个结构体在那装神弄鬼。USB转载 2012-11-22 08:49:00 · 459 阅读 · 0 评论 -
Linux I2C核心、总线与设备驱动
第十五章 Linux I2C核心、总线与设备驱动本章导读I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设转载 2012-11-22 08:47:29 · 749 阅读 · 0 评论 -
系统调用
统调用系统调用1什么是系统调用 系 统调用,顾名思义, 说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的 调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间转载 2012-11-22 08:46:35 · 461 阅读 · 0 评论 -
字符设备驱动编写步骤
字符设备驱动编写步骤1.标准字符设备驱动 a.注册设备号 如 if(key_major) /*静态注册*/ err = register_chrdev_region(devno, 1, DEVICE_NAME); else { /*动态注册*/ err = alloc_chrdev_region(&devno, 0,原创 2012-11-22 08:44:22 · 623 阅读 · 0 评论 -
Linux终端设备驱动
第十四章 Linux终端设备驱动本章导读在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。 14.1节阐述了终端设备的概念及分类,14.2节给出了Linux终端设备驱动的框架结构,重点描述tty_driver结构体及其成员。14.3~14.5节在14.2节的基础上,分别给出了Linux终端设备驱动模块加载/转载 2012-11-22 08:42:01 · 694 阅读 · 0 评论 -
Linux块设备驱动
Linux块设备驱动 第十三章 Linux块设备驱动本章导读块设备是与字符设备并列的概念,这两类设备在Linux中驱动的结构有较大差异,总体而言,块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极大的不同,缓冲、I/O调度、请求队列等都是与块设备驱动相关的概念。本章将向您展示Linux块设备驱动的编程方法。13.1节分析块设备I/O操作的特点,对比字符设备与块设备在I/O转载 2012-11-22 08:41:01 · 721 阅读 · 0 评论 -
kill_fasync及fasync_helper
kill_fasync及fasync_helperkill_fasync及fasync_helper用于异步通知中kill_fasync(&dev->async_queue, SIGIO, POLL_IN); //向app发可读信号,dev->async_queue可用来区分向谁发那个进程调用这个fasync_helper就向谁发int fasync_helpe原创 2012-11-22 08:37:56 · 2784 阅读 · 0 评论 -
网卡TSO、UFO、GSO、LRO、GRO和RSS介绍
TSO、UFO、GSO、LRO、GRO和RSS介绍ethtool -k ,ethtool --show-offload ,或者可以看到很多网络接口的offload特性,例如:$ sudo ethtool -k eth0Offload parameters for eth0:rx-checksumming: ontx-checksumming: onscatter-gathe转载 2017-09-17 11:43:55 · 3901 阅读 · 0 评论