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

📄 ms_bot.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    226          * input parameters  : none
    227          *
    228          * output parameters : none
    229          *
    230          * global data : usbms_context.state
    231          *
    232          ******************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    233          void ms_rstProgStallIn( void )
    234          {
   \                     ms_rstProgStallIn:
   \   00000000   10B5               PUSH        {R4,LR}
    235            TRACE_DEBUG_H( "St In\n\r");
    236            /* Send the CSW using usb_send() and set state to PROCESS_CSW */
    237            usb_send((char*)&usbms_context.csw, sizeof(USBMS_CSW));
   \   00000002   ....               B           ?Subroutine20
    238            usbms_context.state = PROCESS_CSW;
    239          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine20:
   \   00000000   ....               LDR         R4,??DataTable15   ;; usbms_context
   \   00000002   0D21               MOV         R1,#+13
   \   00000004   201C               MOV         R0,R4
   \   00000006   AC30               ADD         R0,#+172
   \   00000008   ........           _BLF        usb_send,??usb_send??rT
   \   0000000C   D334               ADD         R4,#+211
   \   0000000E   0520               MOV         R0,#+5
   \   00000010   2070               STRB        R0,[R4, #+0]
   \   00000012   10BC               POP         {R4}
   \   00000014   01BC               POP         {R0}
   \   00000016   0047               BX          R0                 ;; return
    240          
    241          
    242          /******************************************************************
    243          *
    244          * SUB-ROUTINE : ms_rstProgStallOut
    245          *
    246          *------------------------------------------------------------------
    247          *
    248          * purpose : Stall of endpoint BULK OUT
    249          *
    250          * input parameters  : none
    251          *
    252          * output parameters : none
    253          *
    254          * global data : usbms_context.state
    255          *
    256          ******************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    257          void ms_rstProgStallOut( void )
    258          {
    259            TRACE_DEBUG_H( "St Out\n\r");
    260            usbms_context.state = PROCESS_CSW;
   \                     ms_rstProgStallOut:
   \   00000000   ....               LDR         R0,??DataTable6    ;; usbms_context + 211
   \   00000002   0521               MOV         R1,#+5
   \   00000004   0170               STRB        R1,[R0, #+0]
    261          }
   \   00000006   7047               BX          LR                 ;; return
    262          
    263          /******************************************************************
    264          *
    265          * SUB-ROUTINE  spc_update_sense_data
    266          *
    267          *------------------------------------------------------------------
    268          *
    269          * purpose :   Update the sense data structure
    270          *
    271          * input parameters : SenseKey : Sensekey value for the Sense data.
    272          *                    ASC      : ASC value for the Sense data.
    273          *                    ASCQ     : ASCQ value for the Sense data.
    274          *
    275          * output parameters : none
    276          *
    277          * global data :
    278          *    usbms_request_sense_data.sense_key
    279          *    usbms_request_sense_data.additional_sense_code
    280          *    usbms_request_sense_data.additional_sense_code_qualifier
    281          *
    282          ******************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    283          void ms_update_sense_data(UCHAR SenseKey,UCHAR ASC,UCHAR ASCQ)
    284          {
   \                     ms_update_sense_data:
   \   00000000   30B4               PUSH        {R4,R5}
    285            usbms_request_sense_data.sense_key                       = SenseKey;
   \   00000002   ....               LDR         R3,??DataTable5    ;; usbms_request_sense_data
   \   00000004   9C78               LDRB        R4,[R3, #+2]
   \   00000006   F025               MOV         R5,#+240
   \   00000008   2540               AND         R5,R4
   \   0000000A   0007               LSL         R0,R0,#+28
   \   0000000C   000F               LSR         R0,R0,#+28
   \   0000000E   2843               ORR         R0,R5
   \   00000010   9870               STRB        R0,[R3, #+2]
    286            usbms_request_sense_data.additional_sense_code           = ASC;
   \   00000012   1973               STRB        R1,[R3, #+12]
    287            usbms_request_sense_data.additional_sense_code_qualifier = ASCQ;
   \   00000014   5A73               STRB        R2,[R3, #+13]
    288          }
   \   00000016   30BC               POP         {R4,R5}
   \   00000018   7047               BX          LR                 ;; return
    289          
    290          
    291          /******************************************************************
    292          *
    293          * SUB-ROUTINE : ms_idleRx
    294          *
    295          *------------------------------------------------------------------
    296          *
    297          * purpose : Treatment of RBC command
    298          *
    299          * input parameters  : none
    300          *
    301          * output parameters : none
    302          *
    303          * global data :
    304          *
    305          ******************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    306          void ms_idleRx( void )
    307          {
   \                     ms_idleRx:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
   \   00000002   88B0               SUB         SP,#+32
   \   00000004   ....               LDR         R4,??DataTable6    ;; usbms_context + 211
   \   00000006   8027               MOV         R7,#+128
   \   00000008   1F21               MOV         R1,#+31
   \   0000000A   6846               MOV         R0,SP
    308            char           _buff[CBW_SIZE];
    309            USBMS_CBW     *_cbw = NULL;
    310            USBMS_BOT_CDB *_bot_cdb = NULL;
    311            USBMS_RETURN  _status;
    312          
    313            if( CBW_SIZE == ms_retreiveTb( _buff, CBW_SIZE ) )
   \   0000000C   ........           _BLF        ms_retreiveTb,??ms_retreiveTb??rT
   \   00000010   1F28               CMP         R0,#+31
   \   00000012   ....               BEQ         .+5
   \   00000014   E3E0               B           ??ms_idleRx_0
    314            {
    315              _cbw = (USBMS_CBW*)_buff;
    316          
    317              usbms_context.csw.dCSWTag_0 = _cbw->dCBWTag_0;
   \   00000016   ....               LDR         R5,??Subroutine21_0  ;; usbms_context + 176
   \   00000018   6E46               MOV         R6,SP
   \   0000001A   3079               LDRB        R0,[R6, #+4]
   \   0000001C   2870               STRB        R0,[R5, #+0]
    318              usbms_context.csw.dCSWTag_1 = _cbw->dCBWTag_1;
   \   0000001E   7079               LDRB        R0,[R6, #+5]
   \   00000020   6870               STRB        R0,[R5, #+1]
    319              usbms_context.csw.dCSWTag_2 = _cbw->dCBWTag_2;
   \   00000022   B079               LDRB        R0,[R6, #+6]
   \   00000024   A870               STRB        R0,[R5, #+2]
    320              usbms_context.csw.dCSWTag_3 = _cbw->dCBWTag_3;
   \   00000026   F079               LDRB        R0,[R6, #+7]
   \   00000028   E870               STRB        R0,[R5, #+3]
    321          
    322              _bot_cdb = (USBMS_BOT_CDB*)&_cbw->CBWCB;
    323              usbms_context.current_lun = _cbw->bCBWLUN;
   \   0000002A   707B               LDRB        R0,[R6, #+13]
   \   0000002C   6872               STRB        R0,[R5, #+9]
    324          
    325              TRACE_DEBUG_H( "RBC:0x%X    ",_bot_cdb->generic_rbc.operation_code);
    326          
    327              /* Process the RBC request  */
    328              switch (_bot_cdb->generic_rbc.operation_code)
   \   0000002E   F17B               LDRB        R1,[R6, #+15]
   \   00000030   0029               CMP         R1,#+0
   \   00000032   ....               BNE         .+5
   \   00000034   83E0               B           ??ms_idleRx_1
   \   00000036   0329               CMP         R1,#+3
   \   00000038   ....               BNE         .+5
   \   0000003A   A6E0               B           ??ms_idleRx_2
   \   0000003C   1229               CMP         R1,#+18
   \   0000003E   4BD0               BEQ         ??ms_idleRx_3
   \   00000040   1529               CMP         R1,#+21
   \   00000042   78D0               BEQ         ??ms_idleRx_4
   \   00000044   1A29               CMP         R1,#+26
   \   00000046   ....               BNE         .+5
   \   00000048   7FE0               B           ??ms_idleRx_5
   \   0000004A   1B29               CMP         R1,#+27
   \   0000004C   ....               BNE         .+5
   \   0000004E   8BE0               B           ??ms_idleRx_6
   \   00000050   1E29               CMP         R1,#+30
   \   00000052   ....               BNE         .+5
   \   00000054   7EE0               B           ??ms_idleRx_7
   \   00000056   2529               CMP         R1,#+37
   \   00000058   ....               BNE         .+5
   \   0000005A   8CE0               B           ??ms_idleRx_8
   \   0000005C   2829               CMP         R1,#+40
   \   0000005E   20D0               BEQ         ??ms_idleRx_9
   \   00000060   2A29               CMP         R1,#+42
   \   00000062   03D0               BEQ         ??ms_idleRx_10
   \   00000064   2F29               CMP         R1,#+47
   \   00000066   ....               BNE         .+5
   \   00000068   8CE0               B           ??ms_idleRx_11
   \   0000006A   91E0               B           ??ms_idleRx_12
    329              {
    330          
    331          
    332          
    333                case RBC_WRITE_10:
    334                  /* Process the RBC WRITE_10 command  */
    335                  TRACE_DEBUG_H( "WRITE_10\n\r");
    336                  usbms_context.usb_lun[usbms_context.current_lun].cur_request.transferred_size = 0L;
   \                     ??ms_idleRx_10:
   \   0000006C   3821               MOV         R1,#+56
   \   0000006E   4843               MUL         R0,R1
   \   00000070   ....               LDR         R1,??DataTable15   ;; usbms_context
   \   00000072   0818               ADD         R0,R1,R0
   \   00000074   0021               MOV         R1,#+0
   \   00000076   4163               STR         R1,[R0, #+52]
    337                  usbms_context.usb_lun[usbms_context.current_lun].cur_request.buffer_size = (_cbw->dCBWDataTransferLength_3<<24)
    338                                                                |(_cbw->dCBWDataTransferLength_2<<16)
    339                                                                |(_cbw->dCBWDataTransferLength_1<<8)
    340                                                                |(_cbw->dCBWDataTransferLength_0);
   \   00000078   687A               LDRB        R0,[R5, #+9]
   \   0000007A   3821               MOV         R1,#+56
   \   0000007C   4843               MUL         R0,R1
   \   0000007E   ....               LDR         R1,??DataTable15   ;; usbms_context
   \   00000080   0818               ADD         R0,R1,R0
   \   00000082   F17A               LDRB        R1,[R6, #+11]
   \   00000084   0906               LSL         R1,R1,#+24
   \   00000086   B27A               LDRB        R2,[R6, #+10]

⌨️ 快捷键说明

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