📄 fs7822.h
字号:
/*
**********************************************************************************************
* Project: T5
* File: FS7822.h
* Contents:
*
* $Date: 1/18/06 Michal v0.1 initial
*
* Copyright (c) 2006 Fameg, Inc. All rights reserved
***********************************************************************************************
*/
#ifndef __FS7822_H__
#define __FS7822_H__
#include "DP8051.h"
#ifdef ALLOCATE_EXTERN
#define EXTERN
#define _AT_ _at_
#else
#define EXTERN extern
#define _AT_ ;/ ## /
#endif
#define BULK
//#define ISOCHRONOUS
//#define INTERRUPT
#define TRUE 1
#define FALSE 0
#define true TRUE
#define false FALSE
#ifndef NULL
#define NULL (void*) 0
#endif
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef BYTE BOOL;
/*typedef bit bool;
typedef short INT16;
typedef unsigned short UINT16;
typedef long INT32;
typedef unsigned long UINT32;
*/
#define VendorIDL 0x21
#define VendorIDH 0x51
#define ProductIDL 0x12
#define ProductIDH 0x12
#define NumEP 0x02
/////////////////////
#define bmBIT0 0x01
#define bmBIT1 0x02
#define bmBIT2 0x04
#define bmBIT3 0x08
#define bmBIT4 0x10
#define bmBIT5 0x20
#define bmBIT6 0x40
#define bmBIT7 0x80
//////////////////////////////
#define bmUSBINTE bmBIT5
#define bmUSBINTF bmBIT5 //bmBIT0 to bmBIT5(in IE,IP)
#define bmDMAINTE bmBIT0
#define bmDMAINTF bmBIT0 // bmBIT1 to bmBIT0
/////////////////////////////
#define bmUSBRST bmBIT0 //(in SW_RST)
#define bmUSBPLUG bmBIT1
#define bmUSBSUS bmBIT2
//#define bmUSBRESUME bmBIT3
#define bmUSBHSDC bmBIT6
//#define bmUSBHSPD bmBIT7
//interrupt event
#define bmRX0INT bmBIT0 // bmINT0RX to bmRX0INT
#define bmTX0INT bmBIT1 //bmINT0TX to bmTX0INT
#define bmIN0INT bmBIT2 //bmINT0IN to bmIN0INT
#define bmEPAINT bmBIT3 //bmINTA to bmEPAINT
#define bmEPBINT bmBIT4 //bmINTB to bmEPBINT
////////////////////
//interrupt enable
#define bmINT0RXE bmBIT0
#define bmINT0TXE bmBIT1
#define bmINT0INE bmBIT2
#define bmINT1E bmBIT3
#define bmINT2E bmBIT4
#define bmINT3E bmBIT5
#define bmSOFINTE bmBIT7 //bmBIT6 to bmBIT7
#define bmRSTINTE bmBIT0
#define bmIDLEINTE bmBIT1
#define bmRUEINTE bmBIT2
//State interrupt event
#define bmRSTINT bmBIT0
#define bmIDLEINT bmBIT1
#define bmRUEINT bmBIT2
//EP0 RX token
#define bmRXOUT bmBIT0
#define bmRXSETUP bmBIT1
#define bmSETUPOW bmBIT2 //SETUP Overwrite
//EP0 RX cmd/status
#define bmEP0RXEN bmBIT0
#define bmEP0RXSESTALL bmBIT1
#define bmEP0RXDTOG bmBIT2
#define bmEP0RXDTOGERR bmBIT3
#define bmEP0RXACKSTS bmBIT4
#define bmEP0RXSTALLSTS bmBIT5
#define bmEP0RXERRSTS bmBIT6
#define bmEP0RXCDTOG bmBIT7
//EP0 TX cmd/sts
#define bmEP0TXEN bmBIT0
#define bmEP0TXSESTALL bmBIT1
#define bmEP0TXDTOG bmBIT2
#define bmEP0TXACKSTS bmBIT4
#define bmEP0TXSTALLSTS bmBIT5
#define bmEP0TXERRSTS bmBIT6
#define bmEP0TXCDTOG bmBIT7
//EPn cmd/sts
#define bmEPnRTEN bmBIT0
#define bmEPnSESTALL bmBIT1
#define bmEPnDTOG bmBIT2
#define bmEPnDTOGERR bmBIT3
#define bmEPnACKSTS bmBIT4
#define bmEPnSTALLSTS bmBIT5
#define bmEPnERRSTS bmBIT6
#define bmEPnCDTOG bmBIT7
//EP STALL
#define bmEPSTALL bmBIT1
//EPx FIFOCS
//#define bmFIFO0CLKSEL 0 //bmBIT0 to 0
//#define bmFIFO1CLKSEL bmBIT0 //bmBIT1 to bmBIT0
//#define bmEPxFIFO bmBIT3
//#define bmCasCADE bmBIT5
//#define bmFIFO0FULL bmBIT6
//#define bmFIFO1FULL bmBIT7
//DMA control
#define bmTDMA_START bmBIT0
#define bmDMA_START bmBIT1
//DMA Source/Destination pointer increment control
//#define bmDMA_SINC bmBIT0
//#define bmDMA_DINC bmBIT1
//System Register
EXTERN xdata volatile BYTE PRODUCTIDL _AT_ 0xFE00;
EXTERN xdata volatile BYTE PRODUCTIDH _AT_ 0xFE01;
EXTERN xdata volatile BYTE VERSION _AT_ 0xFE02;
EXTERN xdata volatile BYTE CHIPINT _AT_ 0xFE03; //0x30A3;
#define bmDMA_INT bmBIT0
#define bmTDES_INT bmBIT1
#define bmRNG_INT bmBIT2
#define bmSPI_INT bmBIT3
#define bmSDMI_INT bmBIT4
#define bmI2C_INT bmBIT5
#define bmWDT_INT bmBIT6
EXTERN xdata volatile BYTE CHIPINTE _AT_ 0xFE04;//0x30A4;
#define bmDMA_IE bmBIT0
#define bmTDES_IE bmBIT1
#define bmRNG_IE bmBIT2
#define bmSPI_IE bmBIT3
#define bmSDMI_IE bmBIT4
#define bmI2C_IE bmBIT5
#define bmWDT_IE bmBIT6
EXTERN xdata volatile BYTE SYS_CFG _AT_ 0xFE05;
#define bmCPUCLK_SEL bmBIT0|bmBIT1
#define bmIFCLKPOL bmBIT2
#define bmCPUCLKOE bmBIT3
#define bmEXCLK_EN bmBIT4
#define bmSYS_SWRST bmBIT5
#define bmPM_AVBLE bmBIT6
#define bmBYPASSPLL bmBIT7
EXTERN xdata volatile BYTE SYSIO_CFG _AT_ 0xFE06;
#define bmIFCFG bmBIT0|bmBIT1
#define bmSDC_EN bmBIT2
#define bmSPI_EN bmBIT3
#define bmI2C_EN bmBIT4
#define bmUART_EN bmBIT5
#define bmEXINT_EN bmBIT6
EXTERN xdata volatile BYTE P0CFG _AT_ 0xFE07;
EXTERN xdata volatile BYTE P3CFG _AT_ 0xFE08;
EXTERN xdata volatile BYTE P0OE _AT_ 0xFE09;
EXTERN xdata volatile BYTE P1OE _AT_ 0xFE0A;
EXTERN xdata volatile BYTE P2OE _AT_ 0xFE0B;
EXTERN xdata volatile BYTE P3OE _AT_ 0xFE0C;
EXTERN xdata volatile BYTE P4OE _AT_ 0xFE0D;
EXTERN xdata volatile BYTE P5OE _AT_ 0xFE0E;
EXTERN xdata volatile BYTE PDCTL _AT_ 0xFE0F;
EXTERN xdata volatile BYTE P4 _AT_ 0xFE10;
EXTERN xdata volatile BYTE P5 _AT_ 0xFE11;
EXTERN xdata volatile BYTE TEST _AT_ 0xFE12;
#define bmSBT_RESULT0 bmBIT0
#define bmSBT_RESULT1 bmBIT1
#define bmIBT_RESULT0 bmBIT2
#define bmIBT_RESULT1 bmBIT3
#define bmSTAND8051 bmBIT5
#define bmDIT_MODE bmBIT6
EXTERN xdata volatile BYTE SW_RST _AT_ 0xFE13;//0x30A5; SYS_SWRST to SW_RST
#define bmUSB_RST bmBIT0
#define bmSFI_RST bmBIT1
#define bmAPLIF_RST bmBIT2
#define bmSPI_RST bmBIT3
#define bmDMA_RST bmBIT4
#define bmTDES_RST bmBIT5
#define bmSDMI_RST bmBIT6
#define bmI2C_RST bmBIT7
EXTERN xdata volatile BYTE RMWEN _AT_ 0xFE14;
#define bmRMWEN0 bmBIT0
#define bmRMWEN1 bmBIT1
#define bmRMWEN2 bmBIT2
#define bmRMWEN3 bmBIT3
#define bmRMWEN4 bmBIT4
#define bmRMWEN5 bmBIT5
EXTERN xdata volatile BYTE P0PUCTL _AT_ 0xFE15;
EXTERN xdata volatile BYTE P1PUCTL _AT_ 0xFE16;
EXTERN xdata volatile BYTE P2PUCTL _AT_ 0xFE17;
EXTERN xdata volatile BYTE P3PUCTL _AT_ 0xFE18;
EXTERN xdata volatile BYTE P4PUCTL _AT_ 0xFE19;
EXTERN xdata volatile BYTE P5PUCTL _AT_ 0xFE1A;
EXTERN xdata volatile BYTE BPPUCTL _AT_ 0xFE1B;
#define bmSPIPUCTL bmBIT3
EXTERN xdata volatile BYTE MEMCON _AT_ 0xFE1F;
#define bmMEMCON 0x0 //decided by this FW(After be compiled)
#define bmASYN bmBIT7
//DMA Register
EXTERN xdata volatile BYTE DMA_CTL _AT_ 0xFE40;//0x3090; DMA_GENCTL to DMA_CTL
#define bmTDMA_START bmBIT0
#define bmDMA_START bmBIT1
#define bmDMA_RWCYC bmBIT2|bmBIT3
#define bmDMA_LATENCY bmBIT4|bmBIT5
#define bmDMA_STLCYC bmBIT6|bmBIT7
EXTERN xdata volatile BYTE DMA_S_ADDRL _AT_ 0xFE42;//0x3093;
EXTERN xdata volatile BYTE DMA_S_ADDRH _AT_ 0xFE43;//0x3094;
EXTERN xdata volatile BYTE DMA_D_ADDRL _AT_ 0xFE44;//0x3096;
EXTERN xdata volatile BYTE DMA_D_ADDRH _AT_ 0xFE45;//0x3097; DMA_D_ADDRM to DMA_D_ADDRH
EXTERN xdata volatile BYTE DMA_LENL _AT_ 0xFE46;//0x3099;
EXTERN xdata volatile BYTE DMA_LENH _AT_ 0xFE47;//0x309A;
//RNG Register
EXTERN xdata volatile BYTE RNG_CTL _AT_ 0xFE50;
EXTERN xdata volatile BYTE RNG_INT _AT_ 0xFE51;
EXTERN xdata volatile BYTE RNG_INTE _AT_ 0xFE52;
EXTERN xdata volatile BYTE RNG_INDAT _AT_ 0xFE53;
EXTERN xdata volatile BYTE RNG_OUTDAT _AT_ 0xFE54;
//KPU Register
EXTERN xdata volatile BYTE SADDR _AT_ 0xFE58;
EXTERN xdata volatile BYTE KPU_CTL _AT_ 0xFE59;
//TDES Register
EXTERN xdata volatile BYTE TDES_KEY1_0 _AT_ 0xFE60;
EXTERN xdata volatile BYTE TDES_KEY1_1 _AT_ 0xFE61;
EXTERN xdata volatile BYTE TDES_KEY1_2 _AT_ 0xFE62;
EXTERN xdata volatile BYTE TDES_KEY1_3 _AT_ 0xFE63;
EXTERN xdata volatile BYTE TDES_KEY1_4 _AT_ 0xFE64;
EXTERN xdata volatile BYTE TDES_KEY1_5 _AT_ 0xFE65;
EXTERN xdata volatile BYTE TDES_KEY1_6 _AT_ 0xFE66;
EXTERN xdata volatile BYTE TDES_KEY1_7 _AT_ 0xFE67;
EXTERN xdata volatile BYTE TDES_KEY2_0 _AT_ 0xFE68;
EXTERN xdata volatile BYTE TDES_KEY2_1 _AT_ 0xFE69;
EXTERN xdata volatile BYTE TDES_KEY2_2 _AT_ 0xFE6A;
EXTERN xdata volatile BYTE TDES_KEY2_3 _AT_ 0xFE6B;
EXTERN xdata volatile BYTE TDES_KEY2_4 _AT_ 0xFE6C;
EXTERN xdata volatile BYTE TDES_KEY2_5 _AT_ 0xFE6D;
EXTERN xdata volatile BYTE TDES_KEY2_6 _AT_ 0xFE6E;
EXTERN xdata volatile BYTE TDES_KEY2_7 _AT_ 0xFE6F;
EXTERN xdata volatile BYTE TDES_KEY3_0 _AT_ 0xFE70;
EXTERN xdata volatile BYTE TDES_KEY3_1 _AT_ 0xFE71;
EXTERN xdata volatile BYTE TDES_KEY3_2 _AT_ 0xFE72;
EXTERN xdata volatile BYTE TDES_KEY3_3 _AT_ 0xFE73;
EXTERN xdata volatile BYTE TDES_KEY3_4 _AT_ 0xFE74;
EXTERN xdata volatile BYTE TDES_KEY3_5 _AT_ 0xFE75;
EXTERN xdata volatile BYTE TDES_KEY3_6 _AT_ 0xFE76;
EXTERN xdata volatile BYTE TDES_KEY3_7 _AT_ 0xFE77;
EXTERN xdata volatile BYTE TDES_CTL _AT_ 0xFE78;
EXTERN xdata volatile BYTE TDES_DATA _AT_ 0xFE79;
// USB Register
EXTERN xdata volatile BYTE USBGCTRL _AT_ 0xFE80;//0x3000; GCTRL to USB GCTRL
EXTERN xdata volatile BYTE EPINT _AT_ 0xFE81;//0x3001;
EXTERN xdata volatile BYTE EPIE _AT_ 0xFE82;//0x3002;
EXTERN xdata volatile BYTE FRAMEH _AT_ 0xFE83;
EXTERN xdata volatile BYTE FRAMEL _AT_ 0xFE84;
EXTERN xdata volatile BYTE STINT _AT_ 0xFE85;//0x3005;
EXTERN xdata volatile BYTE STIE _AT_ 0xFE86;//0x3006;
EXTERN xdata volatile BYTE USBFADDR _AT_ 0xFE87;//0x3007;
EXTERN xdata volatile BYTE EP0RXTKN _AT_ 0xFE88;//0x3008;
EXTERN xdata volatile BYTE EP0RXCS _AT_ 0xFE89;//0x3009;
EXTERN xdata volatile BYTE EP0TXCS _AT_ 0xFE8A;//0x300A;
EXTERN xdata volatile BYTE EP0RXCNT _AT_ 0xFE8B;//0x300B; EP0RDCNT to EP0RXCNT
EXTERN xdata volatile BYTE EP0TXCNT _AT_ 0xFE8C;//0x300C; EP0TDCNT to EP0TXCNT
EXTERN xdata volatile BYTE EP0RXDAT _AT_ 0xFE8D;//0x300D; EP0RDATA to EP0RXDAT
EXTERN xdata volatile BYTE EP0TXDAT _AT_ 0xFE8E;//0x300E; EP0TDATA to EP0TXDAT
EXTERN xdata volatile BYTE EPFIFOCFG _AT_ 0xFE8F;
#define bmEPA_FIFO_NUM bmBIT0
#define bmEPA_FIFO_SIZE bmBIT1
#define bmEPB_FIFO_NUM bmBIT2
#define bmEPB_FIFO_SIZE bmBIT3
#define bmEPC_FIFO_NUM bmBIT4
#define bmEPC_FIFO_SIZE bmBIT5
#define bmEPD_FIFO_NUM bmBIT6
#define bmEPD_FIFO_SIZE bmBIT7
EXTERN xdata volatile BYTE EPACTRL _AT_ 0xFE90;//0x300F;
EXTERN xdata volatile BYTE EPBCTRL _AT_ 0xFE91;//0x3010;
EXTERN xdata volatile BYTE EPCCTRL _AT_ 0xFE92;
EXTERN xdata volatile BYTE EPDCTRL _AT_ 0xFE93;
EXTERN xdata volatile BYTE EPACS _AT_ 0xFE98;//0x3015;
EXTERN xdata volatile BYTE EPBCS _AT_ 0xFE99;//0x3016;
EXTERN xdata volatile BYTE EPCCS _AT_ 0xFE9A;
EXTERN xdata volatile BYTE EPDCS _AT_ 0xFE9B;
EXTERN xdata volatile BYTE ERRCNTLIM _AT_ 0xFE9C;
EXTERN xdata volatile BYTE EPACNT0L _AT_ 0xFEA0;
EXTERN xdata volatile BYTE EPBCNT0L _AT_ 0xFEA1;
EXTERN xdata volatile BYTE EPCCNT0L _AT_ 0xFEA2;
EXTERN xdata volatile BYTE EPDCNT0L _AT_ 0xFEA3;
EXTERN xdata volatile BYTE EPACNT1L _AT_ 0xFEA8;
EXTERN xdata volatile BYTE EPBCNT1L _AT_ 0xFEA9;
EXTERN xdata volatile BYTE EPCCNT1L _AT_ 0xFEAA;
EXTERN xdata volatile BYTE EPDCNT1L _AT_ 0xFEAB;
EXTERN xdata volatile BYTE EPACNTH _AT_ 0xFEB0;
EXTERN xdata volatile BYTE EPBCNTH _AT_ 0xFEB1;
EXTERN xdata volatile BYTE EPCCNTH _AT_ 0xFEB2;
EXTERN xdata volatile BYTE EPDCNTH _AT_ 0xFEB3;
EXTERN xdata volatile BYTE EPAFIFOCS _AT_ 0xFEB8;
EXTERN xdata volatile BYTE EPBFIFOCS _AT_ 0xFEB9;
EXTERN xdata volatile BYTE EPCFIFOCS _AT_ 0xFEBA;
EXTERN xdata volatile BYTE EPDFIFOCS _AT_ 0xFEBB;
#define bmFIFO_TOG bmBIT0
#define bmFIFO0_FULL bmBIT2
#define bmFIFO1_FULL bmBIT3
#define bmFIFO_TOG_WE bmBIT4
#define bmFIFO0_FULL_WE bmBIT6
#define bmFIFO1_FULL_WE bmBIT7
EXTERN xdata volatile BYTE PHYTEST _AT_ 0xFEBF;
#define TEST_PKT bmBIT0
#define TEST_SE0_NAK bmBIT1
#define TEST_J bmBIT2
#define TEST_K bmBIT3
// SPI Register
EXTERN xdata volatile BYTE SPI_DATA _AT_ 0xFEC0;
EXTERN xdata volatile BYTE SPI_CTL _AT_ 0xFEC1;
EXTERN xdata volatile BYTE SPI_ST _AT_ 0xFEC2;
//I2C Register
EXTERN xdata volatile BYTE I2C_CTL _AT_ 0xFEC8;
EXTERN xdata volatile BYTE I2C_CLK _AT_ 0xFEC9;
EXTERN xdata volatile BYTE I2C_STUS _AT_ 0xFECA;
EXTERN xdata volatile BYTE I2C_SADDR _AT_ 0xFECB;
EXTERN xdata volatile BYTE I2C_DBUF _AT_ 0xFECC;
EXTERN xdata volatile BYTE I2C_MABT _AT_ 0xFECD;
#undef EXTERN
#undef _AT_
#define LSB(word) (BYTE)((WORD)word &0x00FF)
#define MSB(word) (BYTE)(((WORD)word >> 8) & 0x00FF)
////////////////////////////////////////////////////////////////////////////////
#define USB_BUFF_SIZE 256
void UsbInit(void);
//void UsbDataWrite(BYTE *Writebuffer, BYTE BufferNo, UINT16 TxDataLen);
//UINT16 UsbDataRead(BYTE *Readbuffer, BYTE IntEvent);
void InitCPU();
BOOL DoRNG(DWORD dwInitial,BOOL bfreemode,BOOL bOut64bits,BYTE* out);
BOOL DoTDes(BYTE* in,BYTE * out ,WORD len ,BYTE desmode ,BOOL bEncrpty,BYTE* KEY );
void DoKPU(BOOL bAbove16K,BOOL bGenKey,BYTE saddr ,BYTE *status);
//#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -