⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_fifoepxcfg.c

📁 FIC8120方案的 StartCell_Driver
💻 C
字号:
#include <stdarg.h>
//#include "Ftc32t.h"
//#include "DataType.h"
//#include "Define.h"
//#include "main.h"

#include "usb.h"
#include "usb_hs_pos.h"
#include "usb_fs_pos.h"

//#include "usb_m.h"
//#include "usb_bulk.h"
//#include "usb_intr.h"
#include "FUSB220.h"

#include "my_usbtable.h"

/////////////////////////////////////////////////////
//		vUsbFIFO_EPxCfg_HS(void)
//		Description:
//			1. Configure the FIFO and EPx map
//		input: none
//		output: none
/////////////////////////////////////////////////////
void vUsbFIFO_EPxCfg_HS(void)
{
	int i;
	switch (u8UsbConfigValue)
	{
		#if (HS_CONFIGURATION_NUMBER >= 0X01)
		// Configuration 0X01
		case 0X01:
			switch (u8UsbInterfaceValue)
			{
				#if (HS_C1_INTERFACE_NUMBER >= 0x01)
				// Interface 0
				case 0:
					switch (u8UsbInterfaceAlternateSetting)
					{
						#if (HS_C1_I0_ALT_NUMBER >= 0X01)
						// AlternateSetting 0
						case 0:
							#if (HS_C1_I0_A0_EP_NUMBER >= 0X01)
							//EP0X01
							mUsbEPMap(EP1, HS_C1_I0_A0_EP1_MAP);
							mUsbFIFOMap(HS_C1_I0_A0_EP1_FIFO_START, HS_C1_I0_A0_EP1_FIFO_MAP);
							mUsbFIFOConfig(HS_C1_I0_A0_EP1_FIFO_START, HS_C1_I0_A0_EP1_FIFO_CONFIG);
							
							for(i = HS_C1_I0_A0_EP1_FIFO_START + 1 ;
								i < HS_C1_I0_A0_EP1_FIFO_START + HS_C1_I0_A0_EP1_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (HS_C1_I0_A0_EP1_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP1, HS_C1_I0_A0_EP1_DIRECTION, (HS_C1_I0_A0_EP1_MAX_PACKET & 0x7ff) );
							mUsbEPMxPtSzLow(EP1, HS_C1_I0_A0_EP1_DIRECTION, (HS_C1_I0_A0_EP1_MAX_PACKET & 0x7ff) );
							mUsbEPinHighBandSet(EP1 , HS_C1_I0_A0_EP1_DIRECTION , HS_C1_I0_A0_EP1_MAX_PACKET);
							#endif
							#if (HS_C1_I0_A0_EP_NUMBER >= 0X02)
							//EP0X02
							mUsbEPMap(EP2, HS_C1_I0_A0_EP2_MAP);
							mUsbFIFOMap(HS_C1_I0_A0_EP2_FIFO_START, HS_C1_I0_A0_EP2_FIFO_MAP);
							mUsbFIFOConfig(HS_C1_I0_A0_EP2_FIFO_START, HS_C1_I0_A0_EP2_FIFO_CONFIG);
							
							for(i = HS_C1_I0_A0_EP2_FIFO_START + 1 ;
								i < HS_C1_I0_A0_EP2_FIFO_START + HS_C1_I0_A0_EP2_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (HS_C1_I0_A0_EP2_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP2, HS_C1_I0_A0_EP2_DIRECTION, (HS_C1_I0_A0_EP2_MAX_PACKET & 0x7ff) );
							mUsbEPMxPtSzLow(EP2, HS_C1_I0_A0_EP2_DIRECTION, (HS_C1_I0_A0_EP2_MAX_PACKET & 0x7ff) );
							mUsbEPinHighBandSet(EP2 , HS_C1_I0_A0_EP2_DIRECTION , HS_C1_I0_A0_EP2_MAX_PACKET);
							#endif
							#if (HS_C1_I0_A0_EP_NUMBER >= 0X03)
							//EP0X03
							mUsbEPMap(EP3, HS_C1_I0_A0_EP3_MAP);
							mUsbFIFOMap(HS_C1_I0_A0_EP3_FIFO_START, HS_C1_I0_A0_EP3_FIFO_MAP);
							mUsbFIFOConfig(HS_C1_I0_A0_EP3_FIFO_START, HS_C1_I0_A0_EP3_FIFO_CONFIG);
							
							for(i = HS_C1_I0_A0_EP3_FIFO_START + 1 ;
								i < HS_C1_I0_A0_EP3_FIFO_START + HS_C1_I0_A0_EP3_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (HS_C1_I0_A0_EP3_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP3, HS_C1_I0_A0_EP3_DIRECTION, (HS_C1_I0_A0_EP3_MAX_PACKET & 0x7ff) );
							mUsbEPMxPtSzLow(EP3, HS_C1_I0_A0_EP3_DIRECTION, (HS_C1_I0_A0_EP3_MAX_PACKET & 0x7ff) );
							mUsbEPinHighBandSet(EP3 , HS_C1_I0_A0_EP3_DIRECTION , HS_C1_I0_A0_EP3_MAX_PACKET);
							#endif
							#if (HS_C1_I0_A0_EP_NUMBER >= 0X04)
							//EP0X04
							mUsbEPMap(EP4, HS_C1_I0_A0_EP4_MAP);
							mUsbFIFOMap(HS_C1_I0_A0_EP4_FIFO_START, HS_C1_I0_A0_EP4_FIFO_MAP);
							mUsbFIFOConfig(HS_C1_I0_A0_EP4_FIFO_START, HS_C1_I0_A0_EP4_FIFO_CONFIG);
							
							for(i = HS_C1_I0_A0_EP4_FIFO_START + 1 ;
								i < HS_C1_I0_A0_EP4_FIFO_START + HS_C1_I0_A0_EP4_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (HS_C1_I0_A0_EP4_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP4, HS_C1_I0_A0_EP4_DIRECTION, (HS_C1_I0_A0_EP4_MAX_PACKET & 0x7ff) );
							mUsbEPMxPtSzLow(EP4, HS_C1_I0_A0_EP4_DIRECTION, (HS_C1_I0_A0_EP4_MAX_PACKET & 0x7ff) );
							mUsbEPinHighBandSet(EP4 , HS_C1_I0_A0_EP4_DIRECTION , HS_C1_I0_A0_EP4_MAX_PACKET);
							#endif
							break;
						#endif
						default:
							break;
					}
					break;
				#endif
				default:
					break;
			}
			break;
		#endif
		default:
			break;
	}
}

void vUsbFIFO_EPxCfg_FS(void)
{
	int i;
	switch (u8UsbConfigValue)
	{
		#if (FS_CONFIGURATION_NUMBER >= 0X01)
		// Configuration 0X01
		case 0X01:
			switch (u8UsbInterfaceValue)
			{
				#if (FS_C1_INTERFACE_NUMBER >= 0x01)
				// Interface 0
				case 0:
					switch (u8UsbInterfaceAlternateSetting)
					{
						#if (FS_C1_I0_ALT_NUMBER >= 0X01)
						// AlternateSetting 0
						case 0:
							#if (FS_C1_I0_A0_EP_NUMBER >= 0X01)
							//EP0X01
							mUsbEPMap(EP1, FS_C1_I0_A0_EP1_MAP);
							mUsbFIFOMap(FS_C1_I0_A0_EP1_FIFO_START, FS_C1_I0_A0_EP1_FIFO_MAP);
							mUsbFIFOConfig(FS_C1_I0_A0_EP1_FIFO_START, FS_C1_I0_A0_EP1_FIFO_CONFIG);
							
							for(i = FS_C1_I0_A0_EP1_FIFO_START + 1 ;
								i < FS_C1_I0_A0_EP1_FIFO_START + FS_C1_I0_A0_EP1_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (FS_C1_I0_A0_EP1_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP1, FS_C1_I0_A0_EP1_DIRECTION, (FS_C1_I0_A0_EP1_MAX_PACKET & 0x7ff));
							mUsbEPMxPtSzLow(EP1, FS_C1_I0_A0_EP1_DIRECTION, (FS_C1_I0_A0_EP1_MAX_PACKET & 0x7ff));
							mUsbEPinHighBandSet(EP1 , FS_C1_I0_A0_EP1_DIRECTION, FS_C1_I0_A0_EP1_MAX_PACKET);
							#endif
							#if (FS_C1_I0_A0_EP_NUMBER >= 0X02)
							//EP0X02
							mUsbEPMap(EP2, FS_C1_I0_A0_EP2_MAP);
							mUsbFIFOMap(FS_C1_I0_A0_EP2_FIFO_START, FS_C1_I0_A0_EP2_FIFO_MAP);
							mUsbFIFOConfig(FS_C1_I0_A0_EP2_FIFO_START, FS_C1_I0_A0_EP2_FIFO_CONFIG);
							
							for(i = FS_C1_I0_A0_EP2_FIFO_START + 1 ;
								i < FS_C1_I0_A0_EP2_FIFO_START + FS_C1_I0_A0_EP2_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (FS_C1_I0_A0_EP2_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP2, FS_C1_I0_A0_EP2_DIRECTION, (FS_C1_I0_A0_EP2_MAX_PACKET & 0x7ff));
							mUsbEPMxPtSzLow(EP2, FS_C1_I0_A0_EP2_DIRECTION, (FS_C1_I0_A0_EP2_MAX_PACKET & 0x7ff));
							mUsbEPinHighBandSet(EP2 , FS_C1_I0_A0_EP2_DIRECTION, FS_C1_I0_A0_EP2_MAX_PACKET);
							#endif
							#if (FS_C1_I0_A0_EP_NUMBER >= 0X03)
							//EP0X03
							mUsbEPMap(EP3, FS_C1_I0_A0_EP3_MAP);
							mUsbFIFOMap(FS_C1_I0_A0_EP3_FIFO_START, FS_C1_I0_A0_EP3_FIFO_MAP);
							mUsbFIFOConfig(FS_C1_I0_A0_EP3_FIFO_START, FS_C1_I0_A0_EP3_FIFO_CONFIG);
							
							for(i = FS_C1_I0_A0_EP3_FIFO_START + 1 ;
								i < FS_C1_I0_A0_EP3_FIFO_START + FS_C1_I0_A0_EP3_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (FS_C1_I0_A0_EP3_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP3, FS_C1_I0_A0_EP3_DIRECTION, (FS_C1_I0_A0_EP3_MAX_PACKET & 0x7ff));
							mUsbEPMxPtSzLow(EP3, FS_C1_I0_A0_EP3_DIRECTION, (FS_C1_I0_A0_EP3_MAX_PACKET & 0x7ff));
							mUsbEPinHighBandSet(EP3 , FS_C1_I0_A0_EP3_DIRECTION, FS_C1_I0_A0_EP3_MAX_PACKET);
							#endif
							#if (FS_C1_I0_A0_EP_NUMBER >= 0X04)
							//EP0X04
							mUsbEPMap(EP4, FS_C1_I0_A0_EP4_MAP);
							mUsbFIFOMap(FS_C1_I0_A0_EP4_FIFO_START, FS_C1_I0_A0_EP4_FIFO_MAP);
							mUsbFIFOConfig(FS_C1_I0_A0_EP4_FIFO_START, FS_C1_I0_A0_EP4_FIFO_CONFIG);
							
							for(i = FS_C1_I0_A0_EP4_FIFO_START + 1 ;
								i < FS_C1_I0_A0_EP4_FIFO_START + FS_C1_I0_A0_EP4_FIFO_NO ;
							    i ++)
							{
								mUsbFIFOConfig(i, (FS_C1_I0_A0_EP4_FIFO_CONFIG & (~BIT7)) );
							}
							
							mUsbEPMxPtSzHigh(EP4, FS_C1_I0_A0_EP4_DIRECTION, (FS_C1_I0_A0_EP4_MAX_PACKET & 0x7ff));
							mUsbEPMxPtSzLow(EP4, FS_C1_I0_A0_EP4_DIRECTION, (FS_C1_I0_A0_EP4_MAX_PACKET & 0x7ff));
							mUsbEPinHighBandSet(EP4 , FS_C1_I0_A0_EP4_DIRECTION, FS_C1_I0_A0_EP4_MAX_PACKET);
							#endif
							break;
						#endif
						default:
							break;
					}
					break;
				#endif
				default:
					break;
			}
			break;
		#endif
		default:
			break;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -