?? usb_bulk_et.asm
字號:
;--------------------------------------------------------
; C_Compiler for ETOMS MCU
; Target MCU: ET44M210
;--------------------------------------------------------
; .module usb_bulk
;--------------------------------------------------------
; publics variables in this module
;--------------------------------------------------------
; .globl _main
; .globl _nLength
; .globl _byLengthL
; .globl _byLengthH
; .globl _byCount
; .globl _TempCount
; .globl _usb_byTemp
; .globl _nAddrBuf
; .globl _nTable
; .globl _nRomAdr
; .globl _nwLength
; .globl _nHwLength
; .globl _psz
; .globl _DelayMs
; .globl _DelayNs
; .globl _AddUsbSetReportSub
; .globl _AddUsbGetReportSub
; .globl _AddUsbInitialWorkSub
; .globl _AddUsbRt0x01Request
; .globl _AddUsbRt0x02Request
; .globl _AddUsbRt0x00Request
; .globl _AddUsbRt0x80Request
; .globl _AddUsbRt0x82Request
; .globl _AddUsbRt0x20Request
; .globl _AddUsbRt0x21Request
; .globl _AddUsbRt0x23Request
; .globl _AddUsbRt0xA0Request
; .globl _AddUsbRt0xA1Request
; .globl _AddUsbRt0xA3Request
; .globl _AddUsbBmRequestType
; .globl _AddUsbGetReportExpSub
; .globl _AddUsbEp1Sub
; .globl _AddUsbEp1WorkSub
; .globl _AddUsbEp2Sub
; .globl _AddUsbEp2WorkSub
; .globl _AddUsbEp3Sub
; .globl _AddUsbEp3WorkSub
; .globl _AddUsbBusResetSub
; .globl _AddUsbIdleIntSub
; .globl _AddUsbWakeup
; .globl _AddUsbSof
; .globl _AddUsbDeviceConfigOk
;--------------------------------------------------------
; special function registers
_KWUAIF EQU 0x12
_KWUBIF EQU 0x13
_RFINTF EQU 0x30
_IAC0 EQU 0x00
_HPC EQU 0x01
_LPC EQU 0x02
_STTS EQU 0x03
_STATUS EQU 0x03
_RAMBS0 EQU 0x04
_ROMPS EQU 0x05
_IAP0 EQU 0x06
_INDP0 EQU 0x06
_RAMBS1 EQU 0x07
_IAP1 EQU 0x08
_INDP1 EQU 0x08
_IAC1 EQU 0x09
_INDR1 EQU 0x09
_IAPADR EQU 0x0a
_TBLPTR EQU 0x0b
_LTBL EQU 0x0b
_TBHPTR EQU 0x0c
_HTBL EQU 0x0c
_STKPTR EQU 0x0d
_RPTC EQU 0x0e
_PRC EQU 0x0f
_TCC EQU 0x10
_INTF EQU 0x11
_KWUPAIF EQU 0x12
_KWUPBIF EQU 0x13
_PORTA EQU 0x14
_PTA EQU 0x14
_PORTB EQU 0x15
_PTB EQU 0x15
_PORTC EQU 0x16
_PTC EQU 0x16
_PORTD EQU 0x17
_PTD EQU 0x17
_PORTE EQU 0x18
_PTE EQU 0x18
_PORTF EQU 0x19
_PTF EQU 0x19
_LFRC EQU 0x1a
_HFRC EQU 0x1b
_LFRCB EQU 0x1c
_SPIRB EQU 0x1d
_SPIWB EQU 0x1e
_ADDATAH EQU 0x1f
_ADDATAL EQU 0x20
_DT0L EQU 0x21
_DTOH EQU 0x22
_PRD0L EQU 0x23
_PRD0H EQU 0x24
_DL0L EQU 0x25
_DL0H EQU 0x26
_DT1L EQU 0x27
_DT1H EQU 0x28
_PRD1L EQU 0x29
_PRD1H EQU 0x2a
_DL1L EQU 0x2b
_DL1H EQU 0x2c
_PRIE EQU 0x80
_INTE EQU 0x81
_KWUAIE EQU 0x82
_KWUBIE EQU 0x83
_EINTED EQU 0x84
_SPIC EQU 0x85
_IOCA EQU 0x86
_IOCB EQU 0x87
_IOCC EQU 0x88
_IOCD EQU 0x89
_IOCE EQU 0x8a
_IOCF EQU 0x8b
_PUCA EQU 0x8c
_PUCB EQU 0x8d
_PUCC EQU 0x8e
_PUCD EQU 0x85
_PUCE EQU 0x90
_PUCF EQU 0x91
_ODCB EQU 0x92
_TCCC EQU 0x93
_FRCC EQU 0x94
_WDT_CON EQU 0x95
_ADCAIS EQU 0x96
_ADCCR EQU 0x97
_PWMCR EQU 0x98
_RFINTE EQU 0x99
_HbmRequestType EQU 0x80 ;Bank1 Source:180
_HbRequest EQU 0x81 ;Bank1 Source:181
_HwValueL EQU 0x82 ;Bank1 Source:182
_HwValueH EQU 0x83 ;Bank1 Source:183
_HwIndexL EQU 0x84 ;Bank1 Source:184
_HwIndexH EQU 0x85 ;Bank1 Source:185
_HwLengthL EQU 0x86 ;Bank1 Source:186
_HwLengthH EQU 0x87 ;Bank1 Source:187
_HTBLL EQU 0x88 ;Bank1 Source:188
_HROMADRL EQU 0x89 ;Bank1 Source:189
_HROMADRH EQU 0x8a ;Bank1 Source:18a
_A_INTERFACE EQU 0x8b ;Bank1 Source:18b
_TEMP_UREG EQU 0x8c ;Bank1 Source:18c
_PROTOCOL EQU 0x8d ;Bank1 Source:18d
_IDLE_TIMER EQU 0x8e ;Bank1 Source:18e
_USB_STATUS EQU 0x8f ;Bank1 Source:18f
_HUB_STATUS EQU 0x8f ;Bank1 Source:18f
_FC_STATUS EQU 0x8f ;Bank1 Source:18f
_ADDRESS_BUFh EQU 0x90 ;Bank1 Source:190
_ADDRESS_BUFf EQU 0x91 ;Bank1 Source:191
_CTR_BUF EQU 0x92 ;Bank1 Source:192
_Reg_Adr EQU 0x93 ;Bank1 Source:193
_HEP1_CNT EQU 0x94 ;Bank1 Source:194
_STACK_IAP0 EQU 0x95 ;Bank1 Source:195
_bmRequestType EQU 0xc0 ;Bank1 Source:1c0
_bRequest EQU 0xc1 ;Bank1 Source:1c1
_wValueL EQU 0xc2 ;Bank1 Source:1c2
_wValueH EQU 0xc3 ;Bank1 Source:1c3
_wIndexL EQU 0xc4 ;Bank1 Source:1c4
_wIndexH EQU 0xc5 ;Bank1 Source:1c5
_wLengthL EQU 0xc6 ;Bank1 Source:1c6
_wLengthH EQU 0xc7 ;Bank1 Source:1c7
_TBLL EQU 0xc8 ;Bank1 Source:1c8
_ROMADRL EQU 0xc9 ;Bank1 Source:1c9
_ROMADRH EQU 0xca ;Bank1 Source:1ca
_STATUS_BUF EQU 0xcb ;Bank1 Source:1cb
_USBTR EQU 0xcc ;Bank1 Source:1cc
_GCNTR EQU 0xcd ;Bank1 Source:1cd
_EP1CNTR EQU 0xce ;Bank1 Source:1ce
_EP2CNTR EQU 0xcf ;Bank1 Source:1cf
_EP3CNTR EQU 0xd0 ;Bank1 Source:1d0
_EPINTR EQU 0xd1 ;Bank1 Source:1d1
_EPINTE EQU 0xd2 ;Bank1 Source:1d2
_STAINTR EQU 0xd3 ;Bank1 Source:1d3
_STAINTE EQU 0xd4 ;Bank1 Source:1d4
_FAR EQU 0xd5 ;Bank1 Source:1d5
_EP0RXTR EQU 0xd6 ;Bank1 Source:1d6
_EP0RXCSR EQU 0xd7 ;Bank1 Source:1d7
_EP0TXCSR EQU 0xd8 ;Bank1 Source:1d8
_EP1CSR EQU 0xd9 ;Bank1 Source:1d9
_EP2CSR EQU 0xda ;Bank1 Source:1da
_EP3CSR EQU 0xdb ;Bank1 Source:1db
_EP0RXCTR EQU 0xdc ;Bank1 Source:1dc
_EP0TXCTR EQU 0xdd ;Bank1 Source:1dd
_EP1CTR EQU 0xde ;Bank1 Source:1de
_EP2CTR EQU 0xdf ;Bank1 Source:1df
_EP3CTR EQU 0xe0 ;Bank1 Source:1e0
_EP0RXDAR EQU 0xe1 ;Bank1 Source:1e1
_EP0TXDAR EQU 0xe2 ;Bank1 Source:1e2
_EP1DAR EQU 0xe3 ;Bank1 Source:1e3
_EP2DAR EQU 0xe4 ;Bank1 Source:1e4
_EP3DAR EQU 0xe5 ;Bank1 Source:1e5
_HGSR EQU 0xe6 ;Bank1 Source:1e6
_HINTR EQU 0xe7 ;Bank1 Source:1e7
_HINTE EQU 0xe8 ;Bank1 Source:1e8
_HAR EQU 0xe9 ;Bank1 Source:1e9
_HEP0RXTR EQU 0xea ;Bank1 Source:1ea
_HEP0RXCSR EQU 0xeb ;Bank1 Source:1eb
_HEP0TXCSR EQU 0xec ;Bank1 Source:1ec
_HEP1TXCSR EQU 0xed ;Bank1 Source:1ed
_HEP0RXCTR EQU 0xee ;Bank1 Source:1ee
_HEP0TXCTR EQU 0xef ;Bank1 Source:1ef
_HEP0RXDAR EQU 0xf0 ;Bank1 Source:1f0
_HEP0TXDAR EQU 0xf1 ;Bank1 Source:1f1
_HEP1TXDAR EQU 0xf2 ;Bank1 Source:1f2
_HPCONR EQU 0xf3 ;Bank1 Source:1f3
_HPSTAR EQU 0xf4 ;Bank1 Source:1f4
_HSR EQU 0xf5 ;Bank1 Source:1f5
_HPSR1 EQU 0xf6 ;Bank1 Source:1f6
_HPSR2 EQU 0xf7 ;Bank1 Source:1f7
_HPSR3 EQU 0xf8 ;Bank1 Source:1f8
_HPSR4 EQU 0xf9 ;Bank1 Source:1f9
_HPSCR1 EQU 0xfa ;Bank1 Source:1fa
_HPSCR2 EQU 0xfb ;Bank1 Source:1fb
_HPSCR3 EQU 0xfc ;Bank1 Source:1fc
_HPSCR4 EQU 0xfd ;Bank1 Source:1fd
_FNLR EQU 0xfe ;Bank1 Source:1fe
_FNHR EQU 0xff ;Bank1 Source:1ff
_BulkState EQU 0x31
;--------------------------------------------------------
;--------------------------------------------------------
; internal ram data
; .area DSEG (DATA)
; _psz
; _psz_1
_nHwLength EQU 0x86 ;Bank1 Source:186
_nwLength EQU 0xc6 ;Bank1 Source:1c6
_nRomAdr EQU 0xc9 ;Bank1 Source:1c9
_nTable EQU 0x0b
_nAddrBuf EQU 0x90 ;Bank1 Source:190
_usb_byTemp EQU 0x92 ;Bank1 Source:192
_TempCount EQU 0x32
_byCount EQU 0x33
_byLengthH EQU 0x34
_byLengthL EQU 0x35
_nLength EQU 0x34
;--------------------------------------------------------
; Bit registers
; Allocated Registers
r0xA0 EQU 0xa0 ;bank0
r0xA1 EQU 0xa1 ;bank0
r0xA2 EQU 0xa2 ;bank0
r0xA3 EQU 0xa3 ;bank0
; Direct Registers
; Stack Register
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
; .area OSEG (OVR,DATA)
;--------------------------------------------------------
; Stack segment in internal ram
;--------------------------------------------------------
; .area SSEG (DATA)
;__start__stack:
; .ds 1
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
; .area ISEG (DATA)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
; .area XSEG (XDATA)
;--------------------------------------------------------
; Project Start
;--------------------------------------------------------
RORG 0x00
JMP __etcc_program_startup
;--------------------------------------------------------
; interrupt vector
;--------------------------------------------------------
; .area CSEG (CODE)
RORG 0xB0
__etcc_program_startup:
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
; .area GSINIT (CODE)
; .area GSFINAL (CODE)
; .area GSINIT (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
; .area CSEG (CODE)
;***
; pBlock Stats: dbName = M
;***
;entry: _main: ;Function start
; 1 exit point
;Using Bank: Bank0
;has an exit
;functions called:
; _UsbInitial
; _DelayMs
; _AddUsbEp1WorkSub
;; Starting pCode block
_main: ;Function start
; 1 exit point
DISI ;inline asm
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (17)
; PRIE = 0;
CLR _PRIE
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (18)
; INTE = 0;
CLR _INTE
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (19)
; INTF = 0;
CLR _INTF
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (21)
; HINTR = 5;
MOV A,#0x05
BANK 1
MOV _HINTR,A
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (22)
; BulkState = 0;
CLR _BulkState
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (24)
; UsbInitial();
CALL _UsbInitial
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (27)
; IAPADR = 0x0f;
MOV A,#0x0f
MOV _IAPADR,A
ENI ;inline asm
_00105_DS_usb_bulk_main:
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (35)
; DelayMs(10);
MOV A,#0x0a
BANK 0
CALL _DelayMs
BANK 1
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (37)
; while(M_ISBC(BulkState,CONFIG));
JBC _BulkState,0,_00105_DS_usb_bulk_main
_00113_DS_usb_bulk_main:
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (42)
; if(M_ISBS(BulkState,START_BULKIN))
JBC _BulkState,5,_00109_DS_usb_bulk_main
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (44)
; M_BC(BulkState,START_BULKIN);
BC _BulkState,5
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (45)
; AddUsbEp1WorkSub();
CALL _AddUsbEp1WorkSub
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (47)
; M_BS(EP1CSR,RXTXEN);
BS _EP1CSR,0
NOP ;inline asm
NOP ;inline asm
NOP ;inline asm
_00109_DS_usb_bulk_main:
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (51)
; if(M_ISBS(BulkState,START_BULKOUT))
JBC _BulkState,4,_00113_DS_usb_bulk_main
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (53)
; M_BC(BulkState,START_BULKOUT);
BC _BulkState,4
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (55)
; M_BC(EP2CSR,SESTALL);
BC _EP2CSR,1
NOP ;inline asm
NOP ;inline asm
NOP ;inline asm
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (57)
; M_BS(EP2CSR,RXTXEN);
BS _EP2CSR,0
NOP ;inline asm
NOP ;inline asm
NOP ;inline asm
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (58)
; M_NOP;
JMP _00113_DS_usb_bulk_main
JMP $
; exit point of _main
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbDeviceConfigOk: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbDeviceConfigOk: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (307)
; M_BS(BulkState,CONFIG);
BS _BulkState,0
RET
; exit point of _AddUsbDeviceConfigOk
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbSof: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbSof: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (302)
; }
RET
; exit point of _AddUsbSof
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbWakeup: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbWakeup: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (296)
; }
RET
; exit point of _AddUsbWakeup
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbIdleIntSub: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbIdleIntSub: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (290)
; }
RET
; exit point of _AddUsbIdleIntSub
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbBusResetSub: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbBusResetSub: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (284)
; }
RET
; exit point of _AddUsbBusResetSub
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbEp3WorkSub: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbEp3WorkSub: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (277)
; }
RET
; exit point of _AddUsbEp3WorkSub
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbEp3Sub: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbEp3Sub: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (272)
; }
RET
; exit point of _AddUsbEp3Sub
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbEp2WorkSub: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbEp2WorkSub: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (266)
; }
RET
; exit point of _AddUsbEp2WorkSub
BANK 0
;***
; pBlock Stats: dbName = C
;***
;entry: _AddUsbEp2Sub: ;Function start
; 1 exit point
;Using Bank: Bank1
;has an exit
;; Starting pCode block
_AddUsbEp2Sub: ;Function start
; 1 exit point
;#CSRC E:\Etoms Usb project design package\bulk mode\Demo Code\C\usb_bulk.c (246)
; if(M_ISBS(EP2CSR,SESTALL) || M_ISBS(EP2CSR,RXTXEN))
JBS _EP2CSR,1,_00223_DS_usb_bulk_AddUsbEp2Sub
JBC _EP2CSR,0,_00224_DS_usb_bulk_AddUsbEp2Sub
_00223_DS_usb_bulk_AddUsbEp2Sub:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -