?? regcheck.c
字號:
cmd61[0x34].active =1;
strcpy(cmd61[0x40].name,"HcISTL0BufferPort ");
cmd61[0x40].code =0x40;
cmd61[0x40].init =0x0000;
cmd61[0x40].length =16;
cmd61[0x40].active =1;
strcpy(cmd61[0x42].name,"HcISTL1BufferPort ");
cmd61[0x42].code =0x42;
cmd61[0x42].init =0x0000;
cmd61[0x42].length =16;
cmd61[0x42].active =1;
strcpy(cmd61[0x43].name,"HcINTLBufferPort ");
cmd61[0x43].code =0x43;
cmd61[0x43].init =0x0000;
cmd61[0x43].length =16;
cmd61[0x43].active =0;
strcpy(cmd61[0x45].name,"HcDirectAddress ");
cmd61[0x45].code =0x45;
cmd61[0x45].init =0x0000;
cmd61[0x45].length =16;
cmd61[0x45].active =1;
strcpy(cmd61[0x47].name,"HcPTLToggleRate ");
cmd61[0x47].code =0x47;
cmd61[0x47].init =0x0000;
cmd61[0x47].length =16;
cmd61[0x47].active =1;
strcpy(cmd61[0x51].name,"HcATLPTDDoneThrsCnt");
cmd61[0x51].code =0x51;
cmd61[0x51].init =0x0000;
cmd61[0x51].length =16;
cmd61[0x51].active =1;
strcpy(cmd61[0x52].name,"HcATLPTDDoneThrsTO ");
cmd61[0x52].code =0x52;
cmd61[0x52].init =0x0000;
cmd61[0x52].length =16;
cmd61[0x52].active =1;
strcpy(cmd61[0x53].name,"HcINTLBlkSize ");
cmd61[0x53].code =0x53;
cmd61[0x53].init =0x0000;
cmd61[0x53].length =16;
cmd61[0x53].active =1;
strcpy(cmd61[0x62].name,"OTGControl ");
cmd61[0x62].code =0x62;
cmd61[0x62].init =0x01C0;
cmd61[0x62].length =16;
cmd61[0x62].active =1;
strcpy(cmd61[0x67].name,"OTGStatus ");
cmd61[0x67].code =0x67;
cmd61[0x67].init =0x0001;
cmd61[0x67].length =16;
cmd61[0x67].active =1;
strcpy(cmd61[0x68].name,"OTGInterrupt ");
cmd61[0x68].code =0x68;
cmd61[0x68].init =0x0000;
cmd61[0x68].length =16;
cmd61[0x68].active =1;
strcpy(cmd61[0x69].name,"OTGInterruptEnable ");
cmd61[0x69].code =0x69;
cmd61[0x69].init =0x0000;
cmd61[0x69].length =16;
cmd61[0x69].active =1;
strcpy(cmd61[0x6A].name,"OTGTimerControl ");
cmd61[0x6A].code =0x6A;
cmd61[0x6A].init =0x0000;
cmd61[0x6A].length =32;
cmd61[0x6A].active =1;
}
void read_registers(void)
{
unsigned int test_cnt;
unsigned int no_of_test;
long reg_data;
long *r_ptr;
char status_buffer[60];
unsigned int l_space=8;
cleardevice();
sprintf(status_buffer,"ISP1362 HC Register Test");
outtextxy(10,10,status_buffer);
sprintf(status_buffer,"========================");
outtextxy(10,20,status_buffer);
test_cnt=0;
no_of_test=0;
do
{
if(cmd61[test_cnt].active==1)
{
no_of_test++;
if(cmd61[test_cnt].length==16)
{
reg_data=r16(test_cnt);
reg_data&=0x0000FFFF;
}
if(cmd61[test_cnt].length==32)
{
reg_data=r32(test_cnt);
}
if(reg_data!=cmd61[test_cnt].init) {setcolor(RED);}
sprintf(status_buffer,"0x%02X %s [%2d]=>%8lX, default=>%8lX",test_cnt,cmd61[test_cnt].name,cmd61[test_cnt].length,reg_data,cmd61[test_cnt].init);
outtextxy(10,20+no_of_test*l_space,status_buffer);
setcolor(YELLOW);
}
test_cnt++;
}
while(test_cnt<0xFF);
fflush(stdin);
sprintf(status_buffer,"Press any key to go back to main menu");
outtextxy(10,420,status_buffer);
sprintf(status_buffer,"=====================================");
outtextxy(10,430,status_buffer);
getch();
}
void wr_reg(void)
{
unsigned int test_cnt;
unsigned int no_of_test;
unsigned long *r_ptr;
unsigned long rs;
long reg_data;
char sb[60];
int last_row;
int user_in;
long error,p_error;
long ref;
int reg_port;
unsigned char key_in;
int l_space=8;
cleardevice();
r_ptr=&rs;
sprintf(sb,"ISP1362 HC Register Test");
outtextxy(10,10,sb);
sprintf(sb,"========================");
outtextxy(10,20,sb);
test_cnt=0;
no_of_test=0;
do
{
if(cmd61[test_cnt].active==1)
{
no_of_test++;
sprintf(sb,"0x%02X %s, default=>%8lX",test_cnt,cmd61[test_cnt].name,cmd61[test_cnt].init);
outtextxy(10,20+l_space*no_of_test,sb);
}
test_cnt++;
}
while(test_cnt<0xFF);
gotoxy(50,4);
printf("Register to test? (Hex)");
gotoxy(50,5);
scanf("%2x",®_port);
error=0;
p_error=0;
test_cnt=0;
fubar(1,0,10);
do
{
p_error=error;
gotoxy(50,5);
if(cmd61[reg_port].length==16)
{
printf("Writing 16bit %8lX to 0x%2X",(long)test_cnt,reg_port);
w16(reg_port,test_cnt);
reg_data=r16(reg_port);
reg_data&=0x0000FFFF;
fubar(0,test_cnt,0xFFFF);
if(reg_data!=test_cnt)
{
gotoxy(50,6);
printf("Reading %8lX",reg_data);
gotoxy(50,7);
printf("Error = %8X",error);
error++;
}
}
if(cmd61[reg_port].length==32)
{
ref=test_cnt+0x5A5A0000+(((long)test_cnt)<<16);
printf("Writing 32bit %8lX to 0x%2X",ref,reg_port);
fubar(0,test_cnt,0xFFFF);
w32(reg_port, ref);
reg_data=r32(reg_port);
if(reg_data!=ref) {error++; }
}
gotoxy(50,6);
printf("Reading %8lX",reg_data);
gotoxy(50,7);
printf("Error = %8X",error);
gotoxy(50,9);
printf("Press '1' to stop",error);
key_in=read_key(0);
if(p_error!=error) {key_in=getch();}
test_cnt++;
}
while((test_cnt!=0)&(key_in!='1'));
gotoxy(50,6);
printf("Reading %8lX",reg_data);
gotoxy(50,7);
printf("Error = %8X",error);
fflush(stdin);
getch();
}
void wr_auto(char *logfile)
{
unsigned int cnt;
unsigned int no_of_test;
unsigned long rs;
long reg_data;
int user_in;
long error,p_error;
long ref;
int reg_port;
unsigned char key_in;
unsigned char buf[200];
sprintf(buf,"\nISP1362 HC Register Test");
strcpy(logfile,buf);
sprintf(buf,"\n========================");
strcat(logfile,buf);
//Test HcScratch
printf("\nTesting HcScratch Register...");
sprintf(buf,"\nTesting HcScratch Register...");
strcat(logfile,buf);
cnt=0;
error=0;
do
{
w16(HcScratch,cnt);
if((r16(HcScratch))!=cnt)
{
error++;
}
cnt++;
}
while(cnt<0xFFFF);
sprintf(buf,", Total error = %8lX",error);
strcat(logfile,buf);
//Test HcDirectAddrLen
printf("\nTesting HcDirectAddrLen Register...");
sprintf(buf,"\nTesting HcDirectAddrLen Register...");
strcat(logfile,buf);
reg_data=0;
error=0;
do
{
w32(HcDirAddrLen,reg_data);
if((r16(HcDirAddrLen))!=reg_data)
{
error++;
}
reg_data++;
}
while(reg_data<0xFFFF);
sprintf(buf,", Total error = %8lX",error);
strcat(logfile,buf);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -