Pio_getconfigaddressspace, 2 pio_getconfigaddressspace – Omega OME-PIO-D144 User Manual

Page 26

Advertising
background image

3.1.2 PIO_GetConfigAddressSpace


PIO_GetConfigAddressSpace(wBoardNo,*wBase,*wIrq, *wSubVendor,

*wSubDevice, *wSubAux,*wSlotBus,*wSlotDevice)

• wBoardNo=0 to N Æ totally N+1 boards found by PIO_DriveInit(...)
• wBase Æ base address of the board control word
• wIrq Æ allocated IRQ channel number of this board
• wSubVendor Æ subVendor ID of this board
• wSubDevice Æ subDevice ID of this board
• wSubAux Æ subAux ID of this board
• wSlotBus Æ hardware slot ID1 of this board
• wSlotDevice Æ hardware slot ID2 of this board


The user can use this function to save resource of all OME-PIO/PISO cards

installed in this system. Then the application program can control all functions of
OME-PIO/PISO series card directly.

Find the configure address space of OME-PIO-D144


/* Step1: Detect all OME-PIO-D144 cards first */
wSubVendor=0x80; wSubDevice=0x01; wSubAux=0x00;

/* for OME-PIO-D144 */

wRetVal=PIO_DriverInit(&wBoards, wSubVendor,wSubDevice,wSubAux);
printf("Threr are %d OME-PIO-D144 Cards in this PC\n",wBoards);

/* Step2: Save resource of all OME-PIO-D144 cards installed in this PC */
for (i=0; i<wBoards; i++)
{
PIO_GetConfigAddressSpace(i,&wBase,&wIrq,&t1,&t2,&t3,&t4,&t5);
printf("\nCard_%d: wBase=%x, wIrq=%x", i,wBase,wIrq);
wConfigSpace[i][0]=wBaseAddress;

/* save all resource of this card */

wConfigSpace[i][1]=wIrq;

/* save all resource of this card */

}

/* Step3: Control the OME-PIO-D144 directly */
wBase=wConfigSpace[0][0]; /* get base address the card_0 */
outp(wBase,1); /* enable all D/I/O operation of card_0 */

wBase=wConfigSpace[1][0]; /* get base address the card_1 */
outp(wBase,1); /* enable all D/I/O operation of card_1 */







OME-PIO-D144 User’s Manual (Ver.2.1, Sep/2001)

---- 24

Advertising