#include "system.h" #include "basic_io.h" #include "LCD.h" #include "Test.h" #include "Open_I2C.h" #include "sys/alt_irq.h" // for USB #include "BASICTYP.H" #include "COMMON.H" #include "ISR.H" #include "USB.H" #include "MAINLOOP.H" #include "ISR.C" #include "HAL4D13.C" #include "CHAP_9.C" #include "D13BUS.C" #include "ISO.C" #include "MAINLOOP.C" #include #include #include //------------------------------------------------------------------------- // Global Variable D13FLAGS bD13flags; USBCHECK_DEVICE_STATES bUSBCheck_Device_State; CONTROL_XFER ControlData; IO_REQUEST idata ioRequest; //------------------------------------------------------------------------- int main(void) { unsigned long i,j; START: IOWR(PIO_0_BASE, 2, 0);//DIS INT1 IOWR(LED_RED_BASE, 0 , 0 ); disconnect_USB(); for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}} IOWR(LED_RED_BASE, 0 , 1 ); for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}} IOWR(LED_RED_BASE, 0 , 0 ); for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}} IOWR(LED_RED_BASE, 0 , 1 ); IOWR(LED_RED_BASE, 0 , 0 ); for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}} IOWR(LED_RED_BASE, 0 , 1 ); for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}} IOWR(LED_RED_BASE, 0 , 0 ); for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}} IOWR(LED_RED_BASE, 0 , 1 ); IOWR(PIO_0_BASE, 3, 0);//CLAER //Hal4D13_ResetDevice(); bUSBCheck_Device_State.State_bits.DEVICE_DEFAULT_STATE = 1; bUSBCheck_Device_State.State_bits.DEVICE_ADDRESS_STATE = 0; bUSBCheck_Device_State.State_bits.DEVICE_CONFIGURATION_STATE = 0; bUSBCheck_Device_State.State_bits.RESET_BITS = 0; //basic_test(); //test all STRUCTURE SIZE printf("DEVICE_REQUEST_size:%d\n",sizeof(DEVICE_REQUEST)); //<\n"); // IOWR(ISP1362_BASE,D13_COMMAND_PORT,0x62); // printf("%x\n",IORD(ISP1362_BASE,D13_DATA_PORT)); // while ( (inport(BUTTON_PIO_BASE) & 0xf)==0xf) {} // while ( (inport(BUTTON_PIO_BASE) & 0xf)!=0xf) {} // for (i=0 ;i < 0xfff;i++) {for (j=0;j<0xffff;j++) {}} //IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE for (i=0 ;i < 0xf;i++) {for (j=0;j<0xffff;j++) {}} //Hal4D13_ResetDevice(); /*Reset the Device Controller*/ reconnect_USB(); /* Programs the DC's Register*/ // IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE //Hal4D13_AcquireD13(ISP1362_IRQ); //IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE // Hal4D13_AcquireD13(PIO_0_IRQ); //Hal4D13_SetMode( //D13REG_MODE_DMA16 // |D13REG_MODE_SOFTCONNECT // |D13REG_MODE_INT_EN /*Enableing Device Interrupts*/ // ); CHECK_CHIP_ID(); Hal4D13_AcquireD13(PIO_0_IRQ); IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE bD13flags.bits.verbose=1; while (1) { if (bUSBCheck_Device_State.State_bits.RESET_BITS == 1) { IOWR(PIO_0_BASE, 2, 0);//DIS INT1 break; } if (bD13flags.bits.suspend) { // printf("\nSuspend Change Handler!!\n"); RaiseIRQL(); bD13flags.bits.suspend= 0; LowerIRQL(); //disconnect_USB(); suspend_change(); } // Suspend Change Handler if (bD13flags.bits.DCP_state == USBFSM4DCP_SETUPPROC) { // printf("\nSetup Token Handler!!\n"); RaiseIRQL(); SetupToken_Handler(); LowerIRQL(); } // Setup Token Handler if ((bD13flags.bits.DCP_state == USBFSM4DCP_REQUESTPROC) && !ControlData.Abort) { // printf("\nDevice Request Handler!!\n"); RaiseIRQL(); bD13flags.bits.DCP_state = 0x00; DeviceRequest_Handler(); LowerIRQL(); } // Device Request Handler usleep(1); } // return 0; goto START; } //-------------------------------------------------------------------------