linux
文章平均质量分 80
向往宇宙
这个作者很懒,什么都没留下…
展开
-
linux ------ 资源互斥与同步机制
linux 系统支持多进程与多处理器,这样对共享资源的访问会存在竞争状态,所以需要处理好对资源的互斥与同步。 共享资源访问出现竞争状态叫做并发,一般并发的来源有以下3种: (1). 中断处理产生并发。 (2). 调度器可抢占导致进程间产生并发。 (3). 多处理器不同进程间的并发原创 2014-02-25 10:17:55 · 927 阅读 · 0 评论 -
linux ------ USB设备驱动
USB是通用串行接口,具有USB接口的设备很多,比如U盘,MP3,PC CAMERA等。USB分主机端与设备端,在LINUX系统里面,在USB主机端集成了一个根HUB和主控制器,系统启动的时候会对根HUB帮主控制器进行牧举并加载驱动,然后会启动一个守护进程专门监视控制器总线上的变化,如果有新的设备接入,该守护进程就会被调用并对设备进行枚举,然后会产生一个热插拔的事件。LINUX内核已经写好USB原创 2014-03-07 16:37:12 · 3974 阅读 · 0 评论 -
linux ------ framebuffer 驱动
framebuffer 设备即帧缓冲设备(简写fb)提供了显示接口的抽象描述。他同时代表着显示接口的存储区,应用程序通过定义好的函数访问,不需要知道底层的任何操作。 Framebuffer 驱动使用的设备节点,通常位于/dev 目录,如/dev/fb*.从用户角度看,fb 设备和其他/dev 下面的设备类似:普通的字符设备,主设备号29,次设备号定义fb 的索引。通常,使用如下方式(前面的数字表示原创 2014-03-06 16:18:30 · 1075 阅读 · 0 评论 -
linux ------ 设备驱动模型之一(sysfs, koject, kset)
随着linux系统越来越成熟,设备驱动加入了一些新的特性,之前独立的设备驱动已经无法胜任这种工作,于是linux系统找出一种方式,让各种设备及其驱动程序有效的联系起来,形成一个“群体”,这就是设备驱动模型。 设备驱动模型最基本的元素包括:sysfs, kobject, kset。 一. sysfs是2.6版本之后加入的一个文件系统接口,它把内核里面的各种kob原创 2014-03-03 16:45:51 · 1097 阅读 · 0 评论 -
linux ------ platform device 与 platform driver
从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册。 Linux platform driver 机制和传统的device driver机制(即:通过 driver_原创 2014-03-05 14:21:46 · 642 阅读 · 0 评论 -
linux ------ 设备驱动模型之二(bus, device, driver)
bus, device, driver属于设备驱动模型的高层部分,驱动程序员直接跟它们打交道,它们构成LINUX设备驱动模型这个建筑的外在表现。 一. 总线及其注册 总线是设备驱动模型的核心,它把设备与驱动紧密的联系起来,完成各自的使命。 总线有具体的物理总线抽象,比如PCI, I2C总线,也有虚拟的总线,比如platform总线。符合LINUX设备驱动原创 2014-03-04 15:36:38 · 943 阅读 · 0 评论 -
linux ------ I2C 子系统及设备驱动
1. I2C 子系统框架图 从框架中看,用户应用通过/sys或者/dev中的设备节点来访问I2C设备。内核空间中的I2C分I2C client driver、I2C-Core与I2C Adapter driver三部分。其中I2C-Core是linux内核实现好的代码,I2C Adapter driver是具体CPU硬件平台的host 控制器原创 2014-02-28 15:13:59 · 975 阅读 · 2 评论 -
linux ------ input 子系统设备驱动
linux 的input 子系统主要分:input驱动层、input core层,input handle层与应用空间层,应用空间层不属于内核,处于应用的范畴。 input core 与 input handle是linux 内核实现好的部分,不需驱动程序员来处理,如果想完成输入设备的驱动,只需现实input driver层的代码。原创 2014-02-27 14:48:09 · 765 阅读 · 0 评论 -
linux ------ 时间管理、内存使用及内核与用户间的数据传递
linux 系统的时间操作分2类:延时与定时。延时是2个动作之前插入一段等待时间,定时是等待一段时间后执行某个动作,定时的典型应用是轮询。 内存分物理内存与虚拟内存,对使用者来说一般指虚拟内存,内核会通过内存管理模块转换成物理内存。 数据传递,是说用户空间与内核空间之间的数据传递方式,由于内核与用户处于2个不同的空间,2者之间原创 2014-02-26 15:06:35 · 554 阅读 · 0 评论 -
linux ------ 字符设备驱动框架
linux 字符设备驱动是3种类型中最简单的一种,其实就是实现 file_operations 中的函数,基本实现框架如下: 1, 需要包含的头文件: #include #include #include #include #include原创 2014-02-24 17:17:46 · 567 阅读 · 0 评论 -
linux ------ 中断处理及延时操作
linux 系统的中断分上半部与下半部2部分,上半部是硬件中断,会关闭中断,一般处理时间较短,处于中断上下文。下半部有Tasklet与工作队列2种,是中断处理的延时操作,如果中断需要处理较复杂的事务,一般会放到下半部来执行。Tasklet运行在中断上下文,不允许睡眠。工作队列运行在进程上下文,可以睡眠,意味着会引起进程的切换。 1. 一般的中断代码原创 2014-02-25 15:27:19 · 2133 阅读 · 0 评论 -
linux ------ V4L2 视频驱动简述
V4L2视频驱动主要涉及到以下几个知识点:摄像头方面的知识、Camera解码器、控制器、V4L2的API和数据结构、V4L2的驱动架构。 一. 视频驱动的整体框架 Video的基本框架图如下: 对驱动程序员来说,主要是关心camera驱动这部分代码的实现。 二. V4L2重要的数据结构原创 2014-03-10 14:37:48 · 1519 阅读 · 0 评论