收录日期:2018/05/22 09:21:40 时间:2016/05/20 18:27:28 标签:驱动开发/核心开发
在操作系统中,我们都知道,数据传送控制方式有四种:
1)程序直接控制方式
就是由用户进程来直接控制内存或CPU和外围设备之间的信息传送
2)中断方式
是为了减少程序直接控制方式中CPU等待时间以及提高系统的并行工作程度,采用中断方式来控制外围设备和内存与CPU之间的数据传送
3)DMA方式
DMA方式是在要求转送的数据块全部传送结束时要求CPU进行中断处理
4)通道控制方式
数据的传送方向,存放数据的内存始址以及传送的数据址长度等都由专管输入输出的硬件——通道来控制。

而我在很多驱动程序的书中,只看到程序控制方式和DMA方式。

我的问题是:
是否驱动程序中就只有这两种传输方式?其它两种传输方式都可以并入到DMA方式中去?

比如 我现在正在给一个PCI9054写一个驱动程序,该板子是采用一般中断控制方式的(即上面的第二种传输方式)。请问是否可以采用所有驱动程序书中所介绍的DMA方式,还是必须写一个一般中断控制方式的驱动程序?

请高手指教!


应该是四种常用的:(还有一些特殊的)
中断方式与通道方式是不可少的,但在家用PC中通道技术(方式)与DMA技术(方式)有一些类同,不同的是通道方式一般不占有总线是在CPU管理下的数据传送

是否用DMA或其它主要看你的应用对象如果你对数据传送的量大且有速度要求则可以用DMA
"是否驱动程序中就只有这两种传输方式?其它两种传输方式都可以并入到DMA方式中去?"
不同意!
四种方式中用哪一种,视情况而定,没有谁包含谁的说法
DMA方式时直接内存访问,因此不占用CPU资源,一般适用于外围低速设备和内存之间的数据传输,数据传输时是以块形式传输。
大家说了这么多,可是我在各种开发驱动的书中只看到程控方式和DMA方式。
而该硬件是中断控制传输方式。我不知道怎么写驱动?各位能不能给点提示?
看看windows 设备驱动程序(VXD与WDM)开发实务,可能有帮助。好像这本书中也是讲的DMA ,在这方面我跟你一样 也不是很了解
惨的是我的板子并没有实用DMA传输方式啊:(
楼上说的是什么板子呀,PC机板上会没有----难道你用的是工控机的母板