📄 hello_led.c
字号:
#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 <unistd.h>
#include <stdio.h>
#include <stdlib.h>
//-------------------------------------------------------------------------
// 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)); //<<//is 8
printf("DeviceRequest.bmRequestType_size:%d\n",sizeof(ControlData.DeviceRequest.bmRequestType)); //1BYTE
printf("DeviceRequest.bRequest_size:%d\n",sizeof(ControlData.DeviceRequest.bRequest)); //1BYTE
printf("DeviceRequest.wValue_size:%d\n",sizeof(ControlData.DeviceRequest.wValue)); //2BYTE
printf("DeviceRequest.wIndex_size:%d\n",sizeof(ControlData.DeviceRequest.wIndex)); //2BYTE
printf("DeviceRequest.wLength_size:%d\n",sizeof(ControlData.DeviceRequest.wLength)); //2BYTE
printf("USB_DEVICE_DESCRIPTOR_size :%d\n",sizeof(USB_DEVICE_DESCRIPTOR)); //18
printf("USB_CONFIGURATION_DESCRIPTOR_a_size :%d\n",sizeof(USB_CONFIGURATION_DESCRIPTOR_a)); //9*3+7*4
printf("USB_CONFIGURATION_DESCRIPTOR_size :%d\n",sizeof(USB_CONFIGURATION_DESCRIPTOR)); //9
printf("USB_INTERFACE_DESCRIPTOR_size :%d\n",sizeof(USB_INTERFACE_DESCRIPTOR)); //9
printf("USB_INTERFACE_DESCRIPTOR_size :%d\n",sizeof(USB_INTERFACE_DESCRIPTOR)); //9
printf("USB_ENDPOINT_DESCRIPTOR_size :%d\n",sizeof(USB_ENDPOINT_DESCRIPTOR));
printf("any key=======>\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;
}
//-------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -