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

linux下字符驱动模块的一般性步骤

这段时间学习字符设备的驱动模块程序,主要是借鉴书籍<linux驱动开发详解>及网络资源,在此,我依据个人的理解,
对现在自己所理解的进行小结。
整体出发一点,应用程序和vfs之间的接口是系统调用,而VFS与磁盘文件系统及普通设备之间的接口是file_operations
结构体成员函数,这个接口体包含对文件进行打开、关闭、读写、控制的一系列成员函数。
由于字符设备的上层没有磁盘文件系统,所以字符设备的file_operations成员函数就直接由设备驱动提供了,即file_operations
正是字符设备驱动的核心。
在linux2.6内核中我们使用cdev结构体来描述字符设备,此结构体对于设备的重要信息有包含。
编写设备驱动模块加载时步骤为:
1、自定义字符设备结构体变量,或用函数struct cdev *cdev_alloc(void)申请;
2、向内核申请设备号,可以是静态:register_chrdev_region(),或动态的alloc_chrdev_region();
3、初始化cdev结构体,此函数是为了将file_operation结构体成员函数与字符设备描述的结构体cdev进行相连接;
4、向内核注册字符设备,调用函数cdev_add();
在对字符设备的使用时,肯定有些会涉及到资源的共享及并发控制等问题,这些都是在相应的file_operations函数成员中
进行相关的处理的,但是整体的设备驱动模块加载里面涉及的步骤是上面这样的;
编写设备驱动模块卸载时步骤为:
1、注销设备,cdev_del();
2、释放内存(如果使用到);
3、释放设备号,unregister_chrdev_region();
以上为个人看法,还得继续学习


相关文档:

Linux 的多线程编程的高效开发经验

2009 年 4 月 23 日
本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。
背景
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微 ......

BusyBox 简化嵌入式 Linux 系统

http://www.ibm.com/developerworks/cn/linux/l-busybox/
BusyBox 简化嵌入式 Linux 系统
为小环境准备的一个小工具包
文档选项
<tr valign="top"><td width="8"><img alt="" height="1" width="8" src="//www.ibm.com/i/c.gif"/></ ......

linux 消息队列使用经验

概述:
消息队列是linux下进程间通信的一种方式,一般用于传送少量数据,如果大量数据需要在进程间共享,则可以用共享内存。
函数接口使用:
linux下提供了以下几个接口,用于消息队列的使用,使用一般过程如下:
1. 调用ftok接口产生一个key.
    使用ftok的好处是,访问同一个消息队列的不同进程可以 ......

linux socket 详解

头文件:sys/socket.h
相关结构体:
struct sockaddr
{
    unsigned short sa_family;   //地址族
    char sa_data[14];   //14字节协议地址
};
struct sockaddr_in
{
    short int sin_family;   //地址族
    u ......

windows登陆远程Linux主机的一种途径putty

windows登陆远程Linux主机的一种途径putty-详细安装使用过程
作者:gliethttp
如果你打算在windows下访问另外一台装有Linux的机子,那么推荐使用putty
SSH提供两种级别的安全验证: 一是基于口令的安全验证。只要用户知道自己账号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证用户正在连接的服 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号