📄 fx2regs.h
字号:
/* -*- c++ -*- *//*----------------------------------------------------------------------------- * FX2 register definitions *----------------------------------------------------------------------------- * Code taken from USRP2 firmware (GNU Radio Project), version 3.0.2, * Copyright 2003 Free Software Foundation, Inc. *----------------------------------------------------------------------------- * This code is part of usbjtag. usbjtag is free software; you can redistribute * it and/or modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the License, * or (at your option) any later version. usbjtag is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. You should have received a * copy of the GNU General Public License along with this program in the file * COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin * St, Fifth Floor, Boston, MA 02110-1301 USA *----------------------------------------------------------------------------- *//*//-----------------------------------------------------------------------------// File: FX2regs.h// Contents: EZ-USB FX2 register declarations and bit mask definitions.//// $Archive: /USB/Target/Inc/fx2regs.h $// $Date: 2006-09-13 14:30:04 -0700 (Wed, 13 Sep 2006) $// $Revision: 3534 $////// Copyright (c) 2000 Cypress Semiconductor, All rights reserved//-----------------------------------------------------------------------------*/#ifndef FX2REGS_H /* Header Sentry */#define FX2REGS_H#define ALLOCATE_EXTERN // required for "right thing to happen" with fx2regs.h/*//-----------------------------------------------------------------------------// FX2 Related Register Assignments//-----------------------------------------------------------------------------// The Ez-USB FX2 registers are defined here. We use FX2regs.h for register // address allocation by using "#define ALLOCATE_EXTERN". // When using "#define ALLOCATE_EXTERN", you get (for instance): // xdata volatile BYTE OUT7BUF[64] _at_ 0x7B40;// Such lines are created from FX2.h by using the preprocessor. // Incidently, these lines will not generate any space in the resulting hex // file; they just bind the symbols to the addresses for compilation. // You just need to put "#define ALLOCATE_EXTERN" in your main program file; // i.e. fw.c or a stand-alone C source file. // Without "#define ALLOCATE_EXTERN", you just get the external reference: // extern xdata volatile BYTE OUT7BUF[64] ;// 0x7B40;// This uses the concatenation operator "##" to insert a comment "//" // to cut off the end of the line, "_at_ 0x7B40;", which is not wanted.*/#ifdef ALLOCATE_EXTERN#define EXTERN#define _AT_(a) at a#else#define EXTERN extern#define _AT_ ;/ ## /#endiftypedef unsigned char BYTE;typedef unsigned short WORD;EXTERN xdata _AT_(0xE400) volatile BYTE GPIF_WAVE_DATA[128];EXTERN xdata _AT_(0xE480) volatile BYTE RES_WAVEDATA_END ;// General ConfigurationEXTERN xdata _AT_(0xE600) volatile BYTE CPUCS ; // Control & StatusEXTERN xdata _AT_(0xE601) volatile BYTE IFCONFIG ; // Interface ConfigurationEXTERN xdata _AT_(0xE602) volatile BYTE PINFLAGSAB ; // FIFO FLAGA and FLAGB AssignmentsEXTERN xdata _AT_(0xE603) volatile BYTE PINFLAGSCD ; // FIFO FLAGC and FLAGD AssignmentsEXTERN xdata _AT_(0xE604) volatile BYTE FIFORESET ; // Restore FIFOS to default stateEXTERN xdata _AT_(0xE605) volatile BYTE BREAKPT ; // BreakpointEXTERN xdata _AT_(0xE606) volatile BYTE BPADDRH ; // Breakpoint Address HEXTERN xdata _AT_(0xE607) volatile BYTE BPADDRL ; // Breakpoint Address LEXTERN xdata _AT_(0xE608) volatile BYTE UART230 ; // 230 Kbaud clock for T0,T1,T2EXTERN xdata _AT_(0xE609) volatile BYTE FIFOPINPOLAR ; // FIFO polaritiesEXTERN xdata _AT_(0xE60A) volatile BYTE REVID ; // Chip RevisionEXTERN xdata _AT_(0xE60B) volatile BYTE REVCTL ; // Chip Revision Control// Endpoint ConfigurationEXTERN xdata _AT_(0xE610) volatile BYTE EP1OUTCFG ; // Endpoint 1-OUT ConfigurationEXTERN xdata _AT_(0xE611) volatile BYTE EP1INCFG ; // Endpoint 1-IN ConfigurationEXTERN xdata _AT_(0xE612) volatile BYTE EP2CFG ; // Endpoint 2 ConfigurationEXTERN xdata _AT_(0xE613) volatile BYTE EP4CFG ; // Endpoint 4 ConfigurationEXTERN xdata _AT_(0xE614) volatile BYTE EP6CFG ; // Endpoint 6 ConfigurationEXTERN xdata _AT_(0xE615) volatile BYTE EP8CFG ; // Endpoint 8 ConfigurationEXTERN xdata _AT_(0xE618) volatile BYTE EP2FIFOCFG ; // Endpoint 2 FIFO configurationEXTERN xdata _AT_(0xE619) volatile BYTE EP4FIFOCFG ; // Endpoint 4 FIFO configurationEXTERN xdata _AT_(0xE61A) volatile BYTE EP6FIFOCFG ; // Endpoint 6 FIFO configurationEXTERN xdata _AT_(0xE61B) volatile BYTE EP8FIFOCFG ; // Endpoint 8 FIFO configurationEXTERN xdata _AT_(0xE620) volatile BYTE EP2AUTOINLENH ; // Endpoint 2 Packet Length H (IN only)EXTERN xdata _AT_(0xE621) volatile BYTE EP2AUTOINLENL ; // Endpoint 2 Packet Length L (IN only)EXTERN xdata _AT_(0xE622) volatile BYTE EP4AUTOINLENH ; // Endpoint 4 Packet Length H (IN only)EXTERN xdata _AT_(0xE623) volatile BYTE EP4AUTOINLENL ; // Endpoint 4 Packet Length L (IN only)EXTERN xdata _AT_(0xE624) volatile BYTE EP6AUTOINLENH ; // Endpoint 6 Packet Length H (IN only)EXTERN xdata _AT_(0xE625) volatile BYTE EP6AUTOINLENL ; // Endpoint 6 Packet Length L (IN only)EXTERN xdata _AT_(0xE626) volatile BYTE EP8AUTOINLENH ; // Endpoint 8 Packet Length H (IN only)EXTERN xdata _AT_(0xE627) volatile BYTE EP8AUTOINLENL ; // Endpoint 8 Packet Length L (IN only)EXTERN xdata _AT_(0xE630) volatile BYTE EP2FIFOPFH ; // EP2 Programmable Flag trigger HEXTERN xdata _AT_(0xE631) volatile BYTE EP2FIFOPFL ; // EP2 Programmable Flag trigger LEXTERN xdata _AT_(0xE632) volatile BYTE EP4FIFOPFH ; // EP4 Programmable Flag trigger HEXTERN xdata _AT_(0xE633) volatile BYTE EP4FIFOPFL ; // EP4 Programmable Flag trigger LEXTERN xdata _AT_(0xE634) volatile BYTE EP6FIFOPFH ; // EP6 Programmable Flag trigger HEXTERN xdata _AT_(0xE635) volatile BYTE EP6FIFOPFL ; // EP6 Programmable Flag trigger LEXTERN xdata _AT_(0xE636) volatile BYTE EP8FIFOPFH ; // EP8 Programmable Flag trigger HEXTERN xdata _AT_(0xE637) volatile BYTE EP8FIFOPFL ; // EP8 Programmable Flag trigger LEXTERN xdata _AT_(0xE640) volatile BYTE EP2ISOINPKTS ; // EP2 (if ISO) IN Packets per frame (1-3)EXTERN xdata _AT_(0xE641) volatile BYTE EP4ISOINPKTS ; // EP4 (if ISO) IN Packets per frame (1-3)EXTERN xdata _AT_(0xE642) volatile BYTE EP6ISOINPKTS ; // EP6 (if ISO) IN Packets per frame (1-3)EXTERN xdata _AT_(0xE643) volatile BYTE EP8ISOINPKTS ; // EP8 (if ISO) IN Packets per frame (1-3)EXTERN xdata _AT_(0xE648) volatile BYTE INPKTEND ; // Force IN Packet EndEXTERN xdata _AT_(0xE649) volatile BYTE OUTPKTEND ; // Force OUT Packet End// InterruptsEXTERN xdata _AT_(0xE650) volatile BYTE EP2FIFOIE ; // Endpoint 2 Flag Interrupt EnableEXTERN xdata _AT_(0xE651) volatile BYTE EP2FIFOIRQ ; // Endpoint 2 Flag Interrupt RequestEXTERN xdata _AT_(0xE652) volatile BYTE EP4FIFOIE ; // Endpoint 4 Flag Interrupt EnableEXTERN xdata _AT_(0xE653) volatile BYTE EP4FIFOIRQ ; // Endpoint 4 Flag Interrupt RequestEXTERN xdata _AT_(0xE654) volatile BYTE EP6FIFOIE ; // Endpoint 6 Flag Interrupt EnableEXTERN xdata _AT_(0xE655) volatile BYTE EP6FIFOIRQ ; // Endpoint 6 Flag Interrupt RequestEXTERN xdata _AT_(0xE656) volatile BYTE EP8FIFOIE ; // Endpoint 8 Flag Interrupt EnableEXTERN xdata _AT_(0xE657) volatile BYTE EP8FIFOIRQ ; // Endpoint 8 Flag Interrupt RequestEXTERN xdata _AT_(0xE658) volatile BYTE IBNIE ; // IN-BULK-NAK Interrupt EnableEXTERN xdata _AT_(0xE659) volatile BYTE IBNIRQ ; // IN-BULK-NAK interrupt RequestEXTERN xdata _AT_(0xE65A) volatile BYTE NAKIE ; // Endpoint Ping NAK interrupt EnableEXTERN xdata _AT_(0xE65B) volatile BYTE NAKIRQ ; // Endpoint Ping NAK interrupt RequestEXTERN xdata _AT_(0xE65C) volatile BYTE USBIE ; // USB Int EnablesEXTERN xdata _AT_(0xE65D) volatile BYTE USBIRQ ; // USB Interrupt RequestsEXTERN xdata _AT_(0xE65E) volatile BYTE EPIE ; // Endpoint Interrupt EnablesEXTERN xdata _AT_(0xE65F) volatile BYTE EPIRQ ; // Endpoint Interrupt RequestsEXTERN xdata _AT_(0xE660) volatile BYTE GPIFIE ; // GPIF Interrupt EnableEXTERN xdata _AT_(0xE661) volatile BYTE GPIFIRQ ; // GPIF Interrupt RequestEXTERN xdata _AT_(0xE662) volatile BYTE USBERRIE ; // USB Error Interrupt EnablesEXTERN xdata _AT_(0xE663) volatile BYTE USBERRIRQ ; // USB Error Interrupt RequestsEXTERN xdata _AT_(0xE664) volatile BYTE ERRCNTLIM ; // USB Error counter and limitEXTERN xdata _AT_(0xE665) volatile BYTE CLRERRCNT ; // Clear Error Counter EC[3..0]EXTERN xdata _AT_(0xE666) volatile BYTE INT2IVEC ; // Interupt 2 (USB) AutovectorEXTERN xdata _AT_(0xE667) volatile BYTE INT4IVEC ; // Interupt 4 (FIFOS & GPIF) AutovectorEXTERN xdata _AT_(0xE668) volatile BYTE INTSETUP ; // Interrupt 2&4 Setup// Input/OutputEXTERN xdata _AT_(0xE670) volatile BYTE PORTACFG ; // I/O PORTA Alternate ConfigurationEXTERN xdata _AT_(0xE671) volatile BYTE PORTCCFG ; // I/O PORTC Alternate ConfigurationEXTERN xdata _AT_(0xE672) volatile BYTE PORTECFG ; // I/O PORTE Alternate ConfigurationEXTERN xdata _AT_(0xE678) volatile BYTE I2CS ; // Control & StatusEXTERN xdata _AT_(0xE679) volatile BYTE I2DAT ; // DataEXTERN xdata _AT_(0xE67A) volatile BYTE I2CTL ; // I2C ControlEXTERN xdata _AT_(0xE67B) volatile BYTE XAUTODAT1 ; // Autoptr1 MOVX accessEXTERN xdata _AT_(0xE67C) volatile BYTE XAUTODAT2 ; // Autoptr2 MOVX access#define EXTAUTODAT1 XAUTODAT1#define EXTAUTODAT2 XAUTODAT2// USB ControlEXTERN xdata _AT_(0xE680) volatile BYTE USBCS ; // USB Control & StatusEXTERN xdata _AT_(0xE681) volatile BYTE SUSPEND ; // Put chip into suspendEXTERN xdata _AT_(0xE682) volatile BYTE WAKEUPCS ; // Wakeup source and polarityEXTERN xdata _AT_(0xE683) volatile BYTE TOGCTL ; // Toggle ControlEXTERN xdata _AT_(0xE684) volatile BYTE USBFRAMEH ; // USB Frame count HEXTERN xdata _AT_(0xE685) volatile BYTE USBFRAMEL ; // USB Frame count LEXTERN xdata _AT_(0xE686) volatile BYTE MICROFRAME ; // Microframe count, 0-7EXTERN xdata _AT_(0xE687) volatile BYTE FNADDR ; // USB Function address// EndpointsEXTERN xdata _AT_(0xE68A) volatile BYTE EP0BCH ; // Endpoint 0 Byte Count HEXTERN xdata _AT_(0xE68B) volatile BYTE EP0BCL ; // Endpoint 0 Byte Count LEXTERN xdata _AT_(0xE68D) volatile BYTE EP1OUTBC ; // Endpoint 1 OUT Byte CountEXTERN xdata _AT_(0xE68F) volatile BYTE EP1INBC ; // Endpoint 1 IN Byte CountEXTERN xdata _AT_(0xE690) volatile BYTE EP2BCH ; // Endpoint 2 Byte Count HEXTERN xdata _AT_(0xE691) volatile BYTE EP2BCL ; // Endpoint 2 Byte Count LEXTERN xdata _AT_(0xE694) volatile BYTE EP4BCH ; // Endpoint 4 Byte Count HEXTERN xdata _AT_(0xE695) volatile BYTE EP4BCL ; // Endpoint 4 Byte Count LEXTERN xdata _AT_(0xE698) volatile BYTE EP6BCH ; // Endpoint 6 Byte Count HEXTERN xdata _AT_(0xE699) volatile BYTE EP6BCL ; // Endpoint 6 Byte Count LEXTERN xdata _AT_(0xE69C) volatile BYTE EP8BCH ; // Endpoint 8 Byte Count HEXTERN xdata _AT_(0xE69D) volatile BYTE EP8BCL ; // Endpoint 8 Byte Count LEXTERN xdata _AT_(0xE6A0) volatile BYTE EP0CS ; // Endpoint Control and StatusEXTERN xdata _AT_(0xE6A1) volatile BYTE EP1OUTCS ; // Endpoint 1 OUT Control and StatusEXTERN xdata _AT_(0xE6A2) volatile BYTE EP1INCS ; // Endpoint 1 IN Control and StatusEXTERN xdata _AT_(0xE6A3) volatile BYTE EP2CS ; // Endpoint 2 Control and StatusEXTERN xdata _AT_(0xE6A4) volatile BYTE EP4CS ; // Endpoint 4 Control and StatusEXTERN xdata _AT_(0xE6A5) volatile BYTE EP6CS ; // Endpoint 6 Control and StatusEXTERN xdata _AT_(0xE6A6) volatile BYTE EP8CS ; // Endpoint 8 Control and StatusEXTERN xdata _AT_(0xE6A7) volatile BYTE EP2FIFOFLGS ; // Endpoint 2 FlagsEXTERN xdata _AT_(0xE6A8) volatile BYTE EP4FIFOFLGS ; // Endpoint 4 FlagsEXTERN xdata _AT_(0xE6A9) volatile BYTE EP6FIFOFLGS ; // Endpoint 6 FlagsEXTERN xdata _AT_(0xE6AA) volatile BYTE EP8FIFOFLGS ; // Endpoint 8 FlagsEXTERN xdata _AT_(0xE6AB) volatile BYTE EP2FIFOBCH ; // EP2 FIFO total byte count HEXTERN xdata _AT_(0xE6AC) volatile BYTE EP2FIFOBCL ; // EP2 FIFO total byte count LEXTERN xdata _AT_(0xE6AD) volatile BYTE EP4FIFOBCH ; // EP4 FIFO total byte count HEXTERN xdata _AT_(0xE6AE) volatile BYTE EP4FIFOBCL ; // EP4 FIFO total byte count LEXTERN xdata _AT_(0xE6AF) volatile BYTE EP6FIFOBCH ; // EP6 FIFO total byte count HEXTERN xdata _AT_(0xE6B0) volatile BYTE EP6FIFOBCL ; // EP6 FIFO total byte count LEXTERN xdata _AT_(0xE6B1) volatile BYTE EP8FIFOBCH ; // EP8 FIFO total byte count HEXTERN xdata _AT_(0xE6B2) volatile BYTE EP8FIFOBCL ; // EP8 FIFO total byte count LEXTERN xdata _AT_(0xE6B3) volatile BYTE SUDPTRH ; // Setup Data Pointer high address byteEXTERN xdata _AT_(0xE6B4) volatile BYTE SUDPTRL ; // Setup Data Pointer low address byteEXTERN xdata _AT_(0xE6B5) volatile BYTE SUDPTRCTL ; // Setup Data Pointer Auto ModeEXTERN xdata _AT_(0xE6B8) volatile BYTE SETUPDAT[8] ; // 8 bytes of SETUP data// GPIFEXTERN xdata _AT_(0xE6C0) volatile BYTE GPIFWFSELECT ; // Waveform SelectorEXTERN xdata _AT_(0xE6C1) volatile BYTE GPIFIDLECS ; // GPIF Done, GPIF IDLE drive modeEXTERN xdata _AT_(0xE6C2) volatile BYTE GPIFIDLECTL ; // Inactive Bus, CTL statesEXTERN xdata _AT_(0xE6C3) volatile BYTE GPIFCTLCFG ; // CTL OUT pin driveEXTERN xdata _AT_(0xE6C4) volatile BYTE GPIFADRH ; // GPIF Address HEXTERN xdata _AT_(0xE6C5) volatile BYTE GPIFADRL ; // GPIF Address LEXTERN xdata _AT_(0xE6CE) volatile BYTE GPIFTCB3 ; // GPIF Transaction Count Byte 3EXTERN xdata _AT_(0xE6CF) volatile BYTE GPIFTCB2 ; // GPIF Transaction Count Byte 2EXTERN xdata _AT_(0xE6D0) volatile BYTE GPIFTCB1 ; // GPIF Transaction Count Byte 1EXTERN xdata _AT_(0xE6D1) volatile BYTE GPIFTCB0 ; // GPIF Transaction Count Byte 0#define EP2GPIFTCH GPIFTCB1 // these are here for backwards compatibility#define EP2GPIFTCL GPIFTCB0 // before REVE silicon (ie. REVB and REVD)#define EP4GPIFTCH GPIFTCB1 // these are here for backwards compatibility#define EP4GPIFTCL GPIFTCB0 // before REVE silicon (ie. REVB and REVD)#define EP6GPIFTCH GPIFTCB1 // these are here for backwards compatibility#define EP6GPIFTCL GPIFTCB0 // before REVE silicon (ie. REVB and REVD)#define EP8GPIFTCH GPIFTCB1 // these are here for backwards compatibility#define EP8GPIFTCL GPIFTCB0 // before REVE silicon (ie. REVB and REVD)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -