设备驱动(Device Driver)
文章平均质量分 74
白杨树
这个作者很懒,什么都没留下…
展开
-
编写简单Linux驱动程序的条件(Linux内核树)
本文出自:http://blog.csdn.net/hongchangfirst 这几天研究了下怎么在Linux下遍历进程间的关系,包括父子关系,并以可视化的形式(树)输出出来,因为遍历进程间的关系是要在内核模式下才能拥有的特权,所以我们就要依靠驱动程序帮我们来完成这一项功能,因为驱动程序是运行在内核态下的。 在编写驱动程序前,我们要先确保我们有linux内核目原创 2011-12-12 21:17:59 · 1333 阅读 · 0 评论 -
在Linux下使用自己编写的驱动程序详细步骤
本文出自:http://blog.csdn.net/hongchangfirst 驱动程序可以按照两种方式编译。一种是编译进kernel,另一种是编译成模块(modules),如果编译进内核的话,会增加内核的大小,还要改动内核的源文件,而且不能动态的卸载,不利于调试,所以推荐使用模块方式。 当驱动程序写完时,也就说有了a.ko文件,我们就可以使用我们自己写的驱动程序了。按照如下步原创 2011-12-13 17:38:03 · 3884 阅读 · 0 评论 -
Linux内存描述符mm_struct初窥
本文出自:http://blog.csdn.net/hongchangfirst 上次讲了Linux进程描述符,这次我们在讲讲内存描述符,Linux的内存描述符也用一个结构体来表示,具体是mm_struct结构体,在linux/mm_types.h里定义。Linux操作系统就是用这个结构体实现内存的管理,我们先看一下具体的字段情况。 struct mm_struct {原创 2012-01-12 21:14:40 · 6182 阅读 · 0 评论 -
Linux内核源码中container_of详解
本文出自:http://blog.csdn.net/hongchangfirst 关于container_of的用法,可参考http://blog.csdn.net/hongchangfirst/article/details/7076225。其实就是解决了”如何通过结构中的某个变量的地址获取结构本身的指针“这样的问题。container_of实现了根据一个结构体变量中的一个成员变量的指针来原创 2012-01-12 21:19:01 · 7829 阅读 · 2 评论 -
遍历PCI设备的Linux设备驱动程序
本文出自:http://blog.csdn.net/hongchangfirst 如果要访问PCI 设备,首先要确定PCI设备在系统中的物理连接情况。描述这个连接情况的数据是“总线号”、“设备号”和“功能号”。一个系统可以有256 个PCI总线,每个总线上可以有32 个设备,每个设备可以具有8 个功能(每个功能作为一个PCI设备)。当这三个数据确定的时候,就可以在系统中唯一确定一个原创 2012-03-01 10:31:20 · 2359 阅读 · 0 评论 -
Linux内核中list_head、list_for_each、list_entry、container_of之间的关系
原文:http://blog.csdn.net/hongchangfirst/article/details/7076225 作者:hongchangfirst Linux内核需要经常用到链表,所以为了避免重复的代码,就自己实现了一个循环双向链表。 首先我们先看一下list_head的定义,该结构体在linux/types.h中定义。 struct list_head原创 2012-01-12 21:19:07 · 9648 阅读 · 0 评论 -
linux进程描述符task_struct详解
本文出自:http://blog.csdn.net/hongchangfirst/article/details/7075026 大家都知道进程,可是知道linux是怎么管理其进程的吗?每一个进程都有一个进程描述符,具体是task_struct结构体存储相关的信息,在linux/sched.h文件里定义,那么我们先看看linux内核3.0版本的task_struct结构体原创 2012-01-12 16:59:19 · 18421 阅读 · 2 评论