易截截图软件、单文件、免安装、纯绿色、仅160KB

linux设备驱动程序——字符设备驱动程序

在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。字符设备是指存取时没有缓存的设备。典型的字符设备包括鼠标、键盘、串行口等。
字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则不然,它利用一块系统内存作为缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的I/O操作。块设备主要是针对磁盘等慢速设备设计的,以免耗费过多的CPU时间用来等待。网络设备可以通过BSD套接口访问数据。
一.主设备号和次设备号
主设备号标识设备对应的驱动程序;次设备号由内核使用,用于正确确定设备文件所指的设备。我们可以通过次设备号获得一个指向内核设备的直接指针,也可将次设备号当作设备本地数组的索引,不管用哪种方式,除了知道次设备号用来指向驱动程序所实现的设备之外,内核本身基本上不关心关于次设备号的任何其他消息。
◎设备编号的内部表达
内核用dev_t类型(<linux/types.h>)来保存设备编号,dev_t是一个32位的数,12位表示主设备号,20位表示次设备号。
在实际使用中,是通过<linux/kdev_t.h>中定义的宏来转换格式。
 (dev_t)-->主设备号、次设备号       MAJOR(dev_t dev)     MINOR(dev_t dev)
 主设备号、次设备号-->(dev_t)       MKDEV(int major,int minor) 
◎分配和释放设备编号
建立一个字符设备之前,驱动程序首先要做的事情就是获得设备编号。其这主要函数在<linux/fs.h>中声明:
int register_chrdev_region(dev_t first, unsigned int count,char *name);   //指定设备编号
int alloc_chrdev_region(dev_t *dev, unsigned int firstminor,unsigned int count, char *name);   //动态生成设备编号
void unregister_chrdev_region(dev_t first, unsigned int count);      //释放设备编号 
分配之设备号的最佳方式是:默认采用动态分配,同时保留在加载甚至是编译时指定主设备号的余地。
◎动态分配主设备号
    某些主设备号已经静态地分配给了大部分公用设备。在内核源码树的Documentation/device.txt


相关文档:

Linux在VMware虚拟机中的网络设置

这个问题搞了很长时间,也在网上查了很多东西,现在慢慢的来整理一下
vmware安装好以后,会自动添加两张网卡(vmnet1和vmnet8),整个机器的结构就可以抽象成:虚拟机系统(虚拟网卡vmnet0)――(vmnet1 vmnet8)――实际系统(网卡)。
1.Vmware的网卡设置
    (1)Bridged(桥接)方式
  &n ......

linux里添加删除用户和组,并设置用户目录

学的快忘的也快,好,把它记下来。
(一) 用户
1. 作为root登录
2. 给你要添加的用户设置用户目录, mkdir /home/yang
3. useradd yang -g  users -G 100 -d /home/yang
-->指定组用 -g,要查看系统目前有哪些组,可以 cat /etc/group
-->如果不设置 -g, -d useradd将使用 /etc/default/useradd 脚本指定的 ......

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

GDB 使用——Linux C编程

简述
    一 列文件清单
    二:执行程序
    三:显示数据
    四:断点(breakpoint)
    五.断点的管理
    六.变量的检查和赋值
    七. 单步执行
    八.函数的调用
 &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号