| delorie.com/archives/browse.cgi | search |
| 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.
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |