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

📄 devio.h

📁 USB2.0 HOST 芯片驱动源代码
💻 H
字号:
/* Copyright 1997-2002, ESS Technology, Inc. *//* SCCSID @(#)devio.h	1.1 09/30/04 *//******************************************************************************    Copyright (C) 2003 UBiSYS Technology Limited.    All rights reserved.    author    : dahlsse    created   : 2004-08-16    filename  : DevIO.h    purpose   : Device Interface Layer for UBi9021    target mcu: ES 6218S    notes     :    history   :*******************************************************************************/#ifndef _DEV_IO_H_#define _DEV_IO_H_#include "common.h"#include "mvd.h"#include "ide.h"#include "ioport.h"#define 	DISABLE_INT()				Disable_md_int()#define 	ENABLE_INT()				Restore_int()#define 	NOOP()						asm("nop")//_________ io control ___________________#define 	UBi9021_IRQ_PENDING()		 usb_irq_poll()#define		UH_DEV_IS_PLUGGEDIN()		 usb_plugin()#define 	GET_UBi9021_IRQ_STS(usbIrq) usbIrq=DEV_ReadReg(RH_INT_STS)//_________ UBi9021 Chip Reset ____________#define 	PW_RST_PORT_DIR_OUT//#define 	PW_RST_PORT_LOW 			{usb_reset(0);}while(0)//#define 	PW_RST_PORT_HIGH			{usb_reset(1);}while(0)#define 	PW_RST_PORT_LOW 			{usb_reset(1);}while(0) #define 	PW_RST_PORT_HIGH			{usb_reset(0);}while(0) //_________ io control ___________________//#define	WFIRQ_SLEEP_TIME			10000	//RISC_sleep_nsec(10000);#define		WFIRQ_SLEEP_TIME			1000	//RISC_sleep_nsec(1000);#if	WFIRQ_SLEEP_CHOICE==10000	#define	UMO_WAIT_USB_PKT_TICKS		20000 	//initial value for "gWaitPktTicks"												//this value must be measured from "DEV_TEST_4_GetWaitPacketTicks(200)"												// 20000 : RISC_sleep_nsec(10000); #elif WFIRQ_SLEEP_TIME==1000	#define	UMO_WAIT_USB_PKT_TICKS		66667 	//initial value for "gWaitPktTicks"												//this value must be measured from "DEV_TEST_4_GetWaitPacketTicks(200)"												// 66667 : RISC_sleep_nsec(1000); #else	..ERROR..												#endif#define		UMO_RESET_IDLE_TICKS		1000	//4u-sec	//make sure that the reset pulse low enough#define 	UMO_ENABLE_READCAPACITY 	0		//1:enable read-capacity when enumeration, default=0#define 	UMO_ENABLE_MULTI_LUN		1		//default=0#define 	UMO_DEFAULT_HUB_ADDRESS 	4		//default=4#define 	UMO_DEFAULT_DEV_ADDRESS 	5		//default=5//-------------------------------------------------------------------------------//  UBi9021 Reset mode//-------------------------------------------------------------------------------#define	RST9021_NORMAL_RESET	0	//using register command#define	RST9021_FULL_RESET		1	//using reset pin#define	RST9021_RESTORE			2	//restore previous settings (Device-Address,SOF,FIFO-Direction,//7.28//-------------------------------------------------------------------------------//  Initialization State//-------------------------------------------------------------------------------#define	IS_NO_INIT				0	//not initilized#define	IS_ENUM_OK				1	//passed enumeration#define	IS_FILESYS_OK			2	//passed file system initialization//-------------------------------------------------------------------------------//  Basic Functions for interfacing UBi9021 to SAM8//-------------------------------------------------------------------------------void    DEV_WriteReg(U8 addr,U8 dat);void    DEV_WriteRegMulti(U8 reg, U16 cnt, U8* buf);U8      DEV_ReadReg(U8 addr);U8	DEV_ReadRegMulti(U8 reg, U16 cnt, register U8* buf);#define	DEV_WriteRegMultiWithZero(reg,cnt)	DEV_WriteRegMulti(reg,cnt,TxNULL)#define	DEV_ReadRegMultiAndDiscard(reg,cnt)	DEV_ReadRegMulti(reg,cnt,TxNULL)U8		DEV_WaitForIrq(U8 bIRQ);void	DEV_WaitTicks(U32 dwTicks);R8		DEV_WaitMS(U16 msec);R8		DEV_ResetChip(U8 mode);R8		DEV_ResetUsbDevice(U8 msIdle);R8		DEV_CheckDeviceConnection(void);#ifndef REC_FMMvoid	MemCopy(U8* pTrg, U8* pSrc, U16 bytCnt);#endifvoid	MemFill(U8* buf, U8 val, U16 bytCnt);//-------------------------------------------------------------------------------//  Basic Functions for interfacing UBi9021 to SAM8//-------------------------------------------------------------------------------R8	DEV_TEST_1_RegRW(U8 reg, U16 iterCnt);R8	DEV_TEST_2_SOF_n_Interrupt(void);R8	DEV_TEST_3_FifoRW(U8 mode, U16 iterCnt, U16 rwSize);U32	DEV_TEST_4_GetWaitPacketTicks(U16 sofCount);	//measure "gWaitPktTicks"//-------------------------------------------------------------------------------//  gloable variables//-------------------------------------------------------------------------------extern	U8		gBUF[512];			//sector buffer (available for other jobs, if not accessing USB)									//..must be aligned to DWORDextern	U8*		pBUF;				//pointer to gBUFextern	U32		gWaitPktTicks;		//timeout value for usb packet waiting#define	gWaitUsbPktMsec gWaitPktTicksextern	U8		gInitState;			//7.28 initilization stateextern	U8		gIntDsblCnt;		//interrupt-disable-counter to enable									//..nesting interrupt-control-codes.									//bit7: used in interrupt service routine.									//bit6-0: nesting counter.#if defined(UBi9021_IRQ_USING_INTERRUPT)	extern	U8	gIrqQueue[8],gIrqHead,gIrqTail;#endifextern	U8		gStallMark;extern	char gUsbTimeOver;void DEV_TimerStart(int msec);#endif//!_DEV_IO_H_

⌨️ 快捷键说明

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