- 博客(11)
- 资源 (4)
- 收藏
- 关注
转载 linux设备模型之Kobject与Kset
以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式Linux的底层程序员来说,这部分内容是很重要的。以我学习的ARM9为例,有很多总线(如SPI、IIC、IIS等等)在Linux下已经被编写成了子系统,无需自己写驱动;而这些总线又不像PCI、USB等在《LDD3》上有教程,有时还要自己研究它的子系统构架,甚至要自己添
2015-08-14 23:43:41
448
转载 LINUX中的工作队列
工作队列一般用来做滞后的工作,比如在中断里面要做很多事,但是比较耗时,这时就可以把耗时的工作放到工作队列。说白了就是系统延时调度的一个自定义函数。 工作队列提供一个通用的办法将任务延迟到 bottom halves(底半部分)。 处于核心的是工作队列(结构体 workqueue_struct), 任务被安排到该结构体当中。 任务由结构体 work_struct 来说明, 用来鉴别哪
2015-03-03 16:21:43
419
转载 Hrtimer
高精度定时器Hrtimer工欲善其事必先利其器,在开始讲之前,我们先利一下器:相关的用到的几个源代码文件以及其路径如下:Hrtimers.txt (linux-3.2.12\documentation\timers)Hrtimer.c (linux-3.2.12\kernel)Hrtimer.h (linux-3.2.12\include\linux)单纯的在高
2015-01-16 19:32:52
1084
转载 kconfig
makefile menuconfig过程讲解当我们在执行make menuconfig这个命令时,系统到底帮我们做了哪些工作呢?这里面一共涉及到了一下几个文件我们来一一讲解Linux内核根目录下的scripts文件夹arch/$ARCH/Kconfig文件、各层目录下的Kconfig文件Linux内核根目录下的makefile文件、各层目录下的makefile文件Linu
2015-01-10 18:20:09
561
转载 register_chrdev和register_chrdev_region
使用register_chrdev注册字符设备注册字符设备可以使用register_chrdev函数。int register_chrdev (unsigned int major, const char *name, struct file_operations*fops); register_chrdev函数的major参数如果等于0,则表示采用系统动态分配的主设备号。
2015-01-07 15:20:37
1224
转载 class_register和class_create
linux中class_create和class_register说明1 class结构体介绍 内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…)函数来在/dev
2015-01-07 09:25:22
790
转载 device_create详解
开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上现在Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点。内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一
2015-01-06 22:02:11
2842
转载 device_create 转自华清
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用法如下:struct class *m
2015-01-06 16:36:06
474
转载 android 电容屏多点触控协议
多点触控协议为了发挥新近的多点触摸和多用户设备的强大功能,为多点触摸定义一种上报详细数据的方法(比如有多个物体直接接触到设备的表面),是非常有必要的。多点触摸协议(multi-touch,MT),是的内核驱动可以对多个随意数量的触控事件上报详细的数据信息。在Linxu内核中,手指信息被内核抽象为一个个ABS数据包,由驱动顺序的发送给应用。多点触摸的ABS数据包通常由ABS_MT标志。驱
2015-01-05 11:48:14
1268
转载 linux notifier chains机制
内核通知链介绍:在linux内核系统中,各个模块、子系统之间是相互独立的。Linux内核可以通过通知链机制来获取由其它模块或子系统产生的它感兴趣的某些事件。例如,可以通过通知链来获取某总线上的设备增加、删除情况,来动态添加和卸载dev文件设备。Linux内核中包含四种类型通知链:1. 原子通知链( Atomic notifier chains):通知链元素的回调函数(当事件发生时要执行
2015-01-04 10:27:28
545
转载 自旋锁&信号量&互斥锁
为什么需要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v加1原子操作比普通操作效率要低,因此必要时才使用,且不能与普通操作混合使用如果是单核处理
2014-12-30 10:18:05
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人