当前位置: 技术问答>linux和unix
linux kernel module中,怎样进行dma转送
来源: 互联网 发布时间:2016-09-12
本文导语: linux kernel module中,怎样支持dma的设备寄存器中数据通过dma转送到kernel内存? 能否给个例子或者步骤? | 分两种情况: 一、软件对数据的请求: 1、当进程调用read,驱动程序函数分配一个DMA缓冲区,并...
linux kernel module中,怎样支持dma的设备寄存器中数据通过dma转送到kernel内存?
能否给个例子或者步骤?
能否给个例子或者步骤?
|
分两种情况:
一、软件对数据的请求:
1、当进程调用read,驱动程序函数分配一个DMA缓冲区,并让硬件将数据传输到这个缓冲区中。进程处于睡眠状态。
2、硬件将数据写到DMA缓冲区,写入完毕后,产生一个中断。
3、中断处理程序获得输入的数据,应答中断,并唤醒进程。此时,进程可以读取数据。
一、软件对数据的请求:
1、当进程调用read,驱动程序函数分配一个DMA缓冲区,并让硬件将数据传输到这个缓冲区中。进程处于睡眠状态。
2、硬件将数据写到DMA缓冲区,写入完毕后,产生一个中断。
3、中断处理程序获得输入的数据,应答中断,并唤醒进程。此时,进程可以读取数据。