Ar-b5890 user manual – Acrosser AR-B5890 User Manual
Page 17
AR-B5890 User Manual
17
// Get Simple I/O Base Address
outportb(IO_PORT_BASE,0x62);
// Simple I/O Base address MSB
SIMPLE_IO_BASE=inportb(IO_PORT_BASE);
SIMPLE_IO_BASE=SIMPLE_IO_BASE<<8;
outportb(IO_PORT_BASE,0x63);
// Simple I/O Base address LSB
SIMPLE_IO_BASE=SIMPLE_IO_BASE|inportb(IO_PORT_BASE);
// Show Got Parameter Informat
textcolor(LIGHTGRAY);
gotoxy(18,5);
cprintf("%s",Model_Name);
gotoxy(18,6);
cprintf("%X",IO_PORT_BASE);
gotoxy(22,7);
cprintf("%X",SIMPLE_IO_BASE);
// Set GPIO30~33 to Output, GPIO34~GPIO37 to Input
outportb(IO_PORT_BASE,0xCA);
outportb(IO_PORT_BASE+1,0x0F);
// bit=1 , output
// Set GPIO30~33 to High
outportb(SIMPLE_IO_BASE+2,0x0F);
// Read GPIO34~37 Status, if not High error.
data=inportb(SIMPLE_IO_BASE+2)&0xF0;
if(data!=0xF0)
result=1;
// Set GPIO30~33 to Low
outportb(SIMPLE_IO_BASE+2,0x00);
// Read GPIO34~37 Status, if not Low error.
data=inportb(SIMPLE_IO_BASE+2)&0xF0;
if(data!=0x00)
result=1;
// Set GPIO30~33 to Input, GPIO34~GPIO37 to Output
outportb(IO_PORT_BASE,0xCA);
outportb(IO_PORT_BASE+1,0xF0);
// bit=1 , output
// Set GPIO34~37 to High
outportb(SIMPLE_IO_BASE+2,0xF0);
// Read GPIO30~33 Status, if not High error.
data=inportb(SIMPLE_IO_BASE+2)&0x0F;
if(data!=0x0F)
result=1;
// Set GPIO34~37 to Low
outportb(SIMPLE_IO_BASE+2,0x00);
// Read GPIO30~33 Status, if not Low error.
data=inportb(SIMPLE_IO_BASE+2)&0x0F;
if(data!=0x00)
result=1;
// Exit ITE8712F Config
outportb(IO_PORT_BASE,0x02);
outportb(IO_PORT_BASE+1,0x02);
if(result)
Show_Fail();
else
Show_Pass();
return result;
}
void Show_Help()
{
clrscr();
printf("GPIO Test utility for ITE8712F\n\n");
printf("Vcc GND \n");
printf("GP30
迋迋迋迋
?
GP34\n");
printf("GP31
迋迋迋迋
?
GP35\n");
printf("GP32
迋迋迋迋
?
GP36\n");
printf("GP33
迋迋迋迋
?
GP37\n");
}
//===========================================================================
// Function
: Show_Fail()
//
Input :
-