摘要: 目的: 通过定时器防按键抖动,测试程序是使用上节的:阻塞操作的测试程序 http://www.cnblogs.com/lifexy/p/7522122.html 使用定时器的一般流程为: (1)timer、编写function; (2)为timer的expires、data、function赋值; 阅读全文
posted @ 2018-12-15 10:34 朱果果 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 引入 当设备被一个程序打开时,存在被另一个程序打开的可能,如果两个或多个程序同时对设备文件进行写操作,这就是说我们的设备资源同时被多个进程使用,对共享资源(硬件资源、和软件上的全局变量、静态变量等)的访问则很容易导致竞态。 显然这不是我们想要的,所以本节引入互斥的概念:实现同一时刻,只能一个应用程序 阅读全文
posted @ 2018-12-13 14:33 朱果果 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 引入: 按键驱动方式对比 以上3种,都是让应用程序主动去读,本节我们学习异步通知,它的作用就是当驱动层有数据时,主动告诉应用程序,然后应用程序再来读, 这样,应用程序就可以干其它的事情,不必一直读 比如:kill -9 pid ,其实就是通过发信号杀死进程,kill发数据9给指定id号进程 进程间发 阅读全文
posted @ 2018-12-12 18:37 朱果果 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 1.poll情景描述 以之前的按键驱动为例进行说明,用阻塞的方式打开按键驱动文件/dev/buttons,应用程序使用read()函数来读取按键的键值。 这样做的效果是:如果有按键按下了,调用该read()函数的进程,就成功读取到数据,应用程序得到继续执行;倘若没有按键按下,则要一直处于休眠状态,等 阅读全文
posted @ 2018-12-12 14:56 朱果果 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 阻塞和非阻塞,同步和异步 例子 故事:老王烧开水。 出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。 老王想了想,有好几种等待方式 1.老王用水壶煮水,并且站在那里,不管水开没开,每隔一定时间看看水开了没。-同步阻塞 老王想了想,这种方法不够聪明。 2.老王还是用水壶煮水,不 阅读全文
posted @ 2018-12-12 08:29 朱果果 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 硬件相关配置: 先看测试程序中的main函数(thirdtest.c) (所有的操作都是以open函数来开始,它用来获取fd,然后后期的其他操作全部控制fd来完成对硬件设备的实际操作) 应用程序打开设备,调用系统调用open时,操作系统会将文件系统对应设备文件的inode中的file_operati 阅读全文
posted @ 2018-12-11 20:50 朱果果 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 一、中断处理体系结构的初始化 Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断;每个数组项对应一个中断,也可能是一组中断,它们共用相同的中断号,里面记录了中断的名称、中断状态、中断标记(比如中断类型、是否共享中断等),并提供了中断的低层硬件访问函数(清除、屏蔽、使能 阅读全文
posted @ 2018-12-10 16:18 朱果果 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 一、中断处理体系结构的初始化 Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断;每个数组项对应一个中断,也可能是一组中断,它们共用相同的中断号,里面记录了中断的名称、中断状态、中断标记(比如中断类型、是否共享中断等),并提供了中断的低层硬件访问函数(清除、屏蔽、使能 阅读全文
posted @ 2018-12-10 16:15 朱果果 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 裸机中断流程 Linux处理异常流程 异常发生时,会去异常向量表找到入口地址,(这算异常发生之后跳转到第一个处理分支),进入异常模式,保护部分现场,强制进入SVC管理模式,根据异常发生前的工作模式,找到异常处理的第二级分支,在该模式下面接过异常模式堆栈中的信息,接着保存异常发生时异常模式还未保存的信 阅读全文
posted @ 2018-12-10 14:09 朱果果 阅读(410) 评论(0) 推荐(0) 编辑
摘要: __init、__initdata和__exit、__exitdata的定义位于<kernel/include/linux/init.h> 这些宏大多跟和section相关的定义 这些宏定义的作用是告诉编译器将这些函数或者数据放入相应的section中,一般是指放置到内核镜像的哪个位置上。内核中的内 阅读全文
posted @ 2018-12-09 09:58 朱果果 阅读(2244) 评论(0) 推荐(0) 编辑