14 _7300_di_dma_start – ADLINK PCIe-7300A User Manual
Page 88
 
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