导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[sz20120406]传统的驱动程序结构简介



No.58849
作者:sz20120406
邮件:383959053@qq.com
ID:130937
登陆:2次
文章数:69篇
最后登陆IP:111.222.53.176
最后登陆:2012/5/2 17:40:27
注册:2012/4/11 12:44:55
财富:101
发帖时间:2012/4/11 12:50:34
发贴者IP:183.14.0.223
标题:sz20120406:传统的驱动程序结构简介
摘要:No.58849传统的驱动程序结构简介 传统的驱动程序结构简介
Linux操作系统最基本的组成部分包括资源管理器、调度程序、介于硬件和应用软件之间的接口、网络管理器和文档系统管理器。本文主要阐述介于硬件和应用软件之间的接口——设备驱动程序的实现。
对于多数字符设备而言,其功能主要是数据的传输。驱动程序操作的一般流程是:当read()函数被系统调用时,首先对中断寄存器进行配置,并开中断,并进入中断等待函数。此时系统会调用schedule()函数,进行其他进程的执行。一旦有中断的产生,则根据中断寄存器判断是否为设备的读寄存器中断,即是否有数据到达。若是,则将该数据从寄存器所在的地址读入,并送至相应的内存。
 传统驱动程序结构存在的问题
当设备的数据量足够大时,中断将会十分的频繁,而中断服务程序将会被反复的调用,这会使得系统长时间的处于核心态中,而无法相应其他进程的请求,且极大地增加了CPU 的负担。这在高速率、大吞吐量数据传输的应用中,是无法容忍的。
因此,我们不得不考虑针对现有的驱动程序的数据传输程序结构进行改进,以适应高速率的数据传输的需要。
2 Linux高速设备驱动的实现
采用DMA方式的驱动程序
首先使用DMA 的数据传输方式对原有的结构进行改进。
DMA(direct memory access)是直接存储器访问的意思,它可以让I/O设备上的数据直接与系统 ......

>>返回讨论的主题


  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:8750毫秒 查询6次