社区
Linux_Kernel
帖子详情
驱动多线程中频繁使用mdelay会对系统造成问题吗?
donny0923
2012-01-14 07:59:57
驱动中开一个线程一直在运转,然后每隔100us(使用udelay延时),就操作一次硬件,那么这个100us会受到应用层阻塞线程或者 其他阻塞的影响么?
...全文
263
3
打赏
收藏
驱动多线程中频繁使用mdelay会对系统造成问题吗?
驱动中开一个线程一直在运转,然后每隔100us(使用udelay延时),就操作一次硬件,那么这个100us会受到应用层阻塞线程或者 其他阻塞的影响么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
coding码场
2012-01-16
打赏
举报
回复
楼上两位都说得很不错!顶一下!
dongjiawei316
2012-01-15
打赏
举报
回复
udelay是忙等待,会一直占着你的CPU的,如果你循环每操作一次硬件就udelay一下,那么你其他应用程序几乎都不能跑了。。。。
建议msleep,虽然是ms级的。但是他不会一直占着你的CPU
deep_pro
2012-01-14
打赏
举报
回复
驱动开的是内核线程 跟普通进程一样是可以调度的
udelay是靠死循环实现的延迟,当你的内核线程没有占用cpu时,很可能超过1ms都不会执行你的程序
100us是小于进程可能的最小时间片的 (HZ=1000时,1ms才产生一个时钟中断,假设时间片为1个jiffes,1ms才可能发生进程切换,轮到你的内核线程)
所以这是靠不住的,会受到其他阻塞进程的影响
你需要使用内核高精度定时器 ,一般的内核定时器都不能达到us级
这种时间级别的操作,应该都有装用的硬件控制器来做
NXP i.MX RT1052 RT-Thread实战:消息队列
NXP i.MX RT1052 RT-Thread实战。 NXP i.MX RT1052
驱动
程序。 资源代码可直接编译、运行。
linux嵌入式系统开发之触摸屏---
驱动
篇(
中
/Linux输入子系统)
linux嵌入式系统开发之触摸屏---
驱动
篇(
中
/Linux输入子系统) 既然说到了linux输入子系统,那么为什么要用输入子系统呢?这得从面向对象的程序设计
中
说起,通过面向对象技术,极大地的提高了代码的可重用能力。重用的作用可以是很多linux hack们所迷恋,为啥?有了重用,就不用花费大量的精力去做一些相同或相近的事情(什么?吃饭,对,还就是吃饭,天天让小王吃一样东
驱动
开发面试复习
多个程序同时访问一个共享资源产生的
问题
就叫做竞争。竞争产生的根本原因就是 Linux 系统的并发访问竞争产生的原因如下所示:(1)
多线程
的并发访问(2)
中
断程序的并发访问(3)抢占式并发访问所谓并发,就是通过算法将 CPU 资源合理地分配给多个任务,当一个任务执行 I/O 操作时,CPU 可以转而执行其它的任务,等到 I/O 操作完成以后,或者新的任务遇到 I/O 操作时,CPU 再回到原来的任务继续执行。
<Linux开发>
驱动
开发 -之-内核定时器与
中
断
定时器是我们最常用到的功能,一般用来完成定时功能,熟悉一下 Linux 内核提供的定时器 API 函数,通过这些定时器 API 函数我们可以完成很多要求定时的应用。Linux内核也提供了短延时函数,比如微秒、纳秒、毫秒延时函数,本章我们就来学习一下这些和时间有关的功能。
中
断也是
频繁
使用
的功能,Linux 内核提供了完善的
中
断框架,我们只需要申请
中
断,然后注册
中
断处理函数即可,
使用
非常方便,不需要一系列复杂的寄存器配置。下面我们就来一一分析。
linux设备
驱动
作用
Linux设备
驱动
程序的作用 简介 设备
驱动
程序就像一个个的“黑盒子”,使某个特定硬件响应一个定义良好的内部编程接口,这些操作完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的
驱动
程序。将这些调用映射到作用于实际硬件的设备特有操作上,则是设备
驱动
程序的任务。 大多数编程可以分为两个部分: 机制:需要提供
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章