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

📄 usb.lis

📁 用ST92163开发的鼠标
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 990              	.LMM97:
 421:../src/usb.c  **** 	}
 422:../src/usb.c  **** }
 992 0295 75D8     		popw 	rr8
 993 0297 75DA     		popw 	rr10
 994 0299 75DC     		popw 	rr12
 995 029b 75DF     		unlink	rr14
 996 029d 46       		ret 
 997              		.endproc
 998              	.Lscope4:
 1000              	
 1001              		.section .rodata
 1002              	
 1003              		.desc	get_configuration_status_table$12, near
 1004              	get_configuration_status_table$12:
 1005 0106 00       		.byte	0
 1006 0107 01       		.byte	1
 1007              	
 1008              		.section .text
 1010              	
 1011              		.desc	GetConfiguration, near
 1012              		.proc	GetConfiguration
 1013              	GetConfiguration:
 423:../src/usb.c  **** 
 424:../src/usb.c  **** static BYTE GetConfiguration( void)
 425:../src/usb.c  **** {
 1015              	.LMM99:
 426:../src/usb.c  **** 	static const BYTE get_configuration_status_table[] =
 1017              	.LBB5:
 1018              	.LMM100:
 427:../src/usb.c  **** 	{
 428:../src/usb.c  **** 		0x00,	/* not configured */
 429:../src/usb.c  **** 		0x01	/* configured */
 430:../src/usb.c  **** 	} ;
 431:../src/usb.c  **** 
 432:../src/usb.c  **** 	data_size[ CurDevice] = 1 ;
 1020 029e C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1021 02a2 0C00     		ld   	r0,#0
 1022 02a4 2C01     		ld  	r2,#1
 1023 02a6 26F00000 		ld  	dpr:pof(@data_size)(rr0),r2
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s 			page 24


 1023      D2
 1024              	.LMM101:
 433:../src/usb.c  **** 	data_ptr = (BYTE *) &get_configuration_status_table[ configuration_status[ CurDevice]] ;
 1026 02ab C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1027 02af 0C00     		ld   	r0,#0
 1028 02b1 BFD20106 		ldw  	rr2,#dpr:pof(@get_configuration_status_table$12)
 1029 02b5 7F400000 		add  	r3,dpr:pof(@configuration_status)(rr0)
 1029      D3
 1030 02ba 35D200   		adc  	r2,#0
 1031 02bd E302     		ldw  	rr0,rr2
 1032 02bf E2F10000 		ldw  	dpr:pof(@data_ptr),rr0
 1033              	.LMM102:
 434:../src/usb.c  **** 	return control_read() ;
 1035 02c3 D200E2   		call 	@control_read   
 1036              	.LMM103:
 435:../src/usb.c  **** }
 1038              	.LBE5:
 1039 02c6 46       		ret 
 1040              		.endproc
 1044              	.Lscope5:
 1046              	
 1047              		.section .rodata
 1048              	
 1049              		.desc	get_endpoint_status_table$15, near
 1050              	get_endpoint_status_table$15:
 1051 0108 00       		.byte	0
 1052 0109 00       		.byte	0
 1053 010a 01       		.byte	1
 1054 010b 00       		.byte	0
 1055              	
 1056              		.section .text
 1058              	
 1059              		.desc	GetEndpointStatus, near
 1060              		.proc	GetEndpointStatus
 1061              	GetEndpointStatus:
 436:../src/usb.c  **** 
 437:../src/usb.c  **** static BYTE GetEndpointStatus( void)
 438:../src/usb.c  **** {
 1063              	.LMM105:
 439:../src/usb.c  **** 	static const BYTE get_endpoint_status_table[] =
 1065              	.LBB6:
 1066              	.LMM106:
 440:../src/usb.c  **** 	{
 441:../src/usb.c  **** 		0x00, 0x00,	/* not stalled */
 442:../src/usb.c  **** 		0x01, 0x00	/* stalled */
 443:../src/usb.c  **** 	} ;
 444:../src/usb.c  **** 
 445:../src/usb.c  **** 	data_size[ CurDevice] = 2 ;
 1068 02c7 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1069 02cb 0C00     		ld   	r0,#0
 1070 02cd 2C02     		ld  	r2,#2
 1071 02cf 26F00000 		ld  	dpr:pof(@data_size)(rr0),r2
 1071      D2
 1072              	.LMM107:
 446:../src/usb.c  **** 	data_ptr = (BYTE *) &get_endpoint_status_table[ endpoint_stall[ CurDevice] << 1] ;
 1074 02d4 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1075 02d8 0C00     		ld   	r0,#0
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s 			page 25


 1076 02da 7FF00000 		ld   	r1,dpr:pof(@endpoint_stall)(rr0)
 1076      D1
 1077 02df 0C00     		ld   	r0,#0
 1078 02e1 4E00     		addw 	rr0,rr0
 1079 02e3 47D10108 		addw 	rr0,#dpr:pof(@get_endpoint_status_table$15)
 1080 02e7 E2F10000 		ldw  	dpr:pof(@data_ptr),rr0
 1081              	.LMM108:
 447:../src/usb.c  **** 	return control_read() ;
 1083 02eb D200E2   		call 	@control_read   
 1084              	.LMM109:
 448:../src/usb.c  **** }
 1086              	.LBE6:
 1087 02ee 46       		ret 
 1088              		.endproc
 1092              	.Lscope6:
 1095              	
 1096              		.desc	set_address, near
 1097              		.proc	set_address
 1098              	set_address:
 449:../src/usb.c  **** 
 450:../src/usb.c  **** static BYTE set_address()
 451:../src/usb.c  **** {
 1100              	.LMM111:
 452:../src/usb.c  **** 	address[ CurDevice] = CurRxBuffer[ USB_wValue] ;	/* Save address value to be set after acknowledge
 1102 02ef C4F30000 		ld   	r3,dpr:pof(@CurDevice)
 1103 02f3 2C00     		ld   	r2,#0
 1104 02f5 E2F00000 		ldw  	rr0,dpr:pof(@CurRxBuffer)
 1105 02f9 7FF102D0 		ld  	r0,2(rr0)
 1106 02fd 26F20000 		ld  	dpr:pof(@address)(rr2),r0
 1106      D0
 1107              	.LMM112:
 453:../src/usb.c  **** 	return TX_ACK_ADDR ;
 1109 0302 1C05     		ld  	r1,#5
 1110              	.LMM113:
 454:../src/usb.c  **** }
 1112 0304 46       		ret 
 1113              		.endproc
 1114              	.Lscope7:
 1116              	
 1117              		.section .rodata
 1118              	
 1119              		.desc	get_dev_status_table$20, near
 1120              	get_dev_status_table$20:
 1121 010c 00       		.byte	0
 1122 010d 00       		.byte	0
 1123 010e 02       		.byte	2
 1124 010f 00       		.byte	0
 1125              	
 1126              		.section .text
 1128              	
 1129              		.desc	GetDeviceStatus, near
 1130              		.proc	GetDeviceStatus
 1131              	GetDeviceStatus:
 455:../src/usb.c  **** 
 456:../src/usb.c  **** static BYTE GetDeviceStatus( void) {
 1133              	.LMM115:
 457:../src/usb.c  **** 	static const char get_dev_status_table[] = {
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s 			page 26


 1135              	.LBB7:
 1136              	.LMM116:
 458:../src/usb.c  **** 		0x00, 0x00,	/*  remote wakeup disabled, bus powered */
 459:../src/usb.c  **** 		0x02, 0x00	/*  remote wakeup enabled, bus powered */
 460:../src/usb.c  **** 	} ;
 461:../src/usb.c  **** 
 462:../src/usb.c  **** 	data_size[ CurDevice] = 2 ;
 1138 0305 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1139 0309 0C00     		ld   	r0,#0
 1140 030b 2C02     		ld  	r2,#2
 1141 030d 26F00000 		ld  	dpr:pof(@data_size)(rr0),r2
 1141      D2
 1142              	.LMM117:
 463:../src/usb.c  **** 	data_ptr = (BYTE *) &get_dev_status_table[ remote_wakeup_status[ CurDevice]] ;
 1144 0312 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1145 0316 0C00     		ld   	r0,#0
 1146 0318 BFD2010C 		ldw  	rr2,#dpr:pof(@get_dev_status_table$20)
 1147 031c 7F400000 		add  	r3,dpr:pof(@remote_wakeup_status)(rr0)
 1147      D3
 1148 0321 35D200   		adc  	r2,#0
 1149 0324 E302     		ldw  	rr0,rr2
 1150 0326 E2F10000 		ldw  	dpr:pof(@data_ptr),rr0
 1151              	.LMM118:
 464:../src/usb.c  **** 	return control_read() ;
 1153 032a D200E2   		call 	@control_read   
 1154              	.LMM119:
 465:../src/usb.c  **** }
 1156              	.LBE7:
 1157 032d 46       		ret 
 1158              		.endproc
 1162              	.Lscope8:
 1166              	
 1167              		.desc	HUB_set_configuration, near
 1168              		.proc	HUB_set_configuration
 1169              	HUB_set_configuration:
 466:../src/usb.c  **** 
 467:../src/usb.c  **** static void HUB_set_configuration( BYTE configuration_status)
 468:../src/usb.c  **** {
 1171              	.LMM121:
 469:../src/usb.c  **** 	if( configuration_status == 0)
 1173 032e 0200     		or 	r0,r0
 1174 0330 EB08     		jxnz 	.L45
 1175              	.LMM122:
 470:../src/usb.c  **** 	{
 471:../src/usb.c  **** 	/* device is not configured */
 472:../src/usb.c  **** 		ENDPR1_A &= ~0x30 ;	/* Disable Tx */
 1177 0332 15F2CF   		and 	@ENDPR1_A,#207
 1178              	.LMM123:
 473:../src/usb.c  **** 		ep1_tx_ready = 0 ;
 1180 0335 C5F00001 		ld  	dpr:pof(@ep1_tx_ready),r0
 1181              	.LMM124:
 474:../src/usb.c  **** 	}
 1183 0339 46       		ret
 1184              	.L45:
 1185              	.LMM125:
 475:../src/usb.c  **** 	else
 476:../src/usb.c  **** 	{
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s 			page 27


 477:../src/usb.c  **** 	/* device is configured */
 478:../src/usb.c  **** 		ENDPR1_A &= ~0x30 ;
 1187 033a 15F2CF   		and 	@ENDPR1_A,#207
 1188              	.LMM126:
 479:../src/usb.c  **** 		ENDPR1_A |= 0x20 ; /* Tx STAT_NAK */
 1190 033d 05F220   		or 	@ENDPR1_A,#32
 1191              	.LMM127:
 480:../src/usb.c  **** 		ep1_tx_ready = 1 ;
 1193 0340 2FF10100 		ld  	dpr:pof(@ep1_tx_ready),#1
 1193      01
 1194              	.LMM128:
 481:../src/usb.c  **** 	}
 482:../src/usb.c  **** }
 1196 0345 46       		ret 
 1197              		.endproc
 1198              	.Lscope9:
 1201              	
 1202              		.desc	set_configuration, near
 1203              		.proc	set_configuration
 1204              	set_configuration:
 483:../src/usb.c  **** 
 484:../src/usb.c  **** static BYTE set_configuration( void)
 485:../src/usb.c  **** {
 1206              	.LMM130:
 486:../src/usb.c  **** 	/* We have only one configuration per device */
 487:../src/usb.c  ****     if( ( CurRxBuffer[ USB_wValue] != 0) && (CurRxBuffer[ USB_wValue] != 1) )
 1208              	.LBB8:
 1209 0346 E2F00000 		ldw  	rr0,dpr:pof(@CurRxBuffer)
 1210 034a 7FF102D0 		ld  	r0,2(rr0)
 1211 034e 95D001   		cp   	r0,#1
 1212 0351 3B03     		jxule	.L48
 1213              	.LMM131:
 488:../src/usb.c  ****     {
 489:../src/usb.c  ****         return TX_STALL ;
 1215              	.L58:
 1216 0353 1C01     		ld  	r1,#1
 1217 0355 46       		ret
 1218              	.L48:
 1219              	.LMM132:
 490:../src/usb.c  ****     }
 491:../src/usb.c  ****     else
 492:../src/usb.c  **** 	{
 493:../src/usb.c  **** 		configuration_status[ CurDevice] = CurRxBuffer[ USB_wValue] ;
 1221 0356 C4F30000 		ld   	r3,dpr:pof(@CurDevice)
 1222 035a 2C00     		ld   	r2,#0
 1223 035c E2F00000 		ldw  	rr0,dpr:pof(@CurRxBuffer)
 1224 0360 7FF102D0 		ld  	r0,2(rr0)
 1225 0364 26F20000 		ld  	dpr:pof(@configuration_status)(rr2),r0
 1225      D0
 1226              	.LMM133:
 494:../src/usb.c  **** 		endpoint_stall[ CurDevice] = 0 ;
 1228 0369 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1229 036d 0C00     		ld   	r0,#0
 1230 036f 90D4     		clr 	r4
 1231 0371 26F00000 		ld  	dpr:pof(@endpoint_stall)(rr0),r4
 1231      D4
 1232              	.LMM134:
GAS LISTING C:\DOCUME~1\REF\LOCALS~1\Temp\cc001896.s 			page 28


 495:../src/usb.c  **** 		switch( CurDevice)
 1234 0376 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1235 037a 0C00     		ld   	r0,#0
 1236 037c E320     		ldw  	rr2,rr0
 1237 037e 97D10003 		cpw  	rr0,#3
 1238 0382 BBCF     		jxugt	.L58
 1239 0384 4E22     		addw 	rr2,rr2
 1240 0386 EE       		spm
 1241 0387 86F2038F 		ldw  	rr2,sof(.L56)(rr2)
 1241      D2
 1242 038c FE       		sdm
 1243 038d D4D2     		jp   	(rr2)
 1244              	.L56:
 1245              	$start_switch_table_56:
 1246 038f 0397     		.word sof(.L51)
 1247 0391 03A7     		.word sof(.L52)
 1248 0393 03B7     		.word sof(.L53)
 1249 0395 03C7     		.word sof(.L54)
 1250              	$end_switch_table_56:
 1251              	.LMM135:
 496:../src/usb.c  **** 		{
 497:../src/usb.c  **** 			extern void	KEYBOARD_set_configuration( BYTE configuration_status) ;
 1253              	.LBB9:
 1254              	.L51:
 1255              	.LMM136:
 498:../src/usb.c  **** 			extern void	MOUSE_set_configuration( BYTE configuration_status) ;
 499:../src/usb.c  **** 			extern void	JOYSTICK_set_configuration( BYTE configuration_status) ;
 500:../src/usb.c  **** 			case 0:
 501:../src/usb.c  **** 				HUB_set_configuration( configuration_status[ CurDevice]) ;
 1257 0397 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1258 039b 0C00     		ld   	r0,#0
 1259 039d 7FF00000 		ld  	r0,dpr:pof(@configuration_status)(rr0)
 1259      D0
 1260 03a2 D2032E   		call 	@HUB_set_configuration  
 1261              	.LMM137:
 502:../src/usb.c  **** 				break ;
 1263 03a5 8B2E     		jxt  	.L50
 1264              	.L52:
 1265              	.LMM138:
 503:../src/usb.c  **** 			case 1:
 504:../src/usb.c  **** 				KEYBOARD_set_configuration( configuration_status[ CurDevice]) ;
 1267 03a7 C4F10000 		ld   	r1,dpr:pof(@CurDevice)
 1268 03ab 0C00     		ld   	r0,#0
 1269 03ad 7FF00000 		ld  	r0,dpr:pof(@configuration_status)(rr0)
 1269      D0
 1270 03b2 D20000   		call 	@KEYBOARD_set_configuration  
 1271              	.LMM139:
 505:../src/usb.c  **** 				break ;
 1273 

⌨️ 快捷键说明

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