14 _7300_di_dma_start, Description – ADLINK PCI-7300A User Manual
Page 85

C/C++ Libraries
73
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
PCI-7300A Bus mastering DMA is different from traditional PC
style DMA. Its description is as follows:
Bus Mastering DMA mode of PCI-7300A:
PCI bus mastering offers the highest possible speed available
on the PCI-7300A. When the function _7300_DI_DMA_Start is
executed, it will enable PCI bus master operation. This is con-
ceptually similar to DMA (Direct Memory Access) transfers in a
PC but is really PCI bus mastering. It does not use an 8237-
style DMA controller in the host computer and therefore it is not
blocked in 64K maximal groups. PCI-7300A bus mastering
works as follows:
1. To set up bus mastering, first do all normal PCI-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 PCI-7300A is plug in a bus
master slot, otherwise this function 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 PCI-7300A transfers are
always longwords, this is 2 million longwords (2^21).
3. After the input sampling is started, the input data is
stored in the FIFO of PCI controller. Each bus mastering