📄 dscr.a51
字号:
;;-----------------------------------------------------------------------------
;; 文件: dscr.a51
;;-----------------------------------------------------------------------------
/*
DSCR_DEVICE equ 1 ;; 描述符类型: 设备
DSCR_CONFIG equ 2 ;; 描述符类型: 配置
DSCR_STRING equ 3 ;; 描述符类型: 字符串
DSCR_INTRFC equ 4 ;; 描述符类型: 接口
DSCR_ENDPNT equ 5 ;; 描述符类型: 端点
DSCR_DEVQUAL equ 6 ;; 描述符类型: 设备限定
DSCR_DEVICE_LEN equ 18 ;; 设备描述符长度
DSCR_CONFIG_LEN equ 9 ;; 描述符长度
DSCR_INTRFC_LEN equ 9 ;; 接口描述符长度
DSCR_ENDPNT_LEN equ 7 ;; 端点描述符长度
DSCR_DEVQUAL_LEN equ 10 ;; 设备限定描述符长度
ET_CONTROL equ 0 ;; 端点类型:控制
ET_ISO equ 1 ;; 端点类型:同步
ET_BULK equ 2 ;; 端点类型:批量
ET_INT equ 3 ;; 端点类型:中断
public DeviceDscr, DeviceQualDscr, HighSpeedConfigDscr, FullSpeedConfigDscr, StringDscr, UserDscr
DSCR SEGMENT CODE PAGE
rseg DSCR ;; 将描述符表置于片上存储器中
DeviceDscr: ;; 设备描述符
db DSCR_DEVICE_LEN ;; 描述符长度
db DSCR_DEVICE ;; 描述符类型
dw 0002H ;; 协议版本(BCD)
db 00H ;; 设备类
db 00H ;; 设备子类
db 00H ;; 设备子-子类
db 64 ;; 最大包长度
dw 4705H ;; 制造商ID(VID)
dw 0210H ;; 产品ID(PID)
dw 0000H ;; 产品版本
db 1 ;; 生产商字符串索引
db 2 ;; 产品字符串索引
db 0 ;; 序列号字符串索引
db 1 ;; 配置数
DeviceQualDscr: ;; 设备限定描述符
db DSCR_DEVQUAL_LEN ;; 描述符长度
db DSCR_DEVQUAL ;; 描述符类型
dw 0002H ;; 协议版本(BCD)
db 00H ;; 设备类
db 00H ;; 设备子类
db 00H ;; 设备子-子类
db 64 ;; 最大包长度
db 1 ;; 配置数
db 0 ;; 保留
HighSpeedConfigDscr: ;; 高速配置描述符
db DSCR_CONFIG_LEN ;; 描述符长度
db DSCR_CONFIG ;; 描述符类型
db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) mod 256 ;; 总长度 (LSB)
db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) / 256 ;; 总长度 (MSB)
db 1 ;; 接口数
db 1 ;; 配置数
db 0 ;; 配置字符串
db 10000000b ;; 属性(b7 - buspwr, b6 - selfpwr, b5 - rwu)
db 50 ;; 功率需求(除以2 ma)
;; 接口描述符
db DSCR_INTRFC_LEN ;; 描述符长度
db DSCR_INTRFC ;; 描述符类型
db 0 ;; 该接口基于0的索引
db 0 ;; 交替设置
db 4 ;; 端点数
db 0ffH ;; 接口类型
db 00H ;; 接口子类
db 00H ;; 接口子-子类
db 0 ;; 接口描述符字符串索引
;; 端点描述符(端点2)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 02H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 00H ;; 最大包长度(LSB)
db 02H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
;; 端点描述符(端点4)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 04H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 00H ;; 最大包长度(LSB)
db 02H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
;; 端点描述符(端点6)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 86H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 00H ;; 最大包长度(LSB)
db 02H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
;; 端点描述符(端点8)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 88H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 00H ;; 最大包长度(LSB)
db 02H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
HighSpeedConfigDscrEnd:
FullSpeedConfigDscr: ;; 全速配置描述符
db DSCR_CONFIG_LEN ;; 描述符长度
db DSCR_CONFIG ;; 描述符类型
db (FullSpeedConfigDscrEnd-FullSpeedConfigDscr) mod 256 ;; 总长度 (LSB)
db (FullSpeedConfigDscrEnd-FullSpeedConfigDscr) / 256 ;; 总长度 (MSB)
db 1 ;; 接口数
db 1 ;; 配置数
db 0 ;; 配置字符串
db 10000000b ;; 属性 (b7 - buspwr, b6 - selfpwr, b5 - rwu)
db 50 ;; 功率需求 (除以 2 ma)
db DSCR_INTRFC_LEN ;; 描述符长度
db DSCR_INTRFC ;; 描述符类型
db 0 ;; 该接口基于0的索引
db 0 ;; 交替设置
db 4 ;; 端点数
db 0ffH ;; 接口类型
db 00H ;; 接口子类
db 00H ;; 接口子-子类
db 0 ;; 接口描述符字符串索引
;; 端点描述符(端点2)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 02H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 40H ;; 最大包长度(LSB)
db 00H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
;; 端点描述符(端点4)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 04H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 40H ;; 最大包长度(LSB)
db 00H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
;; 端点描述符(端点6)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 86H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 40H ;; 最大包长度(LSB)
db 00H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
;; 端点描述符(端点8)
db DSCR_ENDPNT_LEN ;; 描述符长度
db DSCR_ENDPNT ;; 描述符类型
db 88H ;; 端点数及其方向
db ET_BULK ;; 端点类型
db 40H ;; 最大包长度(LSB)
db 00H ;; 最大包长度 (MSB)
db 00H ;; 轮询间隔
FullSpeedConfigDscrEnd:
StringDscr:
StringDscr0:
db StringDscr0End-StringDscr0 ;;设置描述符长度
db DSCR_STRING
db 09H,04H
StringDscr0End:
StringDscr1:
db StringDscr1End-StringDscr1 ;;设置描述符长度
db DSCR_STRING
db 'Y',00
db 'C',00
db 'L',00
db 'T',00
db 'e',00
db 'c',00
db 'h',00
StringDscr1End:
StringDscr2:
db StringDscr2End-StringDscr2 ;;设置描述符长度
db DSCR_STRING
db 'E',00
db 'Z',00
db '-',00
db 'U',00
db 'S',00
db 'B',00
db ' ',00
db 'F',00
db 'X',00
db '2',00
StringDscr2End:
UserDscr:
dw 0000H
end
*/
/*
中断描述符
;;-----------------------------------------------------------------------------
;; File: dscr.a51
;; Contents: This file contains descriptor data tables.
;;
;; Copyright (c) 1997 AnchorChips, Inc. All rights reserved
;;-----------------------------------------------------------------------------
DSCR_DEVICE equ 1 ;; Descriptor type: Device
DSCR_CONFIG equ 2 ;; Descriptor type: Configuration
DSCR_STRING equ 3 ;; Descriptor type: String
DSCR_INTRFC equ 4 ;; Descriptor type: Interface
DSCR_ENDPNT equ 5 ;; Descriptor type: Endpoint
DSCR_DEVQUAL equ 6 ;; Descriptor type: Device Qualifier
DSCR_DEVICE_LEN equ 18
DSCR_CONFIG_LEN equ 9
DSCR_INTRFC_LEN equ 9
DSCR_ENDPNT_LEN equ 7
DSCR_DEVQUAL_LEN equ 10
ET_CONTROL equ 0 ;; Endpoint type: Control
ET_ISO equ 1 ;; Endpoint type: Isochronous
ET_BULK equ 2 ;; Endpoint type: Bulk
ET_INT equ 3 ;; Endpoint type: Interrupt
public DeviceDscr, DeviceQualDscr, HighSpeedConfigDscr, FullSpeedConfigDscr, StringDscr, UserDscr
DSCR SEGMENT CODE PAGE
;;-----------------------------------------------------------------------------
;; Global Variables
;;-----------------------------------------------------------------------------
rseg DSCR ;; locate the descriptor table in on-part memory.
DeviceDscr:
db DSCR_DEVICE_LEN ;; Descriptor length
db DSCR_DEVICE ;; Decriptor type
dw 0002H ;; Specification Version (BCD)
db 00H ;; Device class
db 00H ;; Device sub-class
db 00H ;; Device sub-sub-class
db 64 ;; Maximum packet size
dw 4705H ;; Vendor ID
dw 0210H ;; Product ID (Sample Device)
dw 0000H ;; Product version ID
db 1 ;; Manufacturer string index
db 2 ;; Product string index
db 0 ;; Serial number string index
db 1 ;; Number of configurations
DeviceQualDscr:
db DSCR_DEVQUAL_LEN ;; Descriptor length
db DSCR_DEVQUAL ;; Decriptor type
dw 0002H ;; Specification Version (BCD)
db 00H ;; Device class
db 00H ;; Device sub-class
db 00H ;; Device sub-sub-class
db 64 ;; Maximum packet size
db 1 ;; Number of configurations
db 0 ;; Reserved
HighSpeedConfigDscr:
db DSCR_CONFIG_LEN ;; Descriptor length
db DSCR_CONFIG ;; Descriptor type
db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) mod 256 ;; Total Length (LSB)
db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) / 256 ;; Total Length (MSB)
db 1 ;; Number of interfaces
db 1 ;; Configuration number
db 0 ;; Configuration string
db 10000000b ;; Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu)
db 50 ;; Power requirement (div 2 ma)
;; Interface Descriptor
db DSCR_INTRFC_LEN ;; Descriptor length
db DSCR_INTRFC ;; Descriptor type
db 0 ;; Zero-based index of this interface
db 0 ;; Alternate setting
db 2 ;; Number of end points
db 0ffH ;; Interface class
db 00H ;; Interface sub class
db 00H ;; Interface sub sub class
db 0 ;; Interface descriptor string index
;; Endpoint Descriptor
db DSCR_ENDPNT_LEN ;; Descriptor length
db DSCR_ENDPNT ;; Descriptor type
db 82H ;; Endpoint number, and direction
db ET_INT ;; Endpoint type
db 00H ;; Maximun packet size (LSB)
db 02H ;; Max packect size (MSB)
db 10H ;; Polling interval
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -