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

📄 usbci.lst

📁 周立功的LPC214x固件程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 00000002  A800      ADD         R0,R13,#0x0
 00000004  7800      LDRB        R0,[R0,#0x0] ; bEnble
 00000006  1C01      MOV         R1,R0
 00000008  0409      LSL         R1,R1,#0x10
 0000000A  4840      LDR         R0,=0x100
 0000000C  4301      ORR         R1,R0
 0000000E  4800      LDR         R0,=0xD80500
 00000010  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000012  FFF6      BL          USB_SendCmd?T  ; T=0x0001  (2)
  179: }
 00000014  B001      ADD         R13,#0x4
 00000016  BC08      POP         {R3}
 00000018  4718      BX          R3
 0000001A          ENDP ; 'USB_SetEndpointEnable?T'


*** CODE SEGMENT '?PR?USB_SetMode?T?USBCI':
  188: void USB_SetMode(INT8U value)
 00000000  B501      PUSH        {R0,LR}
  190:     USB_SendCmd(USBCMD_SET_MODE, ((INT32U)(value << 16)) | USBDAT_SET_MODE);
 00000002  A800      ADD         R0,R13,#0x0
 00000004  7800      LDRB        R0,[R0,#0x0] ; value
 00000006  1C01      MOV         R1,R0
 00000008  0409      LSL         R1,R1,#0x10
 0000000A  4840      LDR         R0,=0x100
 0000000C  4301      ORR         R1,R0
 0000000E  4800      LDR         R0,=0xF30500
 00000010  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000012  FFF6      BL          USB_SendCmd?T  ; T=0x0001  (2)
  191: }
 00000014  B001      ADD         R13,#0x4
 00000016  BC08      POP         {R3}
 00000018  4718      BX          R3
 0000001A          ENDP ; 'USB_SetMode?T'


*** CODE SEGMENT '?PR?USB_SetDevStatus?T?USBCI':
  200: void USB_SetDevStatus(INT8U value)
 00000000  B501      PUSH        {R0,LR}
  202:     USB_SendCmd(USBCMD_SET_DEVSTATUS, ((INT32U)(value << 16)) | USBDAT_SET_DEVSTATUS);
 00000002  A800      ADD         R0,R13,#0x0
 00000004  7800      LDRB        R0,[R0,#0x0] ; value
 00000006  1C01      MOV         R1,R0
 00000008  0409      LSL         R1,R1,#0x10
 0000000A  4840      LDR         R0,=0x100
 0000000C  4301      ORR         R1,R0
 0000000E  4800      LDR         R0,=0xFE0500
 00000010  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000012  FFF6      BL          USB_SendCmd?T  ; T=0x0001  (2)
  203: }
 00000014  B001      ADD         R13,#0x4
 00000016  BC08      POP         {R3}
 00000018  4718      BX          R3
ARM COMPILER V2.53,  USBCI                                                                 28/06/07  09:54:12  PAGE 13  

 0000001A          ENDP ; 'USB_SetDevStatus?T'


*** CODE SEGMENT '?PR?USB_GetDevStatus?T?USBCI':
  212: INT8U USB_GetDevStatus(void)
 00000000  B500      PUSH        {LR}
  214:     USB_SendCmd(USBCMD_GET_DEVSTATUS, 0);
 00000002  4800      LDR         R0,=0xFE0500
 00000004  2100      MOV         R1,#0x0
 00000006  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_SendCmd?T  ; T=0x0001  (2)
  216:     return USB_GetData(USBDAT_GET_DEVSTATUS);
 0000000A  4800      LDR         R0,=0xFE0200
 0000000C  F7FF      BL          USB_GetData?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          USB_GetData?T  ; T=0x0001  (2)
 00000010  0600      LSL         R0,R0,#0x18 ; USB_GetData?T
 00000012  0E00      LSR         R0,R0,#0x18
  217: }
 00000014  BC08      POP         {R3}
 00000016  4718      BX          R3
 00000018          ENDP ; 'USB_GetDevStatus?T'


*** CODE SEGMENT '?PR?USB_SelectEndpoint?T?USBCI':
  226: INT8U USB_SelectEndpoint(INT8U endp)
 00000000  B501      PUSH        {R0,LR}
 00000002  B081      SUB         R13,#0x4
  227: {
 00000004            ; SCOPE-START
  228:     INT32U tmp = (INT32U)(endp << 16);
 00000004  A801      ADD         R0,R13,#0x4
 00000006  7800      LDRB        R0,[R0,#0x0] ; endp
 00000008  1C01      MOV         R1,R0
 0000000A  0409      LSL         R1,R1,#0x10
 0000000C  A800      ADD         R0,R13,#0x0
 0000000E  6001      STR         R1,[R0,#0x0] ; tmp
  230:     USB_SendCmd(tmp | USBCMD_SEL_ENDP, 0);
 00000010  A800      ADD         R0,R13,#0x0
 00000012  6800      LDR         R0,[R0,#0x0] ; tmp
 00000014  4800      LDR         R1,=0x500
 00000016  4308      ORR         R0,R1
 00000018  2100      MOV         R1,#0x0
 0000001A  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          USB_SendCmd?T  ; T=0x0001  (2)
  232:     return USB_GetData(tmp | USBDAT_SEL_ENDP);
 0000001E  A800      ADD         R0,R13,#0x0
 00000020  6800      LDR         R0,[R0,#0x0] ; tmp
 00000022  4980      LDR         R1,=0x200
 00000024  4308      ORR         R0,R1
 00000026  F7FF      BL          USB_GetData?T  ; T=0x0001  (1)
 00000028  FFEB      BL          USB_GetData?T  ; T=0x0001  (2)
 0000002A  0600      LSL         R0,R0,#0x18 ; USB_GetData?T
 0000002C  0E00      LSR         R0,R0,#0x18
 0000002E            ; SCOPE-END
  233: }
 0000002E  B001      ADD         R13,#0x4
 00000030  B001      ADD         R13,#0x4
 00000032  BC08      POP         {R3}
 00000034  4718      BX          R3
 00000036          ENDP ; 'USB_SelectEndpoint?T'


*** CODE SEGMENT '?PR?USB_SelectClrIntEndpoint?T?USBCI':
  243: INT8U USB_SelectClrIntEndpoint(INT8U endp)
 00000000  B501      PUSH        {R0,LR}
 00000002  B082      SUB         R13,#0x8
  244: {
 00000004            ; SCOPE-START
  246:     INT32U tmp = (INT32U)((endp + 0x40) << 16);
 00000004  A802      ADD         R0,R13,#0x8
 00000006  7800      LDRB        R0,[R0,#0x0] ; endp
 00000008  1C01      MOV         R1,R0
ARM COMPILER V2.53,  USBCI                                                                 28/06/07  09:54:12  PAGE 14  

 0000000A  3140      ADD         R1,#0x40
 0000000C  0409      LSL         R1,R1,#0x10
 0000000E  A801      ADD         R0,R13,#0x4
 00000010  6001      STR         R1,[R0,#0x0] ; tmp
  248:     USB_SendCmd(tmp | USBCMD_SEL_CLRINT_ENDP, 0);
 00000012  A801      ADD         R0,R13,#0x4
 00000014  6800      LDR         R0,[R0,#0x0] ; tmp
 00000016  4800      LDR         R1,=0x500
 00000018  4308      ORR         R0,R1
 0000001A  2100      MOV         R1,#0x0
 0000001C  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          USB_SendCmd?T  ; T=0x0001  (2)
  249:     i = USB_GetData(tmp | USBDAT_SEL_CLRINT_ENDP);
 00000020  A801      ADD         R0,R13,#0x4
 00000022  6800      LDR         R0,[R0,#0x0] ; tmp
 00000024  4980      LDR         R1,=0x200
 00000026  4308      ORR         R0,R1
 00000028  F7FF      BL          USB_GetData?T  ; T=0x0001  (1)
 0000002A  FFEA      BL          USB_GetData?T  ; T=0x0001  (2)
 0000002C  A900      ADD         R1,R13,#0x0
 0000002E  7008      STRB        R0,[R1,#0x0] ; i
  251:     USBEpIntClr = (0x01 << endp);
 00000030  A802      ADD         R0,R13,#0x8
 00000032  7800      LDRB        R0,[R0,#0x0] ; endp
 00000034  2101      MOV         R1,#0x1
 00000036  4081      LSL         R1,R0
 00000038  4800      LDR         R0,=0xE0090038
 0000003A  6001      STR         R1,[R0,#0x0]
  253:     return i;
 0000003C  A800      ADD         R0,R13,#0x0
 0000003E  7800      LDRB        R0,[R0,#0x0] ; i
 00000040            ; SCOPE-END
  254: }
 00000040  B002      ADD         R13,#0x8
 00000042  B001      ADD         R13,#0x4
 00000044  BC08      POP         {R3}
 00000046  4718      BX          R3
 00000048          ENDP ; 'USB_SelectClrIntEndpoint?T'


*** CODE SEGMENT '?PR?USB_SetEndpointStatus?T?USBCI':
  264: void USB_SetEndpointStatus(INT8U endp, INT8U bStalled)
 00000000  B503      PUSH        {R0-R1,LR}
 00000002  B082      SUB         R13,#0x8
  265: {
 00000004            ; SCOPE-START
  266:     INT32U tmp1 = (INT32U)((endp + 0x40) << 16);
 00000004  A802      ADD         R0,R13,#0x8
 00000006  7800      LDRB        R0,[R0,#0x0] ; endp
 00000008  1C01      MOV         R1,R0
 0000000A  3140      ADD         R1,#0x40
 0000000C  0409      LSL         R1,R1,#0x10
 0000000E  A800      ADD         R0,R13,#0x0
 00000010  6001      STR         R1,[R0,#0x0] ; tmp1
  267:     INT32U tmp2 = (INT32U)(bStalled << 16); 
 00000012  A803      ADD         R0,R13,#0xC
 00000014  7800      LDRB        R0,[R0,#0x0] ; bStalled
 00000016  1C01      MOV         R1,R0
 00000018  0409      LSL         R1,R1,#0x10
 0000001A  A801      ADD         R0,R13,#0x4
 0000001C  6001      STR         R1,[R0,#0x0] ; tmp2
  269:     USB_SendCmd(tmp1 | USBCMD_SET_ENDP_STATUS, tmp2 | USBDAT_SET_ENDP_STATUS);
 0000001E  A800      ADD         R0,R13,#0x0
 00000020  6800      LDR         R0,[R0,#0x0] ; tmp1
 00000022  4800      LDR         R1,=0x500
 00000024  4308      ORR         R0,R1
 00000026  A901      ADD         R1,R13,#0x4
 00000028  6809      LDR         R1,[R1,#0x0] ; tmp2
ARM COMPILER V2.53,  USBCI                                                                 28/06/07  09:54:12  PAGE 15  

 0000002A  4A40      LDR         R2,=0x100
 0000002C  4311      ORR         R1,R2
 0000002E  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000030  FFE7      BL          USB_SendCmd?T  ; T=0x0001  (2)
 00000032            ; SCOPE-END
  270: }
 00000032  B002      ADD         R13,#0x8
 00000034  B002      ADD         R13,#0x8
 00000036  BC08      POP         {R3}
 00000038  4718      BX          R3
 0000003A          ENDP ; 'USB_SetEndpointStatus?T'


*** CODE SEGMENT '?PR?USB_ClearBuffer?T?USBCI':
  279: INT8U USB_ClearBuffer(void)
 00000000  B500      PUSH        {LR}
  282:     USB_SendCmd(USBCMD_CLEAR_BUFFER, 0);                /* 该命令没有数据阶段 */                
 00000002  4800      LDR         R0,=0xF20500
 00000004  2100      MOV         R1,#0x0
 00000006  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_SendCmd?T  ; T=0x0001  (2)
  284:     return USB_GetData(USBDAT_CLEAR_BUFFER);
 0000000A  4800      LDR         R0,=0xF20200
 0000000C  F7FF      BL          USB_GetData?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          USB_GetData?T  ; T=0x0001  (2)
 00000010  0600      LSL         R0,R0,#0x18 ; USB_GetData?T
 00000012  0E00      LSR         R0,R0,#0x18
  285: }
 00000014  BC08      POP         {R3}
 00000016  4718      BX          R3
 00000018          ENDP ; 'USB_ClearBuffer?T'


*** CODE SEGMENT '?PR?USB_ValidBuffer?T?USBCI':
  294: void USB_ValidBuffer(void)
 00000000  B500      PUSH        {LR}
  296:     USB_SendCmd(USBCMD_VALID_BUFFER, 0);
 00000002  4800      LDR         R0,=0xFA0500
 00000004  2100      MOV         R1,#0x0
 00000006  F7FF      BL          USB_SendCmd?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_SendCmd?T  ; T=0x0001  (2)
  297: }
 0000000A  BC08      POP         {R3}
 0000000C  4718      BX          R3
 0000000E          ENDP ; 'USB_ValidBuffer?T'


*** CODE SEGMENT '?PR?USB_ReadEndpoint?T?USBCI':
  314: INT8U USB_ReadEndpoint(INT8U endp, INT8U len, INT8U *buf)
 00000000  B507      PUSH        {R0-R2,LR}
 00000002  B084      SUB         R13,#0x10
  315: {
 00000004            ; SCOPE-START

⌨️ 快捷键说明

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