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

📄 mscuser.lst

📁 开发ARM,基于IAR环境下的C代码开发
💻 LST
📖 第 1 页 / 共 5 页
字号:
 0000000E  0412      LSL         R2,R2,#0x10
 00000010  4310      ORR         R0,R2
 00000012  78CA      LDRB        R2,[R1,#0x3] ; CBW+8
 00000014  0612      LSL         R2,R2,#0x18
 00000016  4310      ORR         R0,R2
 00000018  2800      CMP         R0,#0x0
 0000001A  D106      BNE         L_29  ; T=0x0000002A
  226:     CSW.bStatus = CSW_PHASE_ERROR;
 0000001C  2102      MOV         R1,#0x2
 0000001E  4800      LDR         R0,=CSW + 0xC ; CSW+12
 00000020  7001      STRB        R1,[R0,#0x0] ; CSW+12
  227:     MSC_SetCSW();
 00000022  F7FF      BL          MSC_SetCSW?T  ; T=0x0001  (1)
 00000024  FFED      BL          MSC_SetCSW?T  ; T=0x0001  (2)
  228:     return (FALSE);
 00000026  2000      MOV         R0,#0x0
 00000028  E00F      B           L_30  ; T=0x0000004A
  229:   }
 0000002A          L_29:
  230:   if ((CBW.bmFlags & 0x80) == 0) {
 0000002A  4800      LDR         R0,=CBW + 0xC ; CBW+12
 0000002C  7800      LDRB        R0,[R0,#0x0] ; CBW+12
 0000002E  2180      MOV         R1,#0x80
 00000030  4208      TST         R0,R1
 00000032  D109      BNE         L_31  ; T=0x00000048
  231:     USB_SetStallEP(MSC_EP_OUT);
 00000034  2002      MOV         R0,#0x2
 00000036  F7FF      BL          USB_SetStallEP?T  ; T=0x0001  (1)
 00000038  FFE3      BL          USB_SetStallEP?T  ; T=0x0001  (2)
  232:     CSW.bStatus = CSW_PHASE_ERROR;
 0000003A  2102      MOV         R1,#0x2
 0000003C  4800      LDR         R0,=CSW + 0xC ; CSW+12
 0000003E  7001      STRB        R1,[R0,#0x0] ; CSW+12
  233:     MSC_SetCSW();
 00000040  F7FF      BL          MSC_SetCSW?T  ; T=0x0001  (1)
 00000042  FFDE      BL          MSC_SetCSW?T  ; T=0x0001  (2)
  234:     return (FALSE);
 00000044  2000      MOV         R0,#0x0
 00000046  E000      B           L_30  ; T=0x0000004A
  235:   }
 00000048          L_31:
  236:   return (TRUE);
 00000048  2001      MOV         R0,#0x1
  237: }
 0000004A          L_30:
 0000004A  BC08      POP         {R3}
 0000004C  4718      BX          R3
 0000004E          ENDP ; 'DataInFormat?T'


*** CODE SEGMENT '?PR?DataInTransfer?T?mscuser':
  246: void DataInTransfer (void) {
 00000000  B500      PUSH        {LR}
  248:   if (BulkLen > CBW.dDataLength) {
 00000002  4800      LDR         R0,=BulkLen ; BulkLen
 00000004  7800      LDRB        R0,[R0,#0x0] ; BulkLen
 00000006  4800      LDR         R2,=CBW + 0x8 ; CBW+8
 00000008  7811      LDRB        R1,[R2,#0x0] ; CBW+8
 0000000A  7853      LDRB        R3,[R2,#0x1] ; CBW+8
 0000000C  021B      LSL         R3,R3,#0x8
 0000000E  4319      ORR         R1,R3
 00000010  7893      LDRB        R3,[R2,#0x2] ; CBW+8
 00000012  041B      LSL         R3,R3,#0x10
 00000014  4319      ORR         R1,R3
 00000016  78D3      LDRB        R3,[R2,#0x3] ; CBW+8
 00000018  061B      LSL         R3,R3,#0x18
 0000001A  4319      ORR         R1,R3
ARM COMPILER V2.53,  mscuser                                                               24/09/06  22:23:19  PAGE 20  

 0000001C  4288      CMP         R0,R1
 0000001E  D90E      BLS         L_32  ; T=0x0000003E
  249:     BulkLen = CBW.dDataLength;
 00000020  4800      LDR         R2,=CBW + 0x8 ; CBW+8
 00000022  7811      LDRB        R1,[R2,#0x0] ; CBW+8
 00000024  7850      LDRB        R0,[R2,#0x1] ; CBW+8
 00000026  0200      LSL         R0,R0,#0x8
 00000028  4301      ORR         R1,R0
 0000002A  7890      LDRB        R0,[R2,#0x2] ; CBW+8
 0000002C  0400      LSL         R0,R0,#0x10
 0000002E  4301      ORR         R1,R0
 00000030  78D0      LDRB        R0,[R2,#0x3] ; CBW+8
 00000032  0600      LSL         R0,R0,#0x18
 00000034  4301      ORR         R1,R0
 00000036  0609      LSL         R1,R1,#0x18
 00000038  0E09      LSR         R1,R1,#0x18
 0000003A  4800      LDR         R0,=BulkLen ; BulkLen
 0000003C  7001      STRB        R1,[R0,#0x0] ; BulkLen
  250:   }
 0000003E          L_32:
  252:   USB_WriteEP(MSC_EP_IN, BulkBuf, BulkLen);
 0000003E  4800      LDR         R0,=BulkLen ; BulkLen
 00000040  7800      LDRB        R0,[R0,#0x0] ; BulkLen
 00000042  1C02      MOV         R2,R0
 00000044  4800      LDR         R1,=BulkBuf ; BulkBuf
 00000046  2081      MOV         R0,#0x81
 00000048  F7FF      BL          USB_WriteEP?T  ; T=0x0001  (1)
 0000004A  FFDA      BL          USB_WriteEP?T  ; T=0x0001  (2)
  253:   BulkStage = MSC_BS_DATA_IN_LAST;
 0000004C  2103      MOV         R1,#0x3
 0000004E  4800      LDR         R0,=BulkStage ; BulkStage
 00000050  7001      STRB        R1,[R0,#0x0] ; BulkStage
  255:   CSW.dDataResidue -= BulkLen;
 00000052  4800      LDR         R0,=BulkLen ; BulkLen
 00000054  7800      LDRB        R0,[R0,#0x0] ; BulkLen
 00000056  1C02      MOV         R2,R0
 00000058  4800      LDR         R0,=CSW + 0x8 ; CSW+8
 0000005A  7801      LDRB        R1,[R0,#0x0] ; CSW+8
 0000005C  7843      LDRB        R3,[R0,#0x1] ; CSW+8
 0000005E  021B      LSL         R3,R3,#0x8
 00000060  4319      ORR         R1,R3
 00000062  7883      LDRB        R3,[R0,#0x2] ; CSW+8
 00000064  041B      LSL         R3,R3,#0x10
 00000066  4319      ORR         R1,R3
 00000068  78C3      LDRB        R3,[R0,#0x3] ; CSW+8
 0000006A  061B      LSL         R3,R3,#0x18
 0000006C  4319      ORR         R1,R3
 0000006E  1A89      SUB         R1,R2
 00000070  7001      STRB        R1,[R0,#0x0] ; CSW+8
 00000072  0A09      LSR         R1,R1,#0x8
 00000074  7041      STRB        R1,[R0,#0x1] ; CSW+8
 00000076  0A09      LSR         R1,R1,#0x8
 00000078  7081      STRB        R1,[R0,#0x2] ; CSW+8
 0000007A  0A09      LSR         R1,R1,#0x8
 0000007C  70C1      STRB        R1,[R0,#0x3] ; CSW+8
  256:   CSW.bStatus = CSW_CMD_PASSED;
 0000007E  2100      MOV         R1,#0x0
 00000080  4800      LDR         R0,=CSW + 0xC ; CSW+12
 00000082  7001      STRB        R1,[R0,#0x0] ; CSW+12
  257: }
 00000084  BC08      POP         {R3}
 00000086  4718      BX          R3
 00000088          ENDP ; 'DataInTransfer?T'


*** CODE SEGMENT '?PR?MSC_TestUnitReady?T?mscuser':
  266: void MSC_TestUnitReady (void) {
 00000000  B500      PUSH        {LR}
ARM COMPILER V2.53,  mscuser                                                               24/09/06  22:23:19  PAGE 21  

  268:   if (CBW.dDataLength != 0) {
 00000002  4800      LDR         R1,=CBW + 0x8 ; CBW+8
 00000004  7808      LDRB        R0,[R1,#0x0] ; CBW+8
 00000006  784A      LDRB        R2,[R1,#0x1] ; CBW+8
 00000008  0212      LSL         R2,R2,#0x8
 0000000A  4310      ORR         R0,R2
 0000000C  788A      LDRB        R2,[R1,#0x2] ; CBW+8
 0000000E  0412      LSL         R2,R2,#0x10
 00000010  4310      ORR         R0,R2
 00000012  78CA      LDRB        R2,[R1,#0x3] ; CBW+8
 00000014  0612      LSL         R2,R2,#0x18
 00000016  4310      ORR         R0,R2
 00000018  2800      CMP         R0,#0x0
 0000001A  D00B      BEQ         L_33  ; T=0x00000034
  269:     if ((CBW.bmFlags & 0x80) != 0) {
 0000001C  4800      LDR         R0,=CBW + 0xC ; CBW+12
 0000001E  7800      LDRB        R0,[R0,#0x0] ; CBW+12
 00000020  2180      MOV         R1,#0x80
 00000022  4208      TST         R0,R1
 00000024  D003      BEQ         L_34  ; T=0x0000002E
  270:       USB_SetStallEP(MSC_EP_IN);
 00000026  2081      MOV         R0,#0x81
 00000028  F7FF      BL          USB_SetStallEP?T  ; T=0x0001  (1)
 0000002A  FFEA      BL          USB_SetStallEP?T  ; T=0x0001  (2)
  271:     } else {
 0000002C  E002      B           L_33  ; T=0x00000034
 0000002E          L_34:
  272:       USB_SetStallEP(MSC_EP_OUT);
 0000002E  2002      MOV         R0,#0x2
 00000030  F7FF      BL          USB_SetStallEP?T  ; T=0x0001  (1)
 00000032  FFE6      BL          USB_SetStallEP?T  ; T=0x0001  (2)
  274:   }
 00000034          L_33:
  276:   CSW.bStatus = CSW_CMD_PASSED;
 00000034  2100      MOV         R1,#0x0
 00000036  4800      LDR         R0,=CSW + 0xC ; CSW+12
 00000038  7001      STRB        R1,[R0,#0x0] ; CSW+12
  277:   MSC_SetCSW();
 0000003A  F7FF      BL          MSC_SetCSW?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          MSC_SetCSW?T  ; T=0x0001  (2)
  278: }
 0000003E  BC08      POP         {R3}
 00000040  4718      BX          R3
 00000042          ENDP ; 'MSC_TestUnitReady?T'


*** CODE SEGMENT '?PR?MSC_RequestSense?T?mscuser':
  287: void MSC_RequestSense (void) {
 00000000  B500      PUSH        {LR}
  289:   if (!DataInFormat()) return;
 00000002  F7FF      BL          DataInFormat?T  ; T=0x0001  (1)
 00000004  FFFD      BL          DataInFormat?T  ; T=0x0001  (2)
 00000006  2800      CMP         R0,#0x0 ; DataInFormat?T
 00000008  D03A      BEQ         L_37  ; T=0x00000080
  291:   BulkBuf[ 0] = 0x70;          /* Response Code */
 0000000A  2170      MOV         R1,#0x70
 0000000C  4800      LDR         R0,=BulkBuf ; BulkBuf
 0000000E  7001      STRB        R1,[R0,#0x0] ; BulkBuf
  292:   BulkBuf[ 1] = 0x00;
 00000010  2100      MOV         R1,#0x0
 00000012  4800      LDR         R0,=BulkBuf + 0x1 ; BulkBuf+1
 00000014  7001      STRB        R1,[R0,#0x0] ; BulkBuf+1
  293:   BulkBuf[ 2] = 0x02;          /* Sense Key */
 00000016  2102      MOV         R1,#0x2
 00000018  4800      LDR         R0,=BulkBuf + 0x2 ; BulkBuf+2
 0000001A  7001      STRB        R1,[R0,#0x0] ; BulkBuf+2
  294:   BulkBuf[ 3] = 0x00;
 0000001C  2100      MOV         R1,#0x0
ARM COMPILER V2.53,  mscuser                                                               24/09/06  22:23:19  PAGE 22  

 0000001E  4800      LDR         R0,=BulkBuf + 0x3 ; BulkBuf+3
 00000020  7001      STRB        R1,[R0,#0x0] ; BulkBuf+3
  295:   BulkBuf[ 4] = 0x00;
 00000022  2100      MOV         R1,#0x0
 00000024  4800      LDR         R0,=BulkBuf + 0x4 ; BulkBuf+4
 00000026  7001      STRB        R1,[R0,#0x0] ; BulkBuf+4
  296:   BulkBuf[ 5] = 0x00;
 00000028  2100      MOV         R1,#0x0
 0000002A  4800      LDR         R0,=BulkBuf + 0x5 ; BulkBuf+5
 0000002C  7001      STRB        R1,[R0,#0x0] ; BulkBuf+5
  297:   BulkBuf[ 6] = 0x00;
 0000002E  2100      MOV         R1,#0x0
 00000030  4800      LDR         R0,=BulkBuf + 0x6 ; BulkBuf+6
 00000032  7001      STRB        R1,[R0,#0x0] ; BulkBuf+6
  298:   BulkBuf[ 7] = 0x0A;          /* Additional Length */
 00000034  210A      MOV         R1,#0xA
 00000036  4800      LDR         R0,=BulkBuf + 0x7 ; BulkBuf+7
 00000038  7001      STRB        R1,[R0,#0x0] ; BulkBuf+7
  299:   BulkBuf[ 8] = 0x00;
 0000003A  2100      MOV         R1,#0x0
 0000003C  4800      LDR         R0,=BulkBuf + 0x8 ; BulkBuf+8
 0000003E  7001      STRB        R1,[R0,#0x0] ; BulkBuf+8
  300:   BulkBuf[ 9] = 0x00;
 00000040  2100      MOV         R1,#0x0
 00000042  4800      LDR         R0,=BulkBuf + 0x9 ; BulkBuf+9
 00000044  7001      STRB        R1,[R0,#0x0] ; BulkBuf+9
  301:   BulkBuf[10] = 0x00;
 00000046  2100      MOV         R1,#0x0
 00000048  4800      LDR         R0,=BulkBuf + 0xA ; BulkBuf+10
 0000004A  7001      STRB        R1,[R0,#0x0] ; BulkBuf+10
  302:   BulkBuf[11] = 0x00;
 0000004C  2100      MOV         R1,#0x0
 0000004E  4800      LDR         R0,=BulkBuf + 0xB ; BulkBuf+11
 00000050  7001      STRB        R1,[R0,#0x0] ; BulkBuf+11
  303:   BulkBuf[12] = 0x30;          /* ASC */
 00000052  2130      MOV         R1,#0x30
 00000054  4800      LDR         R0,=BulkBuf + 0xC ; BulkBuf+12
 00000056  7001      STRB        R1,[R0,#0x0] ; BulkBuf+12
  304:   BulkBuf[13] = 0x01;          /* ASCQ */
 00000058  2101      MOV         R1,#0x1
 0000005A  4800      LDR         R0,=BulkBuf + 0xD ; BulkBuf+13
 0000005C  7001      STRB        R1,[R0,#0x0] ; BulkBuf+13
  305:   BulkBuf[14] = 0x00;
 0000005E  2100      MOV         R1,#0x0
 00000060  4800      LDR         R0,=BulkBuf + 0xE ; BulkBuf+14
 00000062  7001      STRB        R1,[R0,#0x0] ; BulkBuf+14
  306:   BulkBuf[15] = 0x00;
 00000064  2100      MOV         R1,#0x0
 00000066  4800      LDR         R0,=BulkBuf + 0xF ; BulkBuf+15
 00000068  7001      STRB        R1,[R0,#0x0] ; BulkBuf+15
  307:   BulkBuf[16] = 0x00;
 0000006A  2100      MOV         R1,#0x0
 0000006C  4800      LDR         R0,=BulkBuf + 0x10 ; BulkBuf+16
 0000006E  7001      STRB        R1,[R0,#0x0] ; BulkBuf+16
  308:   BulkBuf[17] = 0x00;
 00000070  2100      MOV         R1,#0x0
 00000072  4800      LDR         R0,=BulkBuf + 0x11 ; BulkBuf+17
 00000074  7001      STRB        R1,[R0,#0x0] ; BulkBuf+17
  310:   BulkLen = 18;
 00000076  2112      MOV         R1,#0x12
 00000078  4800      LDR         R0,=BulkLen ; BulkLen
 0000007A  7001      STRB        R1,[R0,#0x0] ; BulkLen
  311:   DataInTransfer();
 0000007C  F7FF      BL          DataInTransfer?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          DataInTransfer?T  ; T=0x0001  (2)
  312: }
ARM COMPILER V2.53,  mscuser                                                               24/09/06  22:23:19  PAGE 23  

 00000080          L_37:
 00000080  BC08      POP         {R3}
 00000082  4718      BX          R3
 00000084          ENDP ; 'MSC_RequestSense?T'


*** CODE SEGMENT '?PR?MSC_Inquiry?T?mscuser':
  321: void MSC_Inquiry (void) {
 00000000  B500      PUSH        {LR}
  323:   if (!DataInFormat()) return;
 00000002  F7FF      BL          DataInFormat?T  ; T=0x0001  (1)
 00000004  FFFD      BL          DataInFormat?T  ; T=0x0001  (2)
 00000006  2800      CMP         R0,#0x0 ; DataInFormat?T
 00000008  D070      BEQ         L_39  ; T=0x000000EC
  325:   BulkBuf[ 0] = 0x00;          /* Direct Access Device */
 0000000A  2100      MOV         R1,#0x0
 0000000C  4800      LDR         R0,=BulkBuf ; BulkBuf
 0000000E  7001      STRB        R1,[R0,#0x0] ; BulkBuf
  326:   BulkBuf[ 1] = 0x80;          /* RMB = 1: Removable Medium */
 00000010  2180      MOV         R1,#0x80
 00000012  4800      LDR         R0,=BulkBuf + 0x1 ; BulkBuf+1
 00000014  7001      STRB        R1,[R0,#0x0] ; BulkBuf+1
  327:   BulkBuf[ 2] = 0x00;          /* Version: No conformance claim to standard */
 00000016  2100      MOV         R1,#0x0
 00000018  4800      LDR         R0,=BulkBuf + 0x2 ; BulkBuf+2
 0000001A  7001      STRB        R1,[R0,#0x0] ; BulkBuf+2
  328:   BulkBuf[ 3] = 0x01;
 0000001C  2101      MOV         R1,#0x1
 0000001E  4800      LDR         R0,=BulkBuf + 0x3 ; BulkBuf+3
 00000020  7001      STRB        R1,[R0,#0x0] ; BulkBuf+3
  330:   BulkBuf[ 4] = 36-4;          /* Addition

⌨️ 快捷键说明

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