📄 ms_bot.lst
字号:
\ 00000088 1204 LSL R2,R2,#+16
\ 0000008A 0A43 ORR R2,R1
\ 0000008C 717A LDRB R1,[R6, #+9]
\ 0000008E 0902 LSL R1,R1,#+8
\ 00000090 1143 ORR R1,R2
\ 00000092 327A LDRB R2,[R6, #+8]
\ 00000094 0A43 ORR R2,R1
\ 00000096 C262 STR R2,[R0, #+44]
341
342
343 _status = rbc_write_10(&_bot_cdb->write);
\ 00000098 6846 MOV R0,SP
\ 0000009A 0F30 ADD R0,#+15
\ 0000009C ........ _BLF rbc_write_10,??rbc_write_10??rT
\ 000000A0 C8E0 B ??ms_idleRx_13
344 break;
345
346 case RBC_READ_10:
347 /* Process the RBC READ_10 command */
348 TRACE_DEBUG_H( "READ_10\n\r");
349 usbms_context.usb_lun[usbms_context.current_lun].cur_request.transferred_size = 0L;
\ ??ms_idleRx_9:
\ 000000A2 3821 MOV R1,#+56
\ 000000A4 4843 MUL R0,R1
\ 000000A6 .... LDR R1,??DataTable15 ;; usbms_context
\ 000000A8 0818 ADD R0,R1,R0
\ 000000AA 0021 MOV R1,#+0
\ 000000AC 4163 STR R1,[R0, #+52]
350 usbms_context.usb_lun[usbms_context.current_lun].cur_request.buffer_size = (_cbw->dCBWDataTransferLength_3<<24)
351 |(_cbw->dCBWDataTransferLength_2<<16)
352 |(_cbw->dCBWDataTransferLength_1<<8)
353 |(_cbw->dCBWDataTransferLength_0);
\ 000000AE 687A LDRB R0,[R5, #+9]
\ 000000B0 3821 MOV R1,#+56
\ 000000B2 4843 MUL R0,R1
\ 000000B4 .... LDR R1,??DataTable15 ;; usbms_context
\ 000000B6 0818 ADD R0,R1,R0
\ 000000B8 F17A LDRB R1,[R6, #+11]
\ 000000BA 0906 LSL R1,R1,#+24
\ 000000BC B27A LDRB R2,[R6, #+10]
\ 000000BE 1204 LSL R2,R2,#+16
\ 000000C0 0A43 ORR R2,R1
\ 000000C2 717A LDRB R1,[R6, #+9]
\ 000000C4 0902 LSL R1,R1,#+8
\ 000000C6 1143 ORR R1,R2
\ 000000C8 327A LDRB R2,[R6, #+8]
\ 000000CA 0A43 ORR R2,R1
\ 000000CC C262 STR R2,[R0, #+44]
354 _status = rbc_read_10(&_bot_cdb->read);
\ 000000CE 6846 MOV R0,SP
\ 000000D0 0F30 ADD R0,#+15
\ 000000D2 ........ _BLF rbc_read_10,??rbc_read_10??rT
\ 000000D6 ADE0 B ??ms_idleRx_13
355
356 break;
357
358 case RBC_INQUIRY:
359 /* Process the RBC INQUIRY request */
360 TRACE_DEBUG_H( "INQUIRY\n\r");
361 _status = rbc_inquiry(&_bot_cdb->inquiry);
\ ??ms_idleRx_3:
\ 000000D8 6846 MOV R0,SP
\ 000000DA 0F30 ADD R0,#+15
\ 000000DC ........ _BLF rbc_inquiry,??rbc_inquiry??rT
362
363 usbms_context.usb_lun[usbms_context.current_lun].cur_request.buffer_size = (_cbw->dCBWDataTransferLength_3<<24)
364 |(_cbw->dCBWDataTransferLength_2<<16)
365 |(_cbw->dCBWDataTransferLength_1<<8)
366 |(_cbw->dCBWDataTransferLength_0);
\ 000000E0 697A LDRB R1,[R5, #+9]
\ 000000E2 3822 MOV R2,#+56
\ 000000E4 5143 MUL R1,R2
\ 000000E6 .... LDR R2,??DataTable15 ;; usbms_context
\ 000000E8 5118 ADD R1,R2,R1
\ 000000EA F27A LDRB R2,[R6, #+11]
\ 000000EC 1306 LSL R3,R2,#+24
\ 000000EE B27A LDRB R2,[R6, #+10]
\ 000000F0 1204 LSL R2,R2,#+16
\ 000000F2 1A43 ORR R2,R3
\ 000000F4 737A LDRB R3,[R6, #+9]
\ 000000F6 1B02 LSL R3,R3,#+8
\ 000000F8 1343 ORR R3,R2
\ 000000FA 327A LDRB R2,[R6, #+8]
\ 000000FC 1A43 ORR R2,R3
\ 000000FE CA62 STR R2,[R1, #+44]
367 if (USBMS_OK == _status)
\ 00000100 0028 CMP R0,#+0
\ 00000102 05D1 BNE ??ms_idleRx_14
368 {
369 /* the command has been fully processed */
370 ms_computeCSW(GOOD_STATUS,0);
\ ??ms_idleRx_15:
\ 00000104 0021 MOV R1,#+0
\ 00000106 0020 MOV R0,#+0
\ 00000108 ........ BL ms_computeCSW
371 usbms_context.state = USB_SEND_NO_FLASH;
\ 0000010C 0320 MOV R0,#+3
\ 0000010E 90E0 B ??ms_idleRx_16
372 }
373 else
374 {
375 /* an error occured during the processing */
376 ms_update_sense_data( SENSE_KEY_ILLEGAL_REQUEST, ASC_INVALID_FIELD_IN_CDB, ASCQ_00 );
\ ??ms_idleRx_14:
\ 00000110 0022 MOV R2,#+0
\ 00000112 2421 MOV R1,#+36
\ 00000114 0520 MOV R0,#+5
\ 00000116 ........ BL ms_update_sense_data
377 ms_computeCSW(COMMAND_FAILED,usbms_context.usb_lun[usbms_context.current_lun].cur_request.buffer_size);
\ 0000011A 687A LDRB R0,[R5, #+9]
\ 0000011C 3821 MOV R1,#+56
\ 0000011E 4843 MUL R0,R1
\ 00000120 .... LDR R1,??DataTable15 ;; usbms_context
\ 00000122 0818 ADD R0,R1,R0
\ 00000124 C16A LDR R1,[R0, #+44]
\ 00000126 0120 MOV R0,#+1
\ 00000128 ........ BL ms_computeCSW
378
379 ms_stallPipe(FW_EP_BULK_IN);
\ 0000012C 0120 MOV R0,#+1
\ 0000012E ........ BL ms_stallPipe
380 /* an error occured, so the internal state changes to RESET_IN_PROGRESS */
381 usbms_context.state = RESET_IN_PROGRESS;
\ 00000132 0420 MOV R0,#+4
\ 00000134 7DE0 B ??ms_idleRx_16
382 }
383 break;
384
385 case RBC_MODE_SELECT:
386 /* Process the RBC MODE_SELECT request */
387 TRACE_DEBUG_H( "MODE_SELECT\n\r");
388 _status = rbc_mode_select();
389 if (USBMS_OK == _status )
\ ??ms_idleRx_4:
\ 00000136 ........ _BLF rbc_mode_select,??rbc_mode_select??rT
\ 0000013A 0028 CMP R0,#+0
\ 0000013C 0ED1 BNE ??ms_idleRx_17
390 {
391 /* the command has been fully processed */
392 ms_send_bot_status(GOOD_STATUS,0);
\ ??ms_idleRx_1:
\ 0000013E 0021 MOV R1,#+0
\ 00000140 0020 MOV R0,#+0
\ 00000142 ........ BL ms_send_bot_status
393 usbms_context.state = PROCESS_CSW;
\ 00000146 0520 MOV R0,#+5
\ 00000148 73E0 B ??ms_idleRx_16
394 }
395 else
396 {
397 /* an error occured during the processing */
398 ms_send_bot_status(COMMAND_FAILED,0);
399 usbms_context.state = PROCESS_CSW;
400 }
401 /* The internal state changes to the CBW status phase */
402 break;
403
404 case RBC_MODE_SENSE:
405 /* Process the RBC REQUEST_SENSE command */
406 TRACE_DEBUG_H( "MODE_SENSE\n\r");
407 _status = rbc_mode_sense(&_bot_cdb->mode_sense);
\ ??ms_idleRx_5:
\ 0000014A 6846 MOV R0,SP
\ 0000014C 0F30 ADD R0,#+15
\ 0000014E ........ _BLF rbc_mode_sense,??rbc_mode_sense??rT
\ 00000152 6FE0 B ??ms_idleRx_13
408 break;
409
410 case RBC_PREVENT_ALLOW_REMOVAL:
411 /* Process the RBC PREVENT_ALLOW_REMOVAL request */
412 TRACE_DEBUG_H( "PRE ALLOW_REMV\n\r");
413 _status = rbc_prevent_allow_removal();
414 if (USBMS_OK == _status )
\ ??ms_idleRx_7:
\ 00000154 ........ _BLF rbc_prevent_allow_removal,??rbc_prevent_allow_removal??rT
\ 00000158 0028 CMP R0,#+0
\ 0000015A F0D0 BEQ ??ms_idleRx_1
\ ??ms_idleRx_17:
\ 0000015C 0021 MOV R1,#+0
\ 0000015E 0120 MOV R0,#+1
\ 00000160 ........ BL ms_send_bot_status
\ 00000164 0520 MOV R0,#+5
\ 00000166 64E0 B ??ms_idleRx_16
415 {
416 /* the command has been fully processed */
417 ms_send_bot_status(GOOD_STATUS,0);
418 usbms_context.state = PROCESS_CSW;
419 }
420 else
421 {
422 /* an error occured during the processing */
423 ms_send_bot_status(COMMAND_FAILED,0);
424 usbms_context.state = PROCESS_CSW;
425 }
426 break;
427
428 case RBC_START_STOP_UNIT:
429 /* Process the RBC START_STOP_UNIT request */
430 TRACE_DEBUG_H( "ST_STOP_UNIT\n\r");
431 _status = rbc_start_stop_unit(&_bot_cdb->start_stop);
432 if (USBMS_OK == _status )
\ ??ms_idleRx_6:
\ 00000168 6846 MOV R0,SP
\ 0000016A 0F30 ADD R0,#+15
\ 0000016C ........ _BLF rbc_start_stop_unit,??rbc_start_stop_unit??rT
\ ??ms_idleRx_18:
\ 00000170 0028 CMP R0,#+0
\ 00000172 F3D1 BNE ??ms_idleRx_17
\ 00000174 E3E7 B ??ms_idleRx_1
433 {
434 /* the command has been fully processed */
435 ms_send_bot_status(GOOD_STATUS,0);
436 usbms_context.state = PROCESS_CSW;
437 }
438 else
439 {
440 /* an error occured during the processing */
441 ms_send_bot_status(COMMAND_FAILED,0);
442 usbms_context.state = PROCESS_CSW;
443 }
444 break;
445
446 case RBC_READ_CAPACITY:
447 /* Process the RBC READ_CAPACITY command */
448 TRACE_DEBUG_H( "READ_CAPA\n\r");
449 _status = rbc_read_capacity();
\ ??ms_idleRx_8:
\ 00000176 ........ _BLF rbc_read_capacity,??rbc_read_capacity??rT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -