www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/01/18/12:16:33

From: Charles Sandmann <sandmann AT clio DOT rice DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: DMA and DJGPP
Date: Sat, 18 Jan 2003 10:59:47 CST
Organization: Rice University, Houston TX
Lines: 18
Message-ID: <3e298803.sandmann@clio.rice.edu>
References: <3E298416 DOT 3A565C4C AT worldnet DOT att DOT net>
NNTP-Posting-Host: clio.rice.edu
X-Trace: joe.rice.edu 1042909592 4797 128.42.105.3 (18 Jan 2003 17:06:32 GMT)
X-Complaints-To: abuse AT rice DOT edu
NNTP-Posting-Date: 18 Jan 2003 17:06:32 GMT
X-NewsEditor: ED-1.5.9
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

> I'm building a data aquisition board that uses a PLX PCI chip to
> communicate with the PCI bus. I need to set it up to use DMA to transfer
> the data. I how to do I find the address and set up the memory in DJGPP
> to get at the data?

This all depends on the environment, and how big a DMA buffer you need.

The typical way of handling this is using a 64K to 256K buffer and placing
it in the conventional memory memory area.  This memory is mapped 1:1 in
DOS - and Windows 9x does virtualization to make it look like it's 1:1.  
I'm not sure on WinNT/2K/XP how well it virtualizes this.

If you need a big DMA buffer (>256K) it depends on the environment.  Under
pure DOS and CWSDPMI there is example code available to examine the page 
tables and get the physical addresses of the memory:
http://clio.rice.edu/djgpp/cwsdma2.zip

There are also methods described in the FAQ to handle this, check it also.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019