Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

DeviceIOControl - DMA - Interrupt issues

Hi,

Here is the logic flow:

1. GUI program sends DeviceIoControl command setup to driver:

setup DMA descriptors

2. GUI program sends DeviceIoControl command Start to driver:

call the routine of start DMA Read and write (with parameter of# of loops)

3. ISR routine receives interrupts

Checks# of loops, if not, zero, call the same of above routine to restart DMA R/W.

It works only if put a debug line before start DMA:

KdPrintf("."); //if this line is commented, no interrupts will be received.

StartDMA();

Anyone has any suggestions what is wrong?

Thanks,

Tiger

1 Reply

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    There are two problems: One it needs synchronization, and the other is to check the interrupt status registers, because the interrupt is shared by both read and write. That fixes the problem.