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

📄 fw.lst

📁 赛普拉斯 68013芯片的固件驱动
💻 LST
📖 第 1 页 / 共 2 页
字号:
 209      =1  
 210      =1  typedef struct
 211      =1  {
 212      =1     BYTE   length;
 213      =1     BYTE   type;
 214      =1  }DSCR;
 215      =1  
 216      =1  typedef struct             // Device Descriptor
 217      =1  {
 218      =1     BYTE   length;          // Descriptor length ( = sizeof(DEVICEDSCR) )
 219      =1     BYTE   type;            // Decriptor type (Device = 1)
 220      =1     BYTE   spec_ver_minor;  // Specification Version (BCD) minor
 221      =1     BYTE   spec_ver_major;  // Specification Version (BCD) major
 222      =1     BYTE   dev_class;       // Device class
 223      =1     BYTE   sub_class;       // Device sub-class
 224      =1     BYTE   protocol;        // Device sub-sub-class
 225      =1     BYTE   max_packet;      // Maximum packet size
 226      =1     WORD   vendor_id;       // Vendor ID
 227      =1     WORD   product_id;      // Product ID
 228      =1     WORD   version_id;      // Product version ID
 229      =1     BYTE   mfg_str;         // Manufacturer string index
 230      =1     BYTE   prod_str;        // Product string index
 231      =1     BYTE   serialnum_str;   // Serial number string index
 232      =1     BYTE   configs;         // Number of configurations
 233      =1  }DEVICEDSCR;
 234      =1  
 235      =1  typedef struct             // Device Qualifier Descriptor
 236      =1  {
 237      =1     BYTE   length;          // Descriptor length ( = sizeof(DEVICEQUALDSCR) )
C51 COMPILER V8.06   FW                                                                    11/12/2007 15:20:26 PAGE 5   

 238      =1     BYTE   type;            // Decriptor type (Device Qualifier = 6)
 239      =1     BYTE   spec_ver_minor;  // Specification Version (BCD) minor
 240      =1     BYTE   spec_ver_major;  // Specification Version (BCD) major
 241      =1     BYTE   dev_class;       // Device class
 242      =1     BYTE   sub_class;       // Device sub-class
 243      =1     BYTE   protocol;        // Device sub-sub-class
 244      =1     BYTE   max_packet;      // Maximum packet size
 245      =1     BYTE   configs;         // Number of configurations
 246      =1     BYTE  reserved0;
 247      =1  }DEVICEQUALDSCR;
 248      =1  
 249      =1  typedef struct
 250      =1  {
 251      =1     BYTE   length;          // Configuration length ( = sizeof(CONFIGDSCR) )
 252      =1     BYTE   type;            // Descriptor type (Configuration = 2)
 253      =1     WORD   config_len;      // Configuration + End Points length
 254      =1     BYTE   interfaces;      // Number of interfaces
 255      =1     BYTE   index;           // Configuration number
 256      =1     BYTE   config_str;      // Configuration string
 257      =1     BYTE   attrib;          // Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu
 258      =1     BYTE   power;           // Power requirement (div 2 ma)
 259      =1  }CONFIGDSCR;
 260      =1  
 261      =1  typedef struct
 262      =1  {
 263      =1     BYTE   length;          // Interface descriptor length ( - sizeof(INTRFCDSCR) )
 264      =1     BYTE   type;            // Descriptor type (Interface = 4)
 265      =1     BYTE   index;           // Zero-based index of this interface
 266      =1     BYTE   alt_setting;     // Alternate setting
 267      =1     BYTE   ep_cnt;          // Number of end points 
 268      =1     BYTE   class;           // Interface class
 269      =1     BYTE   sub_class;       // Interface sub class
 270      =1     BYTE   protocol;        // Interface sub sub class
 271      =1     BYTE   interface_str;   // Interface descriptor string index
 272      =1  }INTRFCDSCR;
 273      =1  
 274      =1  typedef struct
 275      =1  {
 276      =1     BYTE   length;          // End point descriptor length ( = sizeof(ENDPNTDSCR) )
 277      =1     BYTE   type;            // Descriptor type (End point = 5)
 278      =1     BYTE   addr;            // End point address
 279      =1     BYTE   ep_type;         // End point type
 280      =1     BYTE   mp_L;            // Maximum packet size
 281      =1     BYTE   mp_H;
 282      =1     BYTE   interval;        // Interrupt polling interval
 283      =1  }ENDPNTDSCR;
 284      =1  
 285      =1  typedef struct
 286      =1  {
 287      =1     BYTE   length;          // String descriptor length
 288      =1     BYTE   type;            // Descriptor type
 289      =1  }STRINGDSCR;
 290      =1  
 291      =1  typedef struct
 292      =1  {
 293      =1     BYTE   cntrl;           // End point control register
 294      =1     BYTE   bytes;           // End point buffer byte count
 295      =1  }EPIOC;
 296      =1  
 297      =1  typedef struct 
 298      =1  {
 299      =1     BYTE   length;
C51 COMPILER V8.06   FW                                                                    11/12/2007 15:20:26 PAGE 6   

 300      =1     BYTE   *dat;
 301      =1     BYTE   count;
 302      =1     BYTE   status;
 303      =1  }I2CPCKT;
 304      =1  
 305      =1  //====================================================================
 306      =1  // Globals
 307      =1  //====================================================================
 308      =1  extern code BYTE   USB_AutoVector;
 309      =1  
 310      =1  extern WORD   pDeviceDscr;
 311      =1  extern WORD   pDeviceQualDscr;
 312      =1  extern WORD   pHighSpeedConfigDscr;
 313      =1  extern WORD   pFullSpeedConfigDscr; 
 314      =1  extern WORD   pConfigDscr;
 315      =1  extern WORD   pOtherConfigDscr;
 316      =1  extern WORD   pStringDscr;
 317      =1  
 318      =1  extern code DEVICEDSCR        DeviceDscr;
 319      =1  extern code DEVICEQUALDSCR    DeviceQualDscr;
 320      =1  extern code CONFIGDSCR        HighSpeedConfigDscr;
 321      =1  extern code CONFIGDSCR        FullSpeedConfigDscr;
 322      =1  extern code STRINGDSCR        StringDscr;
 323      =1  extern code DSCR              UserDscr;
 324      =1  
 325      =1  extern I2CPCKT   I2CPckt;
 326      =1  
 327      =1  //====================================================================
 328      =1  // Function Prototypes
 329      =1  //====================================================================
 330      =1  // fx2bug #ifdef CHIPREV_B
 331      =1  // fx2bug extern void EZUSB_IRQ_CLEAR(void);
 332      =1  // fx2bug #endif
 333      =1  
 334      =1  extern void EZUSB_Renum(void);
 335      =1  extern void EZUSB_Discon(BOOL renum);
 336      =1  
 337      =1  extern void EZUSB_Susp(void);
 338      =1  extern void EZUSB_Resume(void);
 339      =1  
 340      =1  extern void EZUSB_Delay1ms(void);
 341      =1  extern void EZUSB_Delay(WORD ms);
 342      =1  
 343      =1  extern CONFIGDSCR xdata*   EZUSB_GetConfigDscr(BYTE ConfigIdx);
 344      =1  extern INTRFCDSCR xdata*   EZUSB_GetIntrfcDscr(BYTE ConfigIdx, BYTE IntrfcIdx, BYTE AltSetting);
 345      =1  extern STRINGDSCR xdata*   EZUSB_GetStringDscr(BYTE StrIdx);
 346      =1  extern DSCR xdata*         EZUSB_GetDscr(BYTE index, DSCR* dscr, BYTE type);
 347      =1  
 348      =1  extern void EZUSB_InitI2C(void);
 349      =1  extern BOOL EZUSB_WriteI2C_(BYTE addr, BYTE length, BYTE xdata *dat);
 350      =1  extern BOOL EZUSB_ReadI2C_(BYTE addr, BYTE length, BYTE xdata *dat);
 351      =1  extern BOOL EZUSB_WriteI2C(BYTE addr, BYTE length, BYTE xdata *dat);
 352      =1  extern BOOL EZUSB_ReadI2C(BYTE addr, BYTE length, BYTE xdata *dat);
 353      =1  extern void EZUSB_WaitForEEPROMWrite(BYTE addr);
 354      =1  extern void modify_endpoint_stall(BYTE epid, BYTE stall);
 355      =1  
 356      =1  #endif   
   5          #include "fx2regs.h"
   1      =1  //-----------------------------------------------------------------------------
   2      =1  //   文件:      FX2regs.h
   3      =1  //   内容:      EZ-USB FX2 寄存器定义与位定义.
   4      =1  //-----------------------------------------------------------------------------
C51 COMPILER V8.06   FW                                                                    11/12/2007 15:20:26 PAGE 7   

   5      =1  
   6      =1  #ifndef FX2REGS_H   
   7      =1  #define FX2REGS_H
   8      =1  
   9      =1  
  10      =1  // The Ez-USB FX2 registers are defined here. We use FX2regs.h for register 
  11      =1  // address allocation by using "#define ALLOCATE_EXTERN". 
  12      =1  // When using "#define ALLOCATE_EXTERN", you get (for instance): 
  13      =1  // xdata volatile BYTE OUT7BUF[64]   _at_   0x7B40;
  14      =1  // Such lines are created from FX2.h by using the preprocessor. 
  15      =1  // Incidently, these lines will not generate any space in the resulting hex 
  16      =1  // file; they just bind the symbols to the addresses for compilation. 
  17      =1  // You just need to put "#define ALLOCATE_EXTERN" in your main program file; 
  18      =1  // i.e. fw.c or a stand-alone C source file. 
  19      =1  // Without "#define ALLOCATE_EXTERN", you just get the external reference: 
  20      =1  // extern xdata volatile BYTE OUT7BUF[64]   ;//   0x7B40;
  21      =1  // This uses the concatenation operator "##" to insert a comment "//" 
  22      =1  // to cut off the end of the line, "_at_   0x7B40;", which is not wanted.
  23      =1  
  24      =1  #ifdef ALLOCATE_EXTERN
           =1    #define EXTERN
           =1    #define _AT_ _at_
           =1 #else
  28      =1     #define EXTERN extern
  29      =1     #define _AT_ ;/ ## /
  30      =1  #endif
  31      =1  
  32      =1  EXTERN xdata volatile BYTE GPIF_WAVE_DATA    _AT_ 0xE400;
  33      =1  EXTERN xdata volatile BYTE RES_WAVEDATA_END  _AT_ 0xE480;
  34      =1  
  35      =1  //通用配置
  36      =1  EXTERN xdata volatile BYTE CPUCS             _AT_ 0xE600;  // CPU控制和状态
  37      =1  EXTERN xdata volatile BYTE IFCONFIG          _AT_ 0xE601;  // 接口配置(端口,GPIF,SLAVE FIFO)
  38      =1  EXTERN xdata volatile BYTE PINFLAGSAB        _AT_ 0xE602;  // 从属FIFO FLAGA FLAGB引脚配置
  39      =1  EXTERN xdata volatile BYTE PINFLAGSCD        _AT_ 0xE603;  // 从属FIFO FLAGA FLAGB引脚配置
  40      =1  EXTERN xdata volatile BYTE FIFORESET         _AT_ 0xE604;  // FIFO复位
  41      =1  EXTERN xdata volatile BYTE BREAKPT           _AT_ 0xE605;  // 断点
  42      =1  EXTERN xdata volatile BYTE BPADDRH           _AT_ 0xE606;  // 断点高位地址
  43      =1  EXTERN xdata volatile BYTE BPADDRL           _AT_ 0xE607;  // 断点低位地址
  44      =1  EXTERN xdata volatile BYTE UART230           _AT_ 0xE608;  // 设置230KB/S(T0,T1,T2)
  45      =1  EXTERN xdata volatile BYTE FIFOPINPOLAR      _AT_ 0xE609;  // SLAVE FIFO 接口引脚极性
  46      =1  EXTERN xdata volatile BYTE REVID             _AT_ 0xE60A;  // 修改ID
  47      =1  EXTERN xdata volatile BYTE REVCTL            _AT_ 0xE60B;  // 芯片版本控制
  48      =1  
  49      =1  //端点配置寄存器
  50      =1  
  51      =1  EXTERN xdata volatile BYTE EP1OUTCFG         _AT_ 0xE610;  // 端点1 OUT配置
  52      =1  EXTERN xdata volatile BYTE EP1INCFG          _AT_ 0xE611;  // 端点1 IN配置
  53      =1  EXTERN xdata volatile BYTE EP2CFG            _AT_ 0xE612;  // 端点2配置
  54      =1  EXTERN xdata volatile BYTE EP4CFG            _AT_ 0xE613;  // 端点4配置
  55      =1  EXTERN xdata volatile BYTE EP6CFG            _AT_ 0xE614;  // 端点6配置
  56      =1  EXTERN xdata volatile BYTE EP8CFG            _AT_ 0xE615;  // 端点8配置
  57      =1  EXTERN xdata volatile BYTE EP2FIFOCFG        _AT_ 0xE618;  // 端点2/SLAVE FIFO配置
  58      =1  EXTERN xdata volatile BYTE EP4FIFOCFG        _AT_ 0xE619;  // 端点4/SLAVE FIFO配置
  59      =1  EXTERN xdata volatile BYTE EP6FIFOCFG        _AT_ 0xE61A;  // 端点6/SLAVE FIFO配置
  60      =1  EXTERN xdata volatile BYTE EP8FIFOCFG        _AT_ 0xE61B;  // 端点8/SLAVE FIFO配置
  61      =1  EXTERN xdata volatile BYTE EP2AUTOINLENH     _AT_ 0xE620;  // 端点2 AUTOIN包长度高位
  62      =1  EXTERN xdata volatile BYTE EP2AUTOINLENL     _AT_ 0xE621;  // 端点2 AUTOIN包长度低位
  63      =1  EXTERN xdata volatile BYTE EP4AUTOINLENH     _AT_ 0xE622;  // 端点4 AUTOIN包长度高位
  64      =1  EXTERN xdata volatile BYTE EP4AUTOINLENL     _AT_ 0xE623;  // 端点4 AUTOIN包长度低位
  65      =1  EXTERN xdata volatile BYTE EP6AUTOINLENH     _AT_ 0xE624;  // 端点6 AUTOIN包长度高位
  66      =1  EXTERN xdata volatile BYTE EP6AUTOINLENL     _AT_ 0xE625;  // 端点6 AUTOIN包长度低位
C51 COMPILER V8.06   FW                                                                    11/12/2007 15:20:26 PAGE 8   

  67      =1  EXTERN xdata volatile BYTE EP8AUTOINLENH     _AT_ 0xE626;  // 端点8 AUTOIN包长度高位
  68      =1  EXTERN xdata volatile BYTE EP8AUTOINLENL     _AT_ 0xE627;  // 端点8 AUTOIN包长度低位
  69      =1  EXTERN xdata volatile BYTE EP2FIFOPFH        _AT_ 0xE630;  // 端点2/SLAVE FIFO 可编程成级标志的高位(高速

⌨️ 快捷键说明

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