01 2012 档案
Linux异步通知fasync
摘要:本文转载于CSDN博客:转载请注明原文地址http://blog.csdn.net/billowszpt/article/details/7184302linux设备驱动归纳总结(三):7.异步通知fasyncxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数。简单的说,signal函数就是让一个信号与与一个函数对应,没当接收到这个信号就会调用相应的函数。xxxxxxxxx 阅读全文
posted @ 2012-01-08 14:49 陶毛毛 阅读(9279) 评论(0) 推荐(2)
linux轮询操作
摘要:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/unbutun/article/details/4722448轮询函数轮询的概念和作用使用非阻塞I/O的应用程序通常会使用select()和poll(),poll和select用于查询设备的状态,以便用户程序获知是否能对设备进行非阻塞的访问,它们都需要设备驱动程序中的poll函数支持。Select()和poll()系统调用最终会引发设备驱动设备中的poll()函数被执行。poll()函数为最终执行体)Linux下select调用的过程:1.用户层应用程序调用select(),底层调用poll())2.核心层调用sy 阅读全文
posted @ 2012-01-08 13:47 陶毛毛 阅读(4186) 评论(0) 推荐(0)
linux内核的等待队列
摘要:本帖转载于CSDN博客http://blog.csdn.net/murui/article/details/2318280Linux内核的同步机制:等待队列Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型 阅读全文
posted @ 2012-01-07 20:00 陶毛毛 阅读(662) 评论(0) 推荐(0)
linux读写自旋锁
摘要:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yunsongice/archive/2010/05/18/5605264.aspx读/写自旋锁同样是在保护SMP体系下的共享数据结构而引入的,它的引入是为了增加内核的并发能力。只要内核控制路径没有对数据结构进行修改,读/写自旋锁就允许多个内核控制路径同时读同一数据结构。如果一个内核控制路径想对这个结构进行写操作,那么它必须首先获取读/写锁的写锁,写锁授权独占访问这个资源。这样设计的目的,即允许对数据结构并发读可以提高系统性能。每个读/写自旋锁都是一个rwlock_t结构:typedef struct { raw_ 阅读全文
posted @ 2012-01-07 15:19 陶毛毛 阅读(2286) 评论(0) 推荐(0)
Linux自旋锁
摘要:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yunsongice/archive/2010/05/18/5605264.aspx加锁(locking)是一种广泛应用的同步技术。当内核控制路径必须访问共享数据结构或进入临界区时,就需要为自己获取一把“锁”。由锁机制保护的资源非常类似于限制于房间内的资源,当某人进入房间时,就把门锁上。如果内核控制路径希望访问资源,就试图获取钥匙“打开门”。当且仅当资源空闲时,它才能成功。然后,只要它还想使用这个资源,门就依然锁着。当内核控制路径释放了锁时,门就打开,另一个内核控制路径就可以进入房间。Linux锁的应用之一在多处理 阅读全文
posted @ 2012-01-07 15:05 陶毛毛 阅读(4276) 评论(0) 推荐(0)
register_chrdev_region函数源码分析
摘要:本文转载于:http://edsionte.com/techblog/archives/1393 如何找到一个有效的切入点去深入分析内核源码,这是一个令人深思的问题。本文以前文中未详细说明的函数为切入点,深入分析char_dev.c文件的代码。如果你已经拥有了C语言基础和一些数据结构基础,那么还等什么?Let’s go! 在《字符设备驱动分析》一文中,我们说到register_chrdev_r... 阅读全文
posted @ 2012-01-06 16:05 陶毛毛 阅读(2176) 评论(0) 推荐(1)
Linux内核模块的声明与描述
摘要:在Linux的文件Module.h中包含着一些宏,这些宏的作用是用来对模块的声明和描述。下面我们把这些宏中常用的罗列在下面。 MODULE_AUTHOR (author); //声明模块的作者 MODULE_DESCRIPTION (description); //声明模块的描述 MODULE_... 阅读全文
posted @ 2012-01-05 22:05 陶毛毛 阅读(744) 评论(0) 推荐(0)
字符设备驱动程序中重要的三个数据结构file_operations、inode、file
摘要:在学习字符设备驱动的开始,我们必须了解的是三个很重要的数据结构,他们分别是file_operations、inode、file。下面陶毛毛同学就和大家一起来学习这三个数据结构。 struct _file_operations在Fs.h这个文件里面被定义的,如下所示: struct file_operations { struct module *owner;//拥有该结... 阅读全文
posted @ 2012-01-05 15:50 陶毛毛 阅读(5553) 评论(0) 推荐(0)
Linux内核中的Kconfig、Makefile、.config
摘要:本文参考文章地址:http://hi.baidu.com/donghaozheng/blog/item/02e1b231f0df64a25fdf0eea.html 本文参考友善之臂的MICRO2440用户手册 毛毛同学今天学习了驱动程序模块的安装与卸载,在这个过程中毛毛发现,内核的目录中有许多的Kconfig、Makefile文件,但是毛毛不知道为什么需要这... 阅读全文
posted @ 2012-01-05 10:50 陶毛毛 阅读(48518) 评论(0) 推荐(6)
PC机与S3C2440的文件传输
摘要:本文是转载的,地址:http://blog.csdn.net/fengchao_2009/article/details/6419928我是个linux的初学者,吃了不少苦,一步步摸索着前进,知道其中的痛和迷茫,感谢群里朋友还有网上大家分享的文章让我不断进步!生命不息、折腾不止!如何把上位机开发的程序下到开发板上?这是本文讨论的主题。1.串口或者usb转串口上位机与开发板之间通过串口链接,使用超级终端、secureCRT等等软件都可以,开发板上装好文件系统。例如我们想把上位机编译好的文件下到开发板上(我的文件在虚拟机的linux系统里,把它拖到xp下),确认超级终端通讯正常,首先在定位到开发板 阅读全文
posted @ 2012-01-03 20:46 陶毛毛 阅读(1638) 评论(0) 推荐(1)