linux驱动开发
文章平均质量分 78
cy_weiyi
留下自己的青春
展开
-
Linux内核驱动之自动创建设备文件
设备文件是非常重要的文件,是应用程序与设备驱动交换数据,控制硬件的桥梁。在驱动程序中open、release的实现过程中其中的一个参数struct inode实质就是设备文件的索引,没有这个索引也就没有后期的各种操作,通常设备文件也被称为设备文件节点。因此没有设备文件后期的各种实现都是多余的。 设备文件的创建有两种方法,其中就是在创建文件系统过程中用到的mknod命令。该命令的形式如下:转载 2015-07-26 21:18:27 · 2042 阅读 · 0 评论 -
Linux struct file结构
struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file { /* * fu_list becomes invalid after file_free is called and queued via * fu_rcuhead for RCU转载 2015-07-28 16:14:57 · 753 阅读 · 0 评论 -
ontainer_of()宏
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the转载 2015-07-28 14:55:25 · 324 阅读 · 0 评论 -
struct inode 和 struct file
1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node i_hash;struct list_head i_list;struct list_head i_转载 2015-07-28 19:43:46 · 337 阅读 · 0 评论 -
内核符号导出
1、创建实验目录#mkdir /home/guoqian/4-1-4#cd /home/guoqian/4-1-42、编写内核模块代码calculate.c hello.c Makefile这是calculate.c这是hello.c 这是Makefile3、首先来看不导出内核符号的情况 3、1屏蔽calculate.c /*EXP转载 2015-07-28 12:51:57 · 977 阅读 · 0 评论 -
自动创建设备节点
使用linux-2.6.30.4。文件的管理使用的是 sysfs.(由udev制作的文件系统) 涉及两个函数:virtual_disk_class = class_create(THIS_MODULE, "VirtualDisk");device_create( virtual_disk_class, NULL, devno, 0, "VirtualDisk"); 使用转载 2015-07-28 16:41:16 · 448 阅读 · 0 评论 -
module_param 模块参数
模块参数引导模块时,可以向它传递参数。要使用模块参数加载模块,这样写:insmod module.ko [param1=value param2=value ...]为了使用这些参数的值,要在模块中声明变量来保存它们,并在所有函数之外的某个地方使用宏MODULE_PARM(variable, type) 和 MODULE_PARM_DESC(variable转载 2015-07-28 13:08:25 · 1093 阅读 · 0 评论 -
lseek及llseek介绍
lseek在manpage中的相关说明:名称 lseek - 重新定位读/写文件偏移量内容简介 #include #include off_t lseek(int fd, off_t offset, int whence);描述 使用lseek()函数根据whence及offset两转载 2015-07-28 21:19:18 · 2980 阅读 · 0 评论