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

📄 ms_bot.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    450                  ms_computeCSW(GOOD_STATUS,0);
   \   0000017A   0021               MOV         R1,#+0
   \   0000017C   0020               MOV         R0,#+0
   \   0000017E   ........           BL          ms_computeCSW
   \   00000182   57E0               B           ??ms_idleRx_13
    451                  /*state set by read capacity*/
    452                break;
    453          
    454                case RBC_TEST_UNIT_READY:
    455                  /* Process the RBC TEST_UNIT_READY command  */
    456                  TRACE_DEBUG_H( "TEST_UNIT\n\r");
    457                  /* media ready  */
    458                  ms_send_bot_status(GOOD_STATUS,0);
    459                  usbms_context.state = PROCESS_CSW;
    460                break;
    461          
    462                case RBC_VERIFY:
    463                  /* Process the RBC VERIFY command  */
    464                  TRACE_DEBUG_H( "VERIFY\n\r");
    465                  _status = rbc_verify_10();
    466                  if (USBMS_OK == _status)
   \                     ??ms_idleRx_11:
   \   00000184   ........           _BLF        rbc_verify_10,??rbc_verify_10??rT
   \   00000188   F2E7               B           ??ms_idleRx_18
    467                  {
    468                    /* Verify ok  */
    469                    ms_send_bot_status(GOOD_STATUS,0);
    470                    usbms_context.state = PROCESS_CSW;
    471                  }
    472                  else
    473                  {
    474                    TRACE_DEBUG_H( "ERROR\n\r");
    475                    /* verify detected an error on the media  */
    476                    ms_send_bot_status(COMMAND_FAILED,0);
    477                    usbms_context.state = PROCESS_CSW;
    478                  }
    479                break;
    480          
    481                case RBC_REQUEST_SENSE:
    482                  /* Process the RBC REQUEST_SENSE command  */
    483                  TRACE_DEBUG_H( "REQ_SENSE\n\r");
    484                  _status = rbc_request_sense();
   \                     ??ms_idleRx_2:
   \   0000018A   ........           _BLF        rbc_request_sense,??rbc_request_sense??rT
   \   0000018E   B9E7               B           ??ms_idleRx_15
    485                  /* the internal remains unchanged  */
    486                  ms_computeCSW(GOOD_STATUS,0);
    487                  usbms_context.state = USB_SEND_NO_FLASH;
    488                break;
    489          
    490                default:
    491                  TRACE_ERROR( "def uc%xh\n\r",_bot_cdb->generic_rbc.operation_code);
    492                  /* We don't know this command  */
    493                  /* the Mass Storage device is not able to satisfy this request so it stalls the appropriate endpoint */
    494                  if( !(_cbw->bmCBWFlags&0x80)
    495                      && ((_cbw->dCBWDataTransferLength_3<<24)
    496                        |(_cbw->dCBWDataTransferLength_2<<16)
    497                        |(_cbw->dCBWDataTransferLength_1<<8)
    498                        |(_cbw->dCBWDataTransferLength_0) ) )
   \                     ??ms_idleRx_12:
   \   00000190   307B               LDRB        R0,[R6, #+12]
   \   00000192   3842               TST         R0,R7
   \   00000194   0CD1               BNE         ??ms_idleRx_19
   \   00000196   F07A               LDRB        R0,[R6, #+11]
   \   00000198   0006               LSL         R0,R0,#+24
   \   0000019A   B17A               LDRB        R1,[R6, #+10]
   \   0000019C   0904               LSL         R1,R1,#+16
   \   0000019E   0143               ORR         R1,R0
   \   000001A0   707A               LDRB        R0,[R6, #+9]
   \   000001A2   0002               LSL         R0,R0,#+8
   \   000001A4   0843               ORR         R0,R1
   \   000001A6   317A               LDRB        R1,[R6, #+8]
   \   000001A8   0143               ORR         R1,R0
   \   000001AA   01D0               BEQ         ??ms_idleRx_19
    499                  {
    500                     /* Data OUT : host to device */
    501                     /* Stall the endpoint OUT */
    502                     ms_stallPipe( FW_EP_BULK_OUT );
   \   000001AC   0220               MOV         R0,#+2
   \   000001AE   00E0               B           ??ms_idleRx_20
    503                  }
    504                  else
    505                  {
    506                     /* Data IN : device to host */
    507                     /* Stall the endpoint IN */
    508                     ms_stallPipe( FW_EP_BULK_IN );
   \                     ??ms_idleRx_19:
   \   000001B0   0120               MOV         R0,#+1
   \                     ??ms_idleRx_20:
   \   000001B2   ........           BL          ms_stallPipe
    509                  }
    510                  /* Update the state of the driver*/
    511                  ms_computeCSW(COMMAND_FAILED,
    512                     (_cbw->dCBWDataTransferLength_3<<24)
    513                    |(_cbw->dCBWDataTransferLength_2<<16)
    514                    |(_cbw->dCBWDataTransferLength_1<<8)
    515                    |(_cbw->dCBWDataTransferLength_0) );
   \   000001B6   F07A               LDRB        R0,[R6, #+11]
   \   000001B8   0006               LSL         R0,R0,#+24
   \   000001BA   B17A               LDRB        R1,[R6, #+10]
   \   000001BC   0904               LSL         R1,R1,#+16
   \   000001BE   0143               ORR         R1,R0
   \   000001C0   707A               LDRB        R0,[R6, #+9]
   \   000001C2   0002               LSL         R0,R0,#+8
   \   000001C4   0843               ORR         R0,R1
   \   000001C6   317A               LDRB        R1,[R6, #+8]
   \   000001C8   0143               ORR         R1,R0
   \   000001CA   0120               MOV         R0,#+1
   \   000001CC   ........           BL          ms_computeCSW
    516          
    517                  ms_update_sense_data( SENSE_KEY_ILLEGAL_REQUEST, ASC_INVALID_COMMAND_OPERATION_CODE, ASCQ_00 );
   \   000001D0   0022               MOV         R2,#+0
   \   000001D2   2021               MOV         R1,#+32
   \   000001D4   0520               MOV         R0,#+5
   \   000001D6   ........           BL          ms_update_sense_data
    518                  usbms_context.state = RESET_IN_PROGRESS;
   \   000001DA   0420               MOV         R0,#+4
   \   000001DC   29E0               B           ??ms_idleRx_16
    519              }
    520            }
    521            else
    522            {
    523              TRACE_ERROR( "Error TB\n\r");
    524              /* We don't know this command  */
    525              /* the Mass Storage device is not able to satisfy this request so it stalls the appropriate endpoint*/
    526              if( !(_cbw->bmCBWFlags&0x80)
    527                  && ((_cbw->dCBWDataTransferLength_3<<24)
    528                    |(_cbw->dCBWDataTransferLength_2<<16)
    529                    |(_cbw->dCBWDataTransferLength_1<<8)
    530                    |(_cbw->dCBWDataTransferLength_0) ) )
   \                     ??ms_idleRx_0:
   \   000001DE   0C20               MOV         R0,#+12
   \   000001E0   0078               LDRB        R0,[R0, #+0]
   \   000001E2   3842               TST         R0,R7
   \   000001E4   10D1               BNE         ??ms_idleRx_21
   \   000001E6   0B20               MOV         R0,#+11
   \   000001E8   0078               LDRB        R0,[R0, #+0]
   \   000001EA   0006               LSL         R0,R0,#+24
   \   000001EC   0A21               MOV         R1,#+10
   \   000001EE   0978               LDRB        R1,[R1, #+0]
   \   000001F0   0904               LSL         R1,R1,#+16
   \   000001F2   0143               ORR         R1,R0
   \   000001F4   0920               MOV         R0,#+9
   \   000001F6   0078               LDRB        R0,[R0, #+0]
   \   000001F8   0002               LSL         R0,R0,#+8
   \   000001FA   0843               ORR         R0,R1
   \   000001FC   0821               MOV         R1,#+8
   \   000001FE   0978               LDRB        R1,[R1, #+0]
   \   00000200   0143               ORR         R1,R0
   \   00000202   01D0               BEQ         ??ms_idleRx_21
    531              {
    532                 /* Data OUT : host to device */
    533                 /* Stall the endpoint OUT */
    534                 ms_stallPipe( FW_EP_BULK_OUT );
   \   00000204   0220               MOV         R0,#+2
   \   00000206   00E0               B           ??ms_idleRx_22
    535              }
    536              else
    537              {
    538                 /* Data IN : device to host */
    539                 /* Stall the endpoint IN */
    540                 ms_stallPipe( FW_EP_BULK_IN );
   \                     ??ms_idleRx_21:
   \   00000208   0120               MOV         R0,#+1
   \                     ??ms_idleRx_22:
   \   0000020A   ........           BL          ms_stallPipe
    541              }
    542              /* Update the state of the driver */
    543              ms_computeCSW(COMMAND_FAILED,
    544                 (_cbw->dCBWDataTransferLength_3<<24)
    545                |(_cbw->dCBWDataTransferLength_2<<16)
    546                |(_cbw->dCBWDataTransferLength_1<<8)
    547                |(_cbw->dCBWDataTransferLength_0) );
   \   0000020E   0B20               MOV         R0,#+11
   \   00000210   0078               LDRB        R0,[R0, #+0]
   \   00000212   0006               LSL         R0,R0,#+24
   \   00000214   0A21               MOV         R1,#+10
   \   00000216   0978               LDRB        R1,[R1, #+0]
   \   00000218   0904               LSL         R1,R1,#+16
   \   0000021A   0143               ORR         R1,R0
   \   0000021C   0920               MOV         R0,#+9
   \   0000021E   0078               LDRB        R0,[R0, #+0]
   \   00000220   0002               LSL         R0,R0,#+8
   \   00000222   0843               ORR         R0,R1
   \   00000224   0821               MOV         R1,#+8
   \   00000226   0978               LDRB        R1,[R1, #+0]
   \   00000228   0143               ORR         R1,R0
   \   0000022A   0120               MOV         R0,#+1
   \   0000022C   ........           BL          ms_computeCSW
    548          
    549              usbms_context.state = RESET_IN_PROGRESS;
   \   00000230   0420               MOV         R0,#+4
   \                     ??ms_idleRx_16:
   \   00000232   2070               STRB        R0,[R4, #+0]
    550            }
    551          }
   \                     ??ms_idleRx_13:
   \   00000234   08B0               ADD         SP,#+32
   \   00000236   C046               NOP         
   \   00000238                      REQUIRE ?Subroutine21
   \   00000238                      ;; // Fall through to label ?Subroutine21

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine21:
   \   00000000   F0BC               POP         {R4-R7}
   \   00000002   01BC               POP         {R0}
   \   00000004   0047               BX          R0                 ;; return
   \   00000006   C046               NOP         
   \                     ??Subroutine21_0:
   \   00000008   ........           DC32        usbms_context + 176
    552          
    553          
    554          /******************************************************************
    555          *
    556          * SUB-ROUTINE : ms_getRx
    557          *
    558          *------------------------------------------------------------------
    559          *
    560          * purpose : Recept of data from USB
    561          *
    562          * input parameters  : none
    563          *
    564          * output parameters : none
    565          *
    566          * global data :
    567          *
    568          *******************************

⌨️ 快捷键说明

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