Linux中断和时间管理
crystal_266
这个作者很懒,什么都没留下…
展开
-
07-Linux高分辨率定时器
文章目录1. 高分辨率定时器的定义2. 高分辨率定时器的相关函数2.1 设置超时时间2.1 高分辨率定时器的初始化2.3 回调函数2.4 定时器的开启2.5 定时器定时时间的修改2.6 关闭定时器2.7 高分辨率定时器的使用流程3. 示例代码3.1 demo.c3.2 test.c3.3 Makefile3.4 测试结果 上一节讲了Linux 中的低分辨率定时器,因为低分辨率定时器以 jiffi...原创 2019-11-07 16:37:43 · 1139 阅读 · 1 评论 -
06-Linux 低分辨率定时器
文章目录1. 低分辨率定时器对象的结构类型2. 低分辨率定时器操作相关函数2.1 初始化定时器2.2 将定时器添加到内核中的定时器链表中2.3 修改定时器expires成员的值2.4 删除定时器2.5 使用低分辨率定时器的操作步骤3. 示例代码3.1 demo.c3.2 test.c3.3 Makefile3.4 测试结果1. 低分辨率定时器对象的结构类型 上一节讲了Linux系统中的时钟节...原创 2019-11-07 16:17:47 · 1016 阅读 · 1 评论 -
05-Linux硬件定时 jiffies
文章目录1. 硬件时钟源的介绍和配置2. jiffies 本文内容参考正点原子《嵌入式 Linux驱动开发指南》一书,《嵌入式 Linux驱动开发指南》1. 硬件时钟源的介绍和配置在Linux中硬件定时器提供时钟源,时钟源的可以在内核源码目录下,执行 make menuconfig 进行配置,配置界面如下图所示: 从上图可以看出,硬件时钟源一共可以选择100Hz、250Hz、300Hz和...转载 2019-11-07 15:53:48 · 1228 阅读 · 1 评论 -
04-Linux中的延时操作函数
文章目录1 延时函数2 休眠延时函数1 延时函数 在硬件操作中经常会用到延时,内核提供了一组延时操作函数#define mdelay(n) udelay((n) * 1000) // ms级延时void udelay(unsigned long usecs) // us级延时void ndelay(unsigned long nsecs) // ns级延时 这些延时函数都是忙等待...原创 2019-11-07 15:31:21 · 1180 阅读 · 0 评论 -
03-中断的下半部 workqueue
文章目录1. 内核中的工作队列1.1 静态定义一个工作队列节点1.2 静态定义一个延时的工作队列节点1.3 动态分配工作队列节点1.4 将工作队列加入到内核定义的全局工作队列中2 示例代码2.1 demo.c2.2 test.c2.3 Makefile 上个示例讲的软中断不管是软中断还是 tasklet 都有一个限制,就是在中断的上下文不能直接或者间接的调用调度器,为了解决这个问题,内核中又提供...原创 2019-11-07 09:19:20 · 626 阅读 · 0 评论 -
02-中断下半部 tasklet
文章目录1. 中断的上下部2. 软中断3. tasklet4. 示例代码4.1 demo.c4.2 test.c4.3 Makefile1. 中断的上下部 在上个例程提到,中断处理函数应该尽快完成,否则会影响对其他中断的及时响应,影响系统的性能。但有时候这些耗时的操作又避免不了,比如电容触摸屏通过中断通知 SOC 有触摸事件发生,SOC 响应中断,然后通过 IIC 接口读取触摸坐标值并将其上报...原创 2019-11-06 17:32:30 · 760 阅读 · 1 评论 -
01-驱动中的中断处理
文章目录1. 驱动中定义的中断处理相关的API1.1 注册中断函数1.2 中断处理函数1.3 注销中断的函数1.4 使能及禁止使能相关函数2. 示例代码2.1 demo.c2.2 test.c2.3 Makefile1. 驱动中定义的中断处理相关的API1.1 注册中断函数 驱动中注册中断处理函数的原型如下:原 型: static inline int __must_check re...原创 2019-11-06 17:21:29 · 1252 阅读 · 1 评论