摘要:http://www.cppblog.com/aaxron/archive/2013/04/12/199387.html 信号量在创建时需要设置一个初始值,表示同时可以有几个任务可以访问该信号量保护的共享资源,初始值为1就变成互斥锁(Mutex),即同时只能有一个任务可以访问信号量保护的共享资源。 
        
阅读全文
 
            
         
        
            
            
摘要:http://www.cppblog.com/aaxron/archive/2013/04/12/199386.html 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由
        
阅读全文
 
            
         
        
            
            
摘要:转载于: http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.html 一、信号量 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资
        
阅读全文
 
            
         
        
            
            
摘要:转载于: http://blog.sina.com.cn/huangjiadong19880706 很多人会问这样的问题,Linux内核中提供了各式各样的同步锁机制到底有何作用?追根到底其实是由于操作系统中存在多进程对共享资源的并发访问,从而引起了进程间的竞态。这其中包括了我们所熟知的SMP系统,多
        
阅读全文
 
            
         
        
            
            
摘要:有异步通知功能的按键驱动,目标是,按下按键时,驱动主动去通知应用程序。是不是感觉驱动已经比较完善了,好像已经是完美无缺了?是不是这样呢?好像不是呢,有没有这么一种情况,多个进程想同时使用驱动的设备节点?在多线的环境下,分分钟可能会发生这种情况。 上一节文章链接:http://blog.csdn.ne
        
阅读全文
 
            
         
        
            
            
摘要:1. 原理说明 Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示。四级页表分别为: l 页全局目录(Page Global Directory) l 页上级目录(Page Upper D
        
阅读全文
 
            
         
        
            
            
摘要:转载于: http://blog.sina.com.cn/s/blog_4c7877280100h4ay.html 异步通知 要弄明白这个问题,我们得从最基本的原理开始。我们知道,驱动程序运行在内核空间中,应用程序运行在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时候,我们希
        
阅读全文
 
            
         
        
            
            
摘要:【fcntl系统调用】 功能描述:根据文件描述符来操作文件的属性。 用法: int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock)
        
阅读全文
 
            
         
        
            
            
摘要:/*好,有了前面的铺垫,我们在从驱动层次考虑: 从驱动程序角度考虑: F_SETOWN被调用时对filp->f_owner赋值,此外什么也不做; 在执行F_SETFL启用FASYNC时,调用驱动程序的fasync方法。只要filp->f_flags中的FASYNC标识发生了变化,就会调用该方法,以便
        
阅读全文
 
            
         
        
            
            
摘要:转载于: https://www.ibm.com/developerworks/cn/linux/l-pci/ Linux下PCI设备驱动程序开发 转载于: https://www.ibm.com/developerworks/cn/linux/l-pci/ Linux下PCI设备驱动程序开发 PC
        
阅读全文
 
            
         
        
            
            
摘要:转载于:http://www.voidcn.com/blog/zyboy2000/article/p-6126734.html /driver/pci/probe.c /arch/powerpc/kernel/pci_64.c 在pci驱动中pci调用pci_scan_device扫描每个设备的每个
        
阅读全文
 
            
         
        
            
            
摘要:(一) PCI总线作为处理器系统的局部总线,主要目的是为了连接外部设备,而不是作为处理器的系统总线连接Cache和主存储器。但是PCI总线、系统总线和处理器体系结构之间依然存在着紧密的联系。 PCI总线作为系统总线的延伸,其设计考虑了许多与处理器相关的内容,如处理器的Cache共享一致性和数据完整性
        
阅读全文
 
            
         
        
            
            
摘要:inux-2.6.36之前的内核: [objc] view plain copy int (*ioctl)(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg) (1)inode和file:ioctl的操作
        
阅读全文
 
            
         
        
            
            
摘要:/* 重复了一下以前的代码,对于理解是比较有价值的 ,由于自己电脑联网的原因没有在板子上跑,这里先到这里 */ /* * 目的:用for循环语句copy内存的数据到内存的另外一个地方;用dma实现同样的功能. * 对比普通的copy 和 用dma功能的区别. * 提示: * 一次dma传输完成之后让
        
阅读全文
 
            
         
        
            
            
摘要:转载于:http://blog.chinaunix.net/uid-25014876-id-90740.html 自己补充: #define IRQF_TRIGGER_NONE 0x00000000 //这个宏定义的触发标志自己通过dma实验觉得指的是 软件触发 的中断类型中使用的,区别于 上升沿 
        
阅读全文
 
            
         
        
            
            
摘要:转载于:http://www.cokco.cn/thread-12073-1-1.html 本文介绍了s3c6410中的framebuffer,参考代码为Linux2.6.28。网上介绍framebuffer的文章很多,内核代码中也有关于framebuffer的文档,所以本文只介绍一些其它文章较少介
        
阅读全文
 
            
         
        
            
            
摘要:以下来自:http://blog.csdn.NET/zjujoe/archive/2009/05/15/4189612.aspx 这两天在做 DMA 相关开发, 遇到一对分配 dma buffer 的函数,dma_alloc_coherent 与 dma_alloc_writecombine。 不知
        
阅读全文
 
            
         
        
            
            
摘要:来源:http://xmxohy.blog.163.com/blog/static/53469584201082734630713/ 先理解cache的作用CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就
        
阅读全文