现在位置: 首页 > 技术文章 > 驱动开发 > 文章
2016年01月15日 驱动开发 ⁄ 共 655字 暂无评论 ⁄ 阅读 587 次
温习完linux设备模型,今天打算使用平台总线来操作一下LED,下面说一下实验步骤及现象: 包含的文件总共有四个,驱动相关的有3个: 1.led_dev.c 2.led_drv.c Makefile 测试用的应用程序有一个: led_test.c 下面开始编译代码: 平台总线测试 如上图所示,编译出驱动程序及测试程序,然后拷贝到开发板上去。 下面开始做实验: 1加载驱动程序: 加载驱动 上图可以看到,刚加载完设备之后什么也没有打印出来,加载完驱动程序之后打...
阅读全文
2016年01月13日 驱动开发 ⁄ 共 6169字 暂无评论 ⁄ 阅读 658 次
最近在温故Linux的总线设备驱动模型,下面分析一下bus_register的详细调用过程及行为目的: kobject,kset,ktype。这三个结构联合起来一起构成了整个设备模型的基石,请看下面两篇文章: 《设备模型之kobject,kset及其关系》 《设备模型之总线,驱动,设备》 devices_ket和driver_kset 上图说明了总线通过两个数据结构:devices_ket和driver_kset来管理注册在此总线上的所有的设备和驱动,为了方便遍历,linux增加了klist_devi...
阅读全文
2016年01月11日 驱动开发 ⁄ 共 1753字 暂无评论 ⁄ 阅读 654 次
Kobject,kset是设备模型的基本结构体,设备模型使用这两个结构体来完成设备的层次关系,但在实际的设备驱动编写中,我们基本上用不到kobject,kset这些结构体,是因为这些结构体又被嵌入到更大的结构体中,原因在于kobject,kset结构体只能表征设备的层次关系,但是一个设备的驱动,并不是简单的一个层次关系而已,因此,必需要把kobject,kset结构体嵌入到更大的结构体中,使用kobject,kset来表征层次关系,用其他的成员表示设...
阅读全文
2016年01月08日 驱动开发 ⁄ 共 1638字 暂无评论 ⁄ 阅读 507 次
Linux2.6以后的设备驱动,都是在设备模型的基础上构建的,因此,要编写linux下的设备驱动程序,不论是usb设备,pci设备等,都需要了解设备模型。 设备模型的基础结构体主要是kobject,kset这两个结构体: struct kobject { char * k_name; char name[KOBJ_NAME_LEN]; struct kref kref; struct list_head entry; struct kobject * parent; struct kset * kset; struct kobj_type * ktype; struct d...
阅读全文
2015年12月17日 驱动开发 ⁄ 共 1011字 暂无评论 ⁄ 阅读 531 次
前面的驱动程序无法应用到别人写的现成的应用程序上(比如QT),因为别人的应用程序肯定不会打开我们创建的设备文件(/dev/buttons),别人打开的也许是其他现成的设备,比如/dev/tty。设置别人什么都不打开,直接scanf就能获得按键的输入。 以前写的驱动程序只能我们自己用,或自己公司内部用(因为别人不知道怎么用)。 如果想通用,就需要把自己写的驱动程序融入到内核现有的驱动程序中,这个现成的驱动程序就是输入子系统。...
阅读全文
2015年12月13日 驱动开发 ⁄ 共 2029字 暂无评论 ⁄ 阅读 337 次
input子系统概述 输入设备(如按键,键盘,触摸屏,鼠标等)是典型的字符设备,其一般的工作机制是低层在按键,触摸等动作发生时产生一个中断(或驱动通过timer定时查询),然后cpu通过SPI,I2C或者外部存储器总线读取键值,坐标等数据,放一个缓冲区,字符设备驱动管理该缓冲区,而驱动的read()接口让用户可以读取键值,坐标等数据。 在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件...
阅读全文
2015年12月12日 驱动开发 ⁄ 共 1288字 暂无评论 ⁄ 阅读 601 次
上一篇文章 《Tiny4412 Linux驱动之按键(使用中断)》使用中断的方式写了按键检测驱动程序,但是有一个问题:有时候按下一次按键有可能输出两条信息的情况: 按键抖动 如上图所示,按下了一次,缺打印了两次,这是由按键抖动引起的。 按键消抖的原理 按键抖动示意图 我们平常所用的按键为机械弹性开关,由于触点的弹性作用,按键在闭合时不会马上稳定的接通,而是有一段时间的抖动,在断开时也不会立即断开。抖动时间由按键的...
阅读全文
2015年12月05日 驱动开发 ⁄ 共 781字 评论 2 条 ⁄ 阅读 524 次
接着上一个实验 《Tiny4412 Linux驱动之按键(使用查询方式)》 ,这一节使用中断的方式进行按键的检测,Linux下的中断体系结构前面也发了好几篇文章,写的都不错挺详细,大家可以看看,链接如下。 Linux内核异常处理体系结构详解(一) Linux内核异常处理体系结构详解(二) 下面开始今天的正文,使用中断的方式检测按键, 还是一共三个文件,1驱动相关:. keyIrq_drv.c  Makefile 2.测试程序 : key_test_irq.c 实验步骤: 驱...
阅读全文
2015年12月03日 驱动开发 ⁄ 共 713字 暂无评论 ⁄ 阅读 328 次
前几天在TIny4412开发板上做了LED点灯的Linux驱动,其实挺简单,GPIO驱动,今天再看一下按键的驱动,毕竟按键用的还是比较广泛的,本文使用查询的方式获取按键值,后面会有文章使用中断的方式进行操作,也算是为了对比一下这两种处理方式的效率。 按键检测的原理在前面裸机部分已经介绍的很详细了,《Tiny4412裸机程序,按键检测(轮询方式)》 ,忘了怎么操作的同学可以再查看一下。 还是一共三个文件,1驱动相关:. key_drv.c  ...
阅读全文

×