📄 d12setup.lis
字号:
00CA .dbline 108
; D12_COMMAND = 0x00;//选择端点(指针指向0位置)
00CA 2224 clr R2
00CC 2092017C sts 31745,R2
00D0 .dbline 109
; cwait;
00D0 0000 nop
00D2 .dbline 110
; D12_COMMAND = 0xf1;//应答SETUP包
00D2 81EF ldi R24,241
00D4 8093017C sts 31745,R24
00D8 .dbline 111
; cwait;
00D8 0000 nop
00DA .dbline 112
; D12_COMMAND = 0xf2;//清端点缓冲区
00DA 82EF ldi R24,242
00DC 8093017C sts 31745,R24
00E0 .dbline -2
00E0 .dbline 113
; }
00E0 L2:
00E0 00D0 rcall pop_gset3
00E2 .dbline 0 ; func end
00E2 0895 ret
00E4 .dbsym r p 10 pc
00E4 .dbsym r j 20 c
00E4 .dbsym r i 22 c
00E4 .dbfunc s void_function _void_function fI
.even
00E4 _void_function::
00E4 .dbline -1
00E4 .dbline 136
; /************************************************************
; **工程名称:U盘固件程序开发
; **编译器类型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **创建人:陈驰
; **所属单位:湖南大学计算机与通信学院
;
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **时钟频率:8MHZ
;
; **函数功能:停止控制端点.应答枚举请求
; **函数输入参数及说明:无
;
; **函数返回值:无
; **在本函数以外定义的变量:D12_COMMAND,D12_DATA
; **调用的函数说明:无
;
; **修改人:陈驰
; **修改日期:2004.4.30
; **修改说明:创建
; *************************************************************/
; void void_function(void)
; {
00E4 .dbline 137
; D12_COMMAND = 0x40;//0端点停止(用于发送Stall包)
00E4 80E4 ldi R24,64
00E6 8093017C sts 31745,R24
00EA .dbline 138
; cwait;
00EA 0000 nop
00EC .dbline 139
; D12_DATA = 0x01;
00EC 81E0 ldi R24,1
00EE 8093007C sts 31744,R24
00F2 .dbline 140
; cwait;
00F2 0000 nop
00F4 .dbline 141
; D12_COMMAND = 0x41;//1端点停止(用于发送Stall包)
00F4 81E4 ldi R24,65
00F6 8093017C sts 31745,R24
00FA .dbline 142
; cwait;
00FA 0000 nop
00FC .dbline 143
; D12_DATA = 0x01;
00FC 81E0 ldi R24,1
00FE 8093007C sts 31744,R24
0102 .dbline 144
; cwait;
0102 0000 nop
0104 .dbline 145
; D12_COMMAND = 0xf1;//应答SETUP包
0104 81EF ldi R24,241
0106 8093017C sts 31745,R24
010A .dbline 146
; csram;
010A 609301FC sts 0xfc01,R22
010E .dbline 146
010E .dbline -2
010E .dbline 147
; }
010E L10:
010E .dbline 0 ; func end
010E 0895 ret
0110 .dbfunc s get_status _get_status fI
.even
0110 _get_status::
0110 00D0 rcall push_gset1
0112 .dbline -1
0112 .dbline 172
; /************************************************************
; **工程名称:U盘固件程序开发
; **编译器类型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **创建人:陈驰
; **所属单位:湖南大学计算机与通信学院
;
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **时钟频率:8MHZ
;
; **函数功能:标准设备请求
; **函数输入参数及说明:无
;
; **函数返回值:无
; **在本函数以外定义的变量:D12_COMMAND,D12_DATA
; **调用的函数说明:
; USB_submit();
; 控制端点提交函数
;
; **修改人:陈驰
; **修改日期:2004.4.30
; **修改说明:创建
; *************************************************************/
; void get_status(void)
; {
0112 .dbline 173
; XmtBuff.b[1] = 0x00;
0112 2224 clr R2
0114 20920100 sts _XmtBuff+1,R2
0118 .dbline 174
; switch (XmtBuff.b[0])
0118 40910000 lds R20,_XmtBuff
011C 5527 clr R21
011E 4038 cpi R20,128
0120 E0E0 ldi R30,0
0122 5E07 cpc R21,R30
0124 81F0 breq L14
0126 4138 cpi R20,129
0128 E0E0 ldi R30,0
012A 5E07 cpc R21,R30
012C 29F0 breq L17
012E 4238 cpi R20,130
0130 E0E0 ldi R30,0
0132 5E07 cpc R21,R30
0134 29F0 breq L18
0136 07C0 rjmp L13
0138 X0:
0138 .dbline 175
; {
0138 .dbline 177
; case 0x80:
; break;
0138 L17:
0138 .dbline 179
; case 0x81:
; XmtBuff.b[0] = 0x00;
0138 2224 clr R2
013A 20920000 sts _XmtBuff,R2
013E .dbline 180
; break;
013E 03C0 rjmp L14
0140 L18:
0140 .dbline 182
; case 0x82:
; XmtBuff.b[0] = 0x00;
0140 2224 clr R2
0142 20920000 sts _XmtBuff,R2
0146 .dbline 183
; break;
0146 L13:
0146 L14:
0146 .dbline 185
; }
; XmtBuff.p_p=0;
0146 2224 clr R2
0148 20924600 sts _XmtBuff+70,R2
014C .dbline 186
; XmtBuff.wrLength = 2;
014C 82E0 ldi R24,2
014E 90E0 ldi R25,0
0150 90934100 sts _XmtBuff+64+1,R25
0154 80934000 sts _XmtBuff+64,R24
0158 .dbline 187
; XmtBuff.p = XmtBuff.b;
0158 80E0 ldi R24,<_XmtBuff
015A 90E0 ldi R25,>_XmtBuff
015C 90934500 sts _XmtBuff+68+1,R25
0160 80934400 sts _XmtBuff+68,R24
0164 .dbline 188
; USB_submit();
0164 00D0 rcall _USB_submit
0166 .dbline -2
0166 .dbline 189
; }
0166 L11:
0166 00D0 rcall pop_gset1
0168 .dbline 0 ; func end
0168 0895 ret
016A .dbfunc s clear_feature _clear_feature fI
; j -> R20
.even
016A _clear_feature::
016A 00D0 rcall push_gset1
016C .dbline -1
016C .dbline 214
; /************************************************************
; **工程名称:U盘固件程序开发
; **编译器类型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **创建人:陈驰
; **所属单位:湖南大学计算机与通信学院
;
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **时钟频率:8MHZ
;
; **函数功能:标准设备请求
; **函数输入参数及说明:无
;
; **函数返回值:无
; **在本函数以外定义的变量:D12_COMMAND,D12_DATA
; **调用的函数说明:
; USB_submit();
; 控制端点提交函数
;
; **修改人:陈驰
; **修改日期:2004.4.30
; **修改说明:创建
; *************************************************************/
; void clear_feature(void)
; {
016C .dbline 216
; unsigned char j;
; switch (XmtBuff.b[0])
016C 40910000 lds R20,_XmtBuff
0170 5527 clr R21
0172 4030 cpi R20,0
0174 4507 cpc R20,R21
0176 11F1 breq L24
0178 4130 cpi R20,1
017A E0E0 ldi R30,0
017C 5E07 cpc R21,R30
017E F1F0 breq L24
0180 4230 cpi R20,2
0182 E0E0 ldi R30,0
0184 5E07 cpc R21,R30
0186 09F0 breq L28
0188 19C0 rjmp L23
018A X1:
018A .dbline 217
; {
018A .dbline 219
; case 0x00://清设备唤醒功能
; break;
018A .dbline 221
; case 0x01://清接口状态
; break;
018A L28:
018A .dbline 224
; case 0x02://启用端点
; //XmtBuff.b[5] D7为方向,D3~0为端点号
; j = XmtBuff.b[5];
018A 40910500 lds R20,_XmtBuff+5
018E .dbline 225
; if(j<0x80)
018E 4038 cpi R20,128
0190 50F4 brsh L30
0192 .dbline 226
; {
0192 .dbline 227
; j = 0x40+j*2;
0192 440F lsl R20
0194 405C subi R20,192 ; addi 64
0196 .dbline 228
; D12_COMMAND = j;// 启用OUT端点
0196 4093017C sts 31745,R20
019A .dbline 229
; D12_DATA = 0x00;
019A 2224 clr R2
019C 2092007C sts 31744,R2
01A0 .dbline 230
; csram;
01A0 609301FC sts 0xfc01,R22
01A4 .dbline 230
01A4 .dbline 231
; }
01A4 0BC0 rjmp L24
01A6 L30:
01A6 .dbline 233
; else
; {
01A6 .dbline 234
; j = (j & 0x0f);
01A6 4F70 andi R20,15
01A8 .dbline 235
; D12_COMMAND = 0x41+j*2;// 启用IN端点
01A8 842F mov R24,R20
01AA 880F lsl R24
01AC 8F5B subi R24,191 ; addi 65
01AE 8093017C sts 31745,R24
01B2 .dbline 236
; D12_DATA = 0x00;
01B2 2224 clr R2
01B4 2092007C sts 31744,R2
01B8 .dbline 237
; csram;
01B8 609301FC sts 0xfc01,R22
01BC .dbline 237
01BC .dbline 238
; }
01BC .dbline 239
; break;
01BC L23:
01BC L24:
01BC .dbline 241
; }
; XmtBuff.wrLength = 0;
01BC 2224 clr R2
01BE 3324 clr R3
01C0 30924100 sts _XmtBuff+64+1,R3
01C4 20924000 sts _XmtBuff+64,R2
01C8 .dbline 242
; USB_submit();
01C8 00D0 rcall _USB_submit
01CA .dbline -2
01CA .dbline 243
; }
01CA L22:
01CA 00D0 rcall pop_gset1
01CC .dbline 0 ; func end
01CC 0895 ret
01CE .dbsym r j 20 c
01CE .dbfunc s set_feature _set_feature fI
; j -> R20
.even
01CE _set_feature::
01CE 00D0 rcall push_gset1
01D0 .dbline -1
01D0 .dbline 268
; /************************************************************
; **工程名称:U盘固件程序开发
; **编译器类型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **创建人:陈驰
; **所属单位:湖南大学计算机与通信学院
;
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -