📄 usb_fifoepxcfg.c
字号:
#include <stdarg.h>
//#include "Ftc32t.h"
//#include "DataType.h"
//#include "Define.h"
//#include "main.h"
#include "usb.h"
#include "usb_config.h"
//#include "usb_m.h"
//#include "usb_bulk.h"
//#include "usb_intr.h"
#include "FUSB220.h"
//-----------------------------------------------------------------------
/////////////////////////////////////////////////////
// vUsbFIFO_EPxCfg_HS(void)
// Description:
// 1. Configure the FIFO and EPx map
// input: none
// output: none
/////////////////////////////////////////////////////
void vUsbFIFO_EPxCfg_HS(void)
{
int i;
ptCONFIG_LIST ptConfig;
ptINTERFACE_LIST ptInterface;
ptENDPOINT_LIST ptENDPOINT;
UINT8 bDIRECTION;
switch (u8UsbConfigValue)
{
// Configuration 0X01
case 0X01:
ptConfig=&(HS_DEVICE.tCONFIG[1]);
switch (u8UsbInterfaceValue)
{
// Interface 0
case 0:
ptInterface=&(ptConfig->tINTERFACE[0]);
switch (u8UsbInterfaceAlternateSetting)
{
// AlternateSetting 0
case 0:
switch(ptInterface->bNumEndpoints){
case 0x04:
ptENDPOINT=&(ptInterface->tENPOINT[4]);
//EP4
mUsbEPMap(EP4, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP4, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPMxPtSzLow(EP4, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPinHighBandSet(EP4 , bDIRECTION , ptENDPOINT->wMaxPacketSize);
case 0x03:
ptENDPOINT=&(ptInterface->tENPOINT[3]);
//EP3
mUsbEPMap(EP3, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP3, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPMxPtSzLow(EP3, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPinHighBandSet(EP3 , bDIRECTION , ptENDPOINT->wMaxPacketSize);
case 0x02:
ptENDPOINT=&(ptInterface->tENPOINT[2]);
//EP2
mUsbEPMap(EP2, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP2, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPMxPtSzLow(EP2, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPinHighBandSet(EP2 , bDIRECTION , ptENDPOINT->wMaxPacketSize);
case 0x01:
ptENDPOINT=&(ptInterface->tENPOINT[1]);
//EP1
mUsbEPMap(EP1, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP1, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPMxPtSzLow(EP1, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff) );
mUsbEPinHighBandSet(EP1 , bDIRECTION , ptENDPOINT->wMaxPacketSize);
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
}
void vUsbFIFO_EPxCfg_FS(void)
{
int i;
ptCONFIG_LIST ptConfig;
ptINTERFACE_LIST ptInterface;
ptENDPOINT_LIST ptENDPOINT;
UINT8 bDIRECTION;
switch (u8UsbConfigValue)
{
// Configuration 0X01
case 0X01:
ptConfig=&(HS_DEVICE.tCONFIG[1]);
switch (u8UsbInterfaceValue)
{
// Interface 0
case 0:
ptInterface=&(ptConfig->tINTERFACE[0]);
switch (u8UsbInterfaceAlternateSetting)
{
// AlternateSetting 0
case 0:
switch(ptInterface->bNumEndpoints){
case 0x04:
ptENDPOINT=&(ptInterface->tENPOINT[4]);
//EP4
mUsbEPMap(EP4, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP4, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPMxPtSzLow(EP4, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPinHighBandSet(EP4 , bDIRECTION, ptENDPOINT->wMaxPacketSize);
case 0x03:
ptENDPOINT=&(ptInterface->tENPOINT[3]);
//EP3
mUsbEPMap(EP3, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP3, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPMxPtSzLow(EP3, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPinHighBandSet(EP3 , bDIRECTION, ptENDPOINT->wMaxPacketSize);
case 0x02:
ptENDPOINT=&(ptInterface->tENPOINT[2]);
//EP2
mUsbEPMap(EP2, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP2, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPMxPtSzLow(EP2, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPinHighBandSet(EP2 , bDIRECTION, ptENDPOINT->wMaxPacketSize);
case 0x01:
ptENDPOINT=&(ptInterface->tENPOINT[1]);
//EP1
mUsbEPMap(EP1, ptENDPOINT->bMAP);
mUsbFIFOMap(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_MAP);
mUsbFIFOConfig(ptENDPOINT->bFIFO_START, ptENDPOINT->bFIFO_CONFIG);
for(i = ptENDPOINT->bFIFO_START + 1 ;
i < ptENDPOINT->bFIFO_START + ptENDPOINT->bFIFO_NO ;
i ++)
{
mUsbFIFOConfig(i, (ptENDPOINT->bFIFO_CONFIG & (~BIT7)) );
}
bDIRECTION=(1-((ptENDPOINT->bEndpointAddress)>>7));
mUsbEPMxPtSzHigh(EP1, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPMxPtSzLow(EP1, bDIRECTION, (ptENDPOINT->wMaxPacketSize & 0x7ff));
mUsbEPinHighBandSet(EP1 , bDIRECTION, ptENDPOINT->wMaxPacketSize);
break;
}
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -