14 _7300_di_dma_start – ADLINK PCIe-7300A User Manual

Page 88

Advertising
background image

78

C/C++

Libraries

5.14 _7300_DI_DMA_Start

@ Description

The function will perform digital input by DMA data transfer.

It will take place in the background which will not stop until the N-th
input data is transferred or your program execute the
_7300_DI_DMA_Abort function to stop the process.

After executing this function, it is necessary to check the status of
the operation by using the function _7300_DI_DMA_Status. The
cPCI/PCI/PCIe-7300A bus mastering DMA is different from tradi-
tional PC style DMA. Its description is as follows:

Bus Mastering DMA mode of cPCI/PCI/PCIe-7300A:

PCI bus mastering offers the highest possible speed available
on the cPCI/PCI/PCIe-7300A. When the function
_7300_DI_DMA_Start is executed, it will enable PCI bus mas-
ter operation. This is conceptually similar to DMA (Direct Mem-
ory Access) transfers in a PC but is really PCI bus mastering. It
does not use an 8237-style DMA controller in the host com-
puter and therefore it is not blocked in 64K maximal groups.
cPCI/PCI/PCIe-7300A bus mastering works as follows:

1. To set up bus mastering, first do all normal cPCI/PCI/

PCIe-7300A initialization necessary to control the board
in status mode. This includes testing for the presence of
the PCI BIOS, determining the base addresses, slot
number, vendor and device ID's, I/O or memory, space
allocation, etc. Please make sure your cPCI/PCI/PCIe-
7300A is plug in a bus master slot, otherwise this func-
tion will not be workable.

2. Load the PCI controller with the count and 32-bit physi-

cal address of the start of previously allocated destina-
tion memory which will accept data. This count is the
number of bytes (not longwords!) transferred during the
bus master operation and can be a large number up to 8
million (2^23) bytes. Since the cPCI/PCI/PCIe-7300A

Advertising