- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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, TigerLink Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page