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

📄 d12_setup.lis

📁 D12固件程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module D12_setup.c
                        .area data(ram, con, rel)
 0000           _StandardDeviceRequest::
 0000                   .blkw 1
                        .area idata
 0000 1200              .word PL_get_status
                        .area data(ram, con, rel)
 0002                   .blkw 1
                        .area idata
 0002 1000              .word PL_clear_feature
                        .area data(ram, con, rel)
 0004                   .blkw 1
                        .area idata
 0004 0E00              .word PL_void_function
                        .area data(ram, con, rel)
 0006                   .blkw 1
                        .area idata
 0006 0C00              .word PL_set_feature
                        .area data(ram, con, rel)
 0008                   .blkw 1
                        .area idata
 0008 0E00              .word PL_void_function
                        .area data(ram, con, rel)
 000A                   .blkw 1
                        .area idata
 000A 0A00              .word PL_set_address
                        .area data(ram, con, rel)
 000C                   .blkw 1
                        .area idata
 000C 0800              .word PL_get_descriptor
                        .area data(ram, con, rel)
 000E                   .blkw 1
                        .area idata
 000E 0E00              .word PL_void_function
                        .area data(ram, con, rel)
 0010                   .blkw 1
                        .area idata
 0010 0600              .word PL_get_configuration
                        .area data(ram, con, rel)
 0012                   .blkw 1
                        .area idata
 0012 0400              .word PL_set_configuration
                        .area data(ram, con, rel)
 0014                   .blkw 1
                        .area idata
 0014 0200              .word PL_get_interface
                        .area data(ram, con, rel)
 0016                   .blkw 1
                        .area idata
 0016 0000              .word PL_set_interface
                        .area data(ram, con, rel)
 0018                   .blkw 1
                        .area idata
 0018 0E00              .word PL_void_function
                        .area data(ram, con, rel)
 001A                   .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb/d12setup.h
 001A                   .dbsym e StandardDeviceRequest _StandardDeviceRequest A[26:13]pfV
                        .area lit(rom, con, rel)
 0000           _device_descriptor::
 0000 1201              .byte 18,1
 0002 1001              .byte 16,1
 0004 DC00              .byte 220,0
 0006 0010              .byte 0,16
 0008 7104              .byte 'q,4
 000A 9008              .byte 144,8
 000C 0001              .byte 0,1
 000E 0000              .byte 0,0
 0010 0001              .byte 0,1
 0012                   .dbsym e device_descriptor _device_descriptor A[18:18]kc
 0012           _Configuration_Descriptor::
 0012 0902              .byte 9,2
 0014 2E00              .byte 46,0
 0016 0101              .byte 1,1
 0018 0020              .byte 0,32
 001A 64                .byte 'd
 001B                   .dbsym e Configuration_Descriptor _Configuration_Descriptor A[9:9]kc
 001B           _Interface_Descriptor::
 001B 0904              .byte 9,4
 001D 0000              .byte 0,0
 001F 04DC              .byte 4,220
 0021 A0B0              .byte 160,176
 0023 00                .byte 0
 0024                   .dbsym e Interface_Descriptor _Interface_Descriptor A[9:9]kc
 0024           _Endpoint1_out_Descriptor::
 0024 0705              .byte 7,5
 0026 0103              .byte 1,3
 0028 1000              .byte 16,0
 002A 01                .byte 1
 002B                   .dbsym e Endpoint1_out_Descriptor _Endpoint1_out_Descriptor A[7:7]kc
 002B           _Endpoint1_in_Descriptor::
 002B 0705              .byte 7,5
 002D 8103              .byte 129,3
 002F 1000              .byte 16,0
 0031 01                .byte 1
 0032                   .dbsym e Endpoint1_in_Descriptor _Endpoint1_in_Descriptor A[7:7]kc
 0032           _Endpoint2_out_Descriptor::
 0032 0705              .byte 7,5
 0034 0202              .byte 2,2
 0036 4000              .byte 64,0
 0038 01                .byte 1
 0039                   .dbsym e Endpoint2_out_Descriptor _Endpoint2_out_Descriptor A[7:7]kc
 0039           _Endpoint2_in_Descriptor::
 0039 0705              .byte 7,5
 003B 8202              .byte 130,2
 003D 4000              .byte 64,0
 003F 01                .byte 1
 0040                   .dbsym e Endpoint2_in_Descriptor _Endpoint2_in_Descriptor A[7:7]kc
                        .area text(rom, con, rel)
 0000                   .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb/d12setup.h
 0000                   .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12_setup.c
 0000                   .dbfunc e Setup_control _Setup_control fV
 0000           ;              p -> R10,R11
 0000           ;              j -> R22
 0000           ;              i -> R20
                        .even
 0000           _Setup_control::
 0000 00D0              rcall push_gset3
 0002                   .dbline -1
 0002                   .dbline 9
 0002           ; #include "io8515v.h"
 0002           ; #include "d12head.h"
 0002           ; #include "d12setup.h"
 0002           ; 
 0002           ; TRANSMIT_STRUCT XmtBuff;
 0002           ; ///int bconfig;
 0002           ; 
 0002           ; void Setup_control(void)
 0002           ; {
 0002                   .dbline 11
 0002           ;       char i,j,*p;
 0002           ;       D12_COMMAND = 0x00;// 选择端点0(指针指向0位置)
 0002 2224              clr R2
 0004 2092017F          sts 32513,R2
 0008                   .dbline 12
 0008           ;       cwait;
 0008 0000              nop
 000A                   .dbline 13
 000A           ;       D12_COMMAND = 0xf0;// 读标准控制码
 000A 80EF              ldi R24,240
 000C 8093017F          sts 32513,R24
 0010                   .dbline 14
 0010           ;       cwait1;
 0010 0000              nop
 0012                   .dbline 14
 0012 0000              nop
 0014                   .dbline 15
 0014           ;       i = D12_DATA;
 0014 4091007F          lds R20,32512
 0018                   .dbline 16
 0018           ;       cwait1;
 0018 0000              nop
 001A                   .dbline 16
 001A 0000              nop
 001C                   .dbline 17
 001C           ;       i = D12_DATA;//长度
 001C 4091007F          lds R20,32512
 0020                   .dbline 18
 0020           ;       cwait1;
 0020 0000              nop
 0022                   .dbline 18
 0022 0000              nop
 0024                   .dbline 19
 0024           ;       j = D12_DATA;
 0024 6091007F          lds R22,32512
 0028                   .dbline 20
 0028           ;       csram;
 0028 609301FC          sts 0xfc01,R22
 002C                   .dbline 20
 002C                   .dbline 21
 002C           ;       p = XmtBuff.b;
 002C E0E0              ldi R30,<_XmtBuff
 002E F0E0              ldi R31,>_XmtBuff
 0030                   .dbline 22
 0030           ;       *(p++) = j;
 0030 6193              st Z+,R22
 0032 5F01              movw R10,R30
 0034                   .dbline 23
 0034           ;       for(i=0;i<7;i++)
 0034 4427              clr R20
 0036 06C0              rjmp L11
 0038           L8:
 0038                   .dbline 24
 0038                   .dbline 25
 0038 6091007F          lds R22,32512
 003C                   .dbline 26
 003C 609301FC          sts 0xfc01,R22
 0040                   .dbline 26
 0040                   .dbline 27
 0040 6193              st Z+,R22
 0042                   .dbline 28
 0042           L9:
 0042                   .dbline 23
 0042 4395              inc R20
 0044           L11:
 0044                   .dbline 23
 0044 4730              cpi R20,7
 0046 C0F3              brlo L8
 0048                   .dbline 29
 0048           ;       {
 0048           ;          j = D12_DATA;
 0048           ;          csram;
 0048           ;          asm("st Z+,%j");
 0048           ;       }
 0048           ;       D12_COMMAND = 0x01;// 选择端点 1(指针指向0位置)
 0048 81E0              ldi R24,1
 004A 8093017F          sts 32513,R24
 004E                   .dbline 30
 004E           ;       cwait;
 004E 0000              nop
 0050                   .dbline 31
 0050           ;       D12_COMMAND = 0xf1;// 应答SETUP包,使能(清 OUT 缓冲区、使能 IN 缓冲区)命令
 0050 81EF              ldi R24,241
 0052 8093017F          sts 32513,R24
 0056                   .dbline 32
 0056           ;       csram;
 0056 609301FC          sts 0xfc01,R22
 005A                   .dbline 32
 005A                   .dbline 33
 005A           ;       i = XmtBuff.b[1];
 005A 40910100          lds R20,_XmtBuff+1
 005E                   .dbline 34
 005E           ;       if(XmtBuff.b[0] & 0x40)//厂商请求跳转表
 005E 20900000          lds R2,_XmtBuff
 0062 26FE              sbrs R2,6
 0064 01C0              rjmp L13
 0066                   .dbline 35
 0066           ;       {
 0066                   .dbline 37
 0066           ;          //if (i <= 0x0f)
 0066           ;          {
 0066                   .dbline 39
 0066           ;                  //(*VendorDeviceRequest[i])();
 0066           ;          }
 0066                   .dbline 40
 0066           ;       }
 0066 0EC0              rjmp L14
 0068           L13:
 0068                   .dbline 42
 0068           ;       else
 0068           ;       {
 0068                   .dbline 43
 0068           ;          if (i <= 0x0B)//标准请求跳转表
 0068 8BE0              ldi R24,11
 006A 8417              cp R24,R20
 006C 58F0              brlo L15
 006E                   .dbline 44
 006E           ;          {
 006E                   .dbline 45
 006E           ;                  (*StandardDeviceRequest[i])();
 006E 82E0              ldi R24,2
 0070 849F              mul R24,R20
 0072 F001              movw R30,R0
 0074 80E0              ldi R24,<_StandardDeviceRequest
 0076 90E0              ldi R25,>_StandardDeviceRequest
 0078 E80F              add R30,R24
 007A F91F              adc R31,R25
 007C A081              ldd R26,z+0
 007E B181              ldd R27,z+1
 0080 FD01              movw R30,R26
 0082 00D0              rcall xicall
 0084                   .dbline 46
 0084           ;         }
 0084           L15:
 0084                   .dbline 47
 0084           ;       }
 0084           L14:
 0084                   .dbline 48
 0084           ;       D12_COMMAND = 0x00;// 选择端点0(指针指向0位置)
 0084 2224              clr R2
 0086 2092017F          sts 32513,R2
 008A                   .dbline 49
 008A           ;       cwait;
 008A 0000              nop
 008C                   .dbline 50
 008C           ;       D12_COMMAND = 0xf1;// 应答SETUP包,使能(清 OUT 缓冲区、使能 IN 缓冲区)命令
 008C 81EF              ldi R24,241
 008E 8093017F          sts 32513,R24
 0092                   .dbline 51
 0092           ;       cwait;
 0092 0000              nop
 0094                   .dbline 52
 0094           ;       D12_COMMAND = 0xf2;// 清 OUT 缓冲区
 0094 82EF              ldi R24,242
 0096 8093017F          sts 32513,R24
 009A                   .dbline -2
 009A                   .dbline 53
 009A           ; }
 009A           L7:
 009A 00D0              rcall pop_gset3
 009C                   .dbline 0 ; func end
 009C 0895              ret
 009E                   .dbsym r p 10 pc
 009E                   .dbsym r j 22 c
 009E                   .dbsym r i 20 c
 009E                   .dbend
 009E                   .dbfunc e void_function _void_function fV
                        .even
 009E           _void_function::
 009E                   .dbline -1
 009E                   .dbline 56
 009E           ; 
 009E           ; void void_function(void)
 009E           ; {
 009E                   .dbline 57
 009E           ;       D12_COMMAND = 0x40;// 0 端点停止(用于发送Stall包)
 009E 80E4              ldi R24,64
 00A0 8093017F          sts 32513,R24
 00A4                   .dbline 58
 00A4           ;       cwait;
 00A4 0000              nop
 00A6                   .dbline 59
 00A6           ;       D12_DATA = 0x01;
 00A6 81E0              ldi R24,1
 00A8 8093007F          sts 32512,R24
 00AC                   .dbline 60
 00AC           ;       cwait;
 00AC 0000              nop
 00AE                   .dbline 61
 00AE           ;       D12_COMMAND = 0x41;// 1 端点停止(用于发送Stall包)
 00AE 81E4              ldi R24,65
 00B0 8093017F          sts 32513,R24
 00B4                   .dbline 62
 00B4           ;       cwait;
 00B4 0000              nop
 00B6                   .dbline 63

⌨️ 快捷键说明

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