
linux 设备驱动模型
sadamoo
这个作者很懒,什么都没留下…
展开
-
基本的数据结构学习笔记:kref
本文简单介绍了设备驱动模型中最最简单的一个数据结构:kref,它作为内核中最基本的引用计数而存在。首先直观地介绍该数据结构及操作它的一些方法,然后再介绍其具体的用法。参考:kref.h kref.c kref.txt一、kref及操作kref的方法struct kref { atomic_t refcount;};可以看到kref结构体的成员只有一个原子变量refcou转载 2012-09-05 15:57:24 · 559 阅读 · 0 评论 -
Android camera子系统HAL层介绍集锦
版权声明:本文为博主原创文章,未经博主允许不得转载。Android官网上对camera子系统HAL层进行了详细的介绍,其官方网址如下:https://source.android.com/devices/camera/index.html在这个网址上,android官方从九个方面对camera子系统HAL的接口做了详细描述。对这些网址的内容,我做了系统的翻译,希望对大家能有所帮转载 2015-12-21 10:59:45 · 1067 阅读 · 0 评论 -
select、poll、epoll的比较
http://my.chinaunix.net/space.php?uid=20196318&do=blog&id=366042http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/ linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、转载 2014-08-06 21:00:20 · 671 阅读 · 0 评论 -
proc文件系统详解
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。转载 2014-07-22 14:43:37 · 707 阅读 · 0 评论 -
Linux设备驱动程序学习(3)-并发和竞态
今天进入《Linux设备驱动程序(第3版)》第五章并发和竞态的学习。对并发的管理是操作系统编程中核心的问题之一。 并发产生竞态,竞态导致共享数据的非法访问。因为竞态是一种极端低可能性的事件,因此程序员往往会忽视竞态。但是在计算机世界中,百万分之一的事件可能没几秒就会发生,而其结果是灾难性的。一、并发及其管理竞态通常是作为对资源的共享访问结果而产生的。在设计自己的转载 2012-09-07 17:08:18 · 633 阅读 · 0 评论 -
sysfs文件系统学习
为了更好地了解kobject的层次关系,有必要了解一下这种层次关系的表现机制:sysfs。本文简单地学习了一下sysfs,大部分内容来自内核文档sysfs.txt。好了,开始我们的学习之旅,呵呵。 何为sysfs sysfs是一种基于ram的文件系统,它提供了一种用于向用户空间展现内核空间里的对象、属性和链接。sysfs与kobject层次紧密相连,它将kobject转载 2012-09-05 14:53:02 · 491 阅读 · 0 评论 -
Linux设备驱动模型之上层容器
记得刚工作的时候,当时为了查证一个I2C的问题,硬着头皮跟了一下Linux下i2c总线的驱动代码,两个字:吐血。主要是跟着跟着就跟到了Linux设备驱动模型的核心里去了,这里面数据结构复杂,函数调用的关系跟着跟着就不知道哪对哪了。归根结底,没仔细阅读过Linux设备驱动模型的核心代码,我想只要理解了这部分内容,上层的一些总线驱动比如i2c、spi、platform等等都将会变得简单。于是,狠下心来转载 2012-09-05 11:47:23 · 563 阅读 · 0 评论 -
Linux设备驱动模型之底层数据结构
本文简单介绍构成Linux设备驱动模型的最底层的数据结构:kobject、kset和kobj_type等等。kobject是组成设备模型的基本结构,在sysfs中显示的每一个对象,都对应着一个kobject,而kset是一组具有某种相似性的kobject的合集。每个kobject都需要一个相应的kobj_type结构。 一、kobject 不多废话,首先看kobjec转载 2012-09-05 14:48:44 · 477 阅读 · 0 评论 -
device_register和驱动driver_register先后注册的影响和关系
开始我的博文之前,最近一天来的感受,我只想说一下,Linux的世界,玩在表面是轻松的,但是玩在内部那就是找死。佩服那些写源码的人。真的佩服。 这段世界大概半个月了,开始linux驱动的真正开发,也是从基层开始看的。相比以为linux下的驱动就是点灯之类的Led来说,现在我的感受就是,那些完全就是表面的东西。核心层次的驱动,完全不是这么随随便便写出来的。也正好说明现在很多公司正在写转载 2012-09-05 19:27:26 · 4172 阅读 · 0 评论 -
个人对kobject的一点研究
kobject,kset,子系统层次结构内核通常用kobject 结构将各个对象连接起来组成一个分层的结构体系。 parent 是指向另外一个kobject 结构(分层结构中上一层的节点)的指针,主要用途是在 sysfs 层次中定位对象. 一个 kset 是嵌入到相同类型结构的 kobject 的集合。但 struct kobj_type 关注的是对象的类型,而struct k转载 2011-02-11 11:26:00 · 999 阅读 · 0 评论 -
Linux设备驱动模型学习之基础篇--Kobject.txt翻译
----------------------------------------------------------------------------------------------------------------------------------------------------------本帖翻译了Linux2.6.29的Kobject.txt文档,由于英文水平不好,所以很多转载 2012-09-05 15:55:43 · 647 阅读 · 0 评论 -
Linux设备驱动模型学习之基础中的基础篇
该帖中所包含的都是在阅读内核代码时需要了解的一些基本概念,后续还会不断增加的,欢迎大家批评指正,谢谢。 1、 typeoftypeof并非ISO C的关键字,而是gcc对C的一个扩展。typeof是一个关键字(类似sizeof),用于获取一个表达式的类型。举个简单的例子:char tt;typeof(tt) cc;则typeof(tt)等价于char,即相当于声明了c转载 2012-09-05 15:48:01 · 399 阅读 · 0 评论 -
android camera HAL v3.0概述
Android的camera硬件抽象层(HAL)将更高层次的android.hardware.Camera中的camera框架层API与底层的camera驱动和camera硬件模块连接了起来。Android最新版本介绍了camera栈的一个新的、底层的实现。如果你有一个以前开发的camera HAL模块,可以驱动android其他版本,那你将发现在camera流水线中发生了非常大的变化。由转载 2015-12-21 11:00:51 · 2069 阅读 · 0 评论