
Linux驱动
阳光天蓝色
喜欢钻研电子技术,比如自动化和机器人
展开
-
linux 等待队列
1、为什么要使用等待队列?等待队列就是阻塞型字符设备驱动的必需品。阻塞型就是说某个设备可读或者可写,但是呢,某个时候这个设备没有东西给你读,但你的应用程序(进程)操作却要向设备去读取数据,那没办法,要么就出错,要么就阻塞着在那里等着要读取数据。一旦设备有东西可以给你读了,进程就可以继续进行读操作了。2、定义并初始化等待队列。 (1) 定义"等待队列头"转载 2013-12-30 21:28:01 · 665 阅读 · 0 评论 -
Linux下ARM寄存器映射定义
在Linux系统下,不能直接通过使用寄存器的名称来操作寄存器,但是可以建立自定义寄存器和实际地址的映射关系,操作方法如下:1、定义寄存器名称:volatile unsigned long *gpfcon; //定义GPF控制寄存器volatile unsigned long *gpfdat; //定义GPF数据寄存器2、建立寄存器和实际地址的对应关系:gpfcon = (vola原创 2014-01-10 19:14:59 · 1424 阅读 · 0 评论 -
Linux驱动-注册和卸载设备函数
1、注册设备 执行“insmod EmbedSky_buttons.ko”命令时就会调用这个函数#define DEVICE_NAME "Button_IRQ" /* 加载模式后,执行”cat /proc/devices”命令看到的设备名称 */#define BUTTON_MAJOR 232 /* 主设备号 */int ret;static struct class *butt原创 2014-01-13 15:13:03 · 1037 阅读 · 0 评论 -
Linux输入子系统分析(一)
输入子系统由驱动层、输入子系统核心、事件处理层三部分组成。一个输入事件,如鼠标移动、键盘按下等通过Driver->Inputcore->Event handler->userspace的顺序到达用户控件的应用程序。 驱动层:将底层的硬件输入转化为统一事件形式,想输入核心(Input Core)汇报。 输入子系统核心:承上启下。为转载 2014-03-03 19:50:30 · 993 阅读 · 0 评论 -
Linux输入子系统分析(二)
首先说明一下,本文是基于Linux-2.6.38版本内核来分析Linux输入子系统架构和原理的。这阵子本来没有打算花时间来分析Linux input system的,然而当在研究S3C6410触摸屏驱动的时候悲剧不期而至,内核中并没有实现6410的触摸屏驱动,不过有关于S3C2410触摸屏的驱动,往s3c2410_ts.c文件里面一看,居然实现过程中用到了输入子系统这一神马机制。瞄了下代码,流程基转载 2014-03-03 20:08:26 · 896 阅读 · 0 评论 -
虚拟视频驱动程序vivi.c源码分析
虚拟视频驱动程序vivi.c源码分析以下先把上一篇文章中的最后一段,放在这里利于程序源码的分析:vivi.c 虚拟视频驱动程序----- 此代码模拟一个真正的视频设备V4L2 API (位于drivers/media/video目录下)入口:+int __init vivi_init(void) + vivi_create_instance(i) /转载 2014-07-14 20:08:23 · 738 阅读 · 0 评论