📄 rwreg.c
字号:
/*
//*************************************************************************
//
// P H I L I P S P R O P R I E T A R Y
//
// COPYRIGHT (c) 2000 BY PHILIPS SINGAPORE.
// -- ALL RIGHTS RESERVED --
//
// File Name: rdreg.c
// Author: Qian Jiang
// Created: 17 Aug, 2000
// Modified:
// Revision: 0.0
//
//*************************************************************************
//
//*************************************************************************
*/
#include <stdio.h>
#include <string.h>
#include <bios.h>
#include <dos.h>
#include <conio.h>
#include "BasicTyp.h"
#include "common.h"
#include "usb200.h"
#include "HAL4Sys.h"
#include "ISP1581.h"
#include "isr.h"
#include "mainloop.h"
#include "verify.h"
#include "rwreg.h"
#define true 1
#define false 0
void test_chipid(void)
{
unsigned short j;
j = ISP1581_ReadChipID();
cprintf("chip id = %x, chip revsion = %x \r\n", j);
}
void test_addren(void)
{
unsigned char i, j;
while(i)
{
ISP1581_SetAddressEnable(i, 0x80);
j = ISP1581_GetAddress();
if(j != (i | 0x80))
{
cprintf("test address register failed, write = %x, read = %x, \r\n", i, j);
if (key2go() != 'c')
{
return;
}
else
i <<= 1;
}
else
i <<= 1;
}
cprintf("test address register passed\r\n");
return;
}
void test_epmaxsize()
{
unsigned short i=0x1, j;
unsigned char epindex, error, errorall, eptemp;
errorall = 0;
for(epindex = 0x10; epindex <= 0x1f; epindex ++)
{
i = 0x1;
while(i)
{
ISP1581_SetEPMAXSize(epindex,i);
j = ISP1581_GetEPMAXSize(epindex);
if(j != i)
{
cprintf("test max endpoint size register failed, epindex = %x write = %x, read = %x, \r\n", epindex,i, j);
error = 1;
errorall = 1;
if(key2go() != 'g')
{
return;
}
}
if (i < 0x1000)
{
i <<= 1;
}
else
{
i = 0;
if(error)
{
cprintf("test max endpoint size register for ep%x failed\r\n", epindex);
error = 0;
}
}
}
if(errorall==0)
{
cprintf("test max endpoint size register for ep%x passed\r\n", epindex);
}
}
}
void test_eptype(void)
{
unsigned char i=0x1, j;
unsigned char epindex, error, errorall;
error = 0;
for(epindex = 0x10; epindex <= 0x1f; epindex ++)
{
while(i)
{
ISP1581_SetEndpointConfig(epindex, i);
j = ISP1581_GetEndpointConfig(epindex);
if(j != i)
{
cprintf("test endpoint type register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
{
return;
}
}
if (i < 0x10)
{
i <<= 1;
}
else
{
i = 0;
}
}
}
if(error == 0)
{
cprintf("test endpoint type register passed\r\n");
}
}
void test_mode(void)
{
unsigned char i= 0x1, j, error = 0;
while(i)
{
ISP1581_SetMode(i);
j = ISP1581_GetMode();
if(j != i)
{
cprintf("test endpoint mode register failed, write = %x, read = %x, \r\n", i, j);
if(key2go() != 'g');
{
error = 0;
return;
}
}
if(i == 0x08)
i <<= 2;
else
i <<= 1;
}
if(error)
cprintf("test endpoint mode register failed/partially passed\r\n");
else
cprintf("test endpoint mode register passed\r\n");
}
void test_intcfg()
{
unsigned char i= 0x1, j, error = 0;
while(i)
{
ISP1581_SetIntConfig(i);
j = ISP1581_GetIntConfig();
if(j != i)
{
cprintf("test interrupt config register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
if(error)
{
cprintf("test interrupt config register failed/partial passed\r\n");
}
else
{
cprintf("test interrupt config register passed\r\n");
}
}
void test_intmask()
{
unsigned short i=1, j, error = 0;
while(i)
{
ISP1581_SetIntEnableLow(i);
j = ISP1581_GetIntEnableLow();
if(j != i && i != 0x200 && i != 0x80)
{
cprintf("test interrupt maskl register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
while(i)
{
ISP1581_SetIntEnableHigh(i);
j = ISP1581_GetIntEnableHigh();
if(j != i)
{
cprintf("test interrupt maskh register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
if(i < 0x40)
i <<= 1;
else
i = 0;
}
if(error)
cprintf("test interrupt mask register failed/partial passed\r\n");
else
cprintf("test interrupt mask register passed\r\n");
}
void test_dcount(void)
{
unsigned char i=0x1, j;
unsigned char epindex, error = 0;
for(epindex = 0x10; epindex <= 0x1f; epindex ++)
{
ISP1581_SetEPIndex(epindex);
while(i)
{
ISP1581_SetDCount(i);
j = ISP1581_GetDCount();
if(j != i)
{
cprintf("test EP%x data counter register failed, write = %x, read = %x, \r\n",epindex, i, j);
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
}
if(error)
cprintf("test data counter register failed/partial passed\r\n");
else
cprintf("test data counter register passed\r\n");
}
void test_dmacount(void)
{
unsigned short i=0x1, j;
unsigned char error=0;
while(i)
{
ISP1581_SetDMACounterLow(i);
j = ISP1581_GetDMACounterLow();
if(j != i)
{
cprintf("test dma counter registerh failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
while(i)
{
ISP1581_SetDMACounterHigh(i);
j = ISP1581_GetDMACounterHigh();
if(j != i)
{
cprintf("test dma counter registerh failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
if(error)
cprintf("test dma counter register failed/partial passed\r\n");
else
cprintf("test dma counter register passed \r\n");
}
void test_dmacfg(void)
{
unsigned int i=1, j;
unsigned char error = 0;
while(i)
{
ISP1581_SetDMAConfig(i);
j = ISP1581_GetDMAConfig();
if(j != i && (i != 0x80 | i != 0x40))
{
cprintf("test dma config register failed, write = %x, read = %x, \r\n", i, j);
key2go();
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
if(error)
cprintf("test dma config register failed/partial passed\r\n");
else
cprintf("test dma config register passed\r\n");
}
void test_dmahdcfg(void)
{
unsigned char i=1, j, error = 0;
while(i)
{
ISP1581_SetDMAHDCfg(i);
j = ISP1581_GetDMAHDCfg();
if(j != i)
{
cprintf("test dma hardware config register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
i <<= 1;
}
if(error)
cprintf("test dma hardware config register failed/partial passed\r\n");
else
cprintf("test dma hardware config register passed\r\n");
}
void test_dmaintmask(void)
{
unsigned char i=1, j, error = 0;
while(i)
{
ISP1581_SetDMAIntMask(i);
j = ISP1581_GetDMAIntMask();
if(j != i)
{
cprintf("test dma hinterrupt mask register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
if (i < 0x40)
i <<= 1;
else
i = 0;
}
if(error)
cprintf("test dma interrupt mask register failed/partial passed\r\n");
else
cprintf("test dma interrupt mask register passed\r\n");
}
void test_dmaep(void)
{
unsigned char i=1, j, error = 0;
while(i)
{
ISP1581_SetDMAEP(i);
j = ISP1581_GetDMAEP();
if(j != i)
{
cprintf("test dma endpoint register failed, write = %x, read = %x, \r\n", i, j);
error = 1;
if(key2go() != 'g')
return;
}
if (i < 0x40)
i <<= 1;
else
i = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -