📄 test.c
字号:
/*
//*************************************************************************
//
// P H I L I P S P R O P R I E T A R Y
//
// COPYRIGHT (c) 2005 BY PHILIPS SINGAPORE.
// -- ALL RIGHTS RESERVED --
//
// Project: ISP1302 Eva Kit
// File Name: Test.c
// Author: Guo Yang Bin, Email: guo.yang.bin@philips.com
// Created: Nov.20, 2005
// Modified:
// Revision: 1.0
//*************************************************************************
*/
#include <stdio.h>
#include <dos.h>
#include "BasicTyp.h"
#include "hal4sys.h"
#include "function.h"
#include "test.h"
/*
//*************************************************************************
// Public static data
//*************************************************************************
*/
extern D09FLAGS bD09flags;
extern speed;
/*
//*************************************************************************
// Private static data
//*************************************************************************
*/
/*
//*************************************************************************
// Subroutines
//*************************************************************************
*/
USHORT chipid, count_rdwr,count_error;
void Test_loop(void)
{
BOOL in_loop = TRUE;
UCHAR key, address, ad1, ad2, data, count;
USHORT temp;
while( in_loop )
{
if( bioskey(1) )
{
key = bioskey(0);
key &= 0xff;
Hal4Sys_ControlD09Interrupt(0);
switch(key)
{
case 0x1b: /* ESC */
in_loop = FALSE;
break;
case 'x':
case 'X': printf("Pulse ISP1302\n");
cprintf("Please select: ");
Hal4Sys_Set_pule();
break;
case 'm':
case 'M':T_Main_Menu();
break;
case 'h':
case 'H':T_Main_Menu();
printf("Hard reset ISP1302\n");
cprintf("Please select: ");
Hal4Sys_ResetPCBA();
break;
case 'A':
case 'a':printf("Pls input address, address = 0x");
ad1 = input();
printf("%01x", ad1);
ad2 = input();
printf("%01x\n", ad2);
address =(ad1<<4)|ad2;
cprintf("Please select: ");
break;
case 'D':
case 'd':printf("Pls input DATA, data = 0x");
ad1 = input();
printf("%01x", ad1);
ad2 = input();
printf("%01x\n", ad2);
data = (ad1<<4)|ad2;
cprintf("Please select: ");
break;
case 'R':
case 'r':printf("read from address:0x%02x,",address);
printf(" data =0x%02x\n",Hal4Sys_Read(address));
cprintf("Please select: ");
break;
case 'W' :
case 'w' :printf("write data 0x%02x ",data);
printf("to address 0x%02x\n",address);
Hal4Sys_Write(data, address); // reset all PCBA
cprintf("Please select: ");
break;
case 'G':
case 'g':T_Main_Menu();
printf("List ISP1109 register\n");
Hal4Sys_ControlD09Interrupt(FALSE);
chipid = Hal4Sys_Read(0x01);
chipid = (chipid<<8)|Hal4Sys_Read(0);
printf("Vender ID =0x%04x\n",chipid);
chipid = Hal4Sys_Read(0x03);
chipid = (chipid<<8)|Hal4Sys_Read(0x02);
printf("Product ID =0x%04x\n",chipid);
chipid = Hal4Sys_Read(0x15);
chipid = (chipid<<8)|Hal4Sys_Read(0x14);
printf("Ver ID =0x%04x\n",chipid);
printf("Mode register1 04h= 0x%02x\n",Hal4Sys_Read(0x04));
printf("Mode register2 12h= 0x%02x\n",Hal4Sys_Read(0x12));
printf("Audio register 16h= 0x%02x\n",Hal4Sys_Read(0x16));
printf("OTG register 06h= 0x%02x\n",Hal4Sys_Read(0x06));
printf("Misc register 18h= 0x%02x\n",Hal4Sys_Read(0x18));
printf("Carkit register 1Ah= 0x%02x\n",Hal4Sys_Read(0x1a));
printf("Transmit P width 1Ch= 0x%02x\n",Hal4Sys_Read(0x1c));
printf("Transmit N width 1Dh= 0x%02x\n",Hal4Sys_Read(0x1d));
printf("Receive Polarity Recovery 1eh= 0x%02x\n",Hal4Sys_Read(0x1e));
printf("Carkit Interrupt Delay 1fh= 0x%02x\n",Hal4Sys_Read(0x1f));
printf("OTG Status 10h= 0x%02x\n",Hal4Sys_Read(0x10));
printf("Interrut latch = 0x%02x\n",Hal4Sys_Read(0x0a));
printf("Interrupt En_L = 0x%02x\n",Hal4Sys_Read(0x0C));
printf("Interrupt En_H = 0x%02x\n",Hal4Sys_Read(0x0e));
printf("Interrupt Source = 0x%02x\n",Hal4Sys_Read(0x08));
cprintf("Please select: ");
break;
case 'f':
case 'F':
Hal4Sys_ControlD09Interrupt(FALSE); Hal4Sys_ControlD09Interrupt(TRUE);
printf("CLK SWITCH TEST: clock off\n");
Hal4Sys_Write(0Xff, 0X0c);
Hal4Sys_Write(0Xff, 0X0e);
Hal4Sys_Write(0X01, 0X12);
cprintf("Please select: ");
break;
case 'N' :
case 'n' : Hal4Sys_ControlD09Interrupt(FALSE);
printf("CLK SWITCH TEST: clock on\n");
Hal4Sys_Write(0XFF, 0X13);
Hal4Sys_Write(0XFF, 0X13);
cprintf("Please select: ");
break;
case 'L' :
case 'l' :printf("interrupt en_low test\n");
Hal4Sys_Write(0xff, CLR_INT_LATCH);
Hal4Sys_Write(0xff, 0x0f);// clear int en high
Hal4Sys_Write(0xff, 0x0c);// set int en low
Hal4Sys_ControlD09Interrupt(TRUE);
cprintf("Please select: ");
break;
case 'U' :
case 'u' :printf("interrupt en_high test\n");
Hal4Sys_Write(0xff, CLR_INT_LATCH);
Hal4Sys_Write(0xff, 0x0d);// clear int en low
Hal4Sys_Write(0xff, 0x0e);// set int en high
Hal4Sys_ControlD09Interrupt(TRUE);
cprintf("Please select: ");
break;
case 'Z':T_Main_Menu();
printf("addressed register access 10K times test \n");
printf("address = 0x%02x, ",address);
printf("data = 0x%02x, ",data);
Hal4Sys_ControlD09Interrupt(FALSE);
count_error = 0;
Hal4Sys_Write(0x00, address);
for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
{
Hal4Sys_Write(data, address);
ad1 =data;
ad1 = Hal4Sys_Read(address);
if(ad1!=data)
{
count_error++;
Hal4Sys_ResetPCBA();
printf("data =0x%02x",ad1);
Hal4Sys_Write(0x00, address);
}
}
printf("error times=0x%04x\n",count_error++);
cprintf("Please select: ");
break;
case 'z':T_Main_Menu();
printf("addressed register access 10K times test \n");
printf("address = 0x%02x, ",address);
printf("data = 0x%02x, ",data);
Hal4Sys_ControlD09Interrupt(FALSE);
count_error = 0;
Hal4Sys_Write(0xff, address+1);
for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
{
Hal4Sys_Write(data, address);
ad1 =data;
ad1 = Hal4Sys_Read(address);
if(ad1!=data)
{
count_error++;
Hal4Sys_ResetPCBA();
printf("data =0x%02x",ad1);
Hal4Sys_Write(0xff, address+1);
}
}
printf("error times=0x%04x\n",count_error++);
cprintf("Please select: ");
break;
case 'p':
case 'P':T_Main_Menu();
printf("ISP1109 register access 10K times test \n");
Hal4Sys_ControlD09Interrupt(FALSE);
count_error = 0;
for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
{
chipid = Hal4Sys_Read(0x01);
chipid = (chipid<<8)|Hal4Sys_Read(0);
if(chipid !=0x04cc)
{
Hal4Sys_ResetPCBA();
printf("Vender ID=0x%04x ",chipid);
count_error++;
}
}
printf("Vender ID error times=0x%04x\n",count_error++);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -