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

📄 usbdriver.lst

📁 周立功的LPC214x固件程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 0000000A  6001      STR         R1,[R0,#0x0] ; ep_st
  275:     if(ep_st & USB_ENDP00)
 0000000C  A800      ADD         R0,R13,#0x0
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 15  

 0000000E  6800      LDR         R0,[R0,#0x0] ; ep_st
 00000010  2101      MOV         R1,#0x1
 00000012  4208      TST         R0,R1
 00000014  D001      BEQ         L_21  ; T=0x0000001A
  276:         ep0_rxdone();                                   /* 控制端点接收数据处理 process controll endpoint receive data */
 00000016  F7FF      BL          ep0_rxdone?T  ; T=0x0001  (1)
 00000018  FFF3      BL          ep0_rxdone?T  ; T=0x0001  (2)
 0000001A          L_21:
  277:     if(ep_st & USB_ENDP01)
 0000001A  A800      ADD         R0,R13,#0x0
 0000001C  6800      LDR         R0,[R0,#0x0] ; ep_st
 0000001E  2102      MOV         R1,#0x2
 00000020  4208      TST         R0,R1
 00000022  D001      BEQ         L_22  ; T=0x00000028
  278:         ep0_txdone();                                   /* 控制端点发送数据处理 process controll endpoint transmit data */
 00000024  F7FF      BL          ep0_txdone?T  ; T=0x0001  (1)
 00000026  FFEC      BL          ep0_txdone?T  ; T=0x0001  (2)
 00000028          L_22:
  280:     if(ep_st & USB_ENDP02)
 00000028  A800      ADD         R0,R13,#0x0
 0000002A  6800      LDR         R0,[R0,#0x0] ; ep_st
 0000002C  2104      MOV         R1,#0x4
 0000002E  4208      TST         R0,R1
 00000030  D001      BEQ         L_23  ; T=0x00000036
  281:         ep1_rxdone();                                   /* 端点1接收数据处理    process logic endpoint 1 receive data */    
 00000032  F7FF      BL          ep1_rxdone?T  ; T=0x0001  (1)
 00000034  FFE5      BL          ep1_rxdone?T  ; T=0x0001  (2)
 00000036          L_23:
  282:     if(ep_st & USB_ENDP03)
 00000036  A800      ADD         R0,R13,#0x0
 00000038  6800      LDR         R0,[R0,#0x0] ; ep_st
 0000003A  2108      MOV         R1,#0x8
 0000003C  4208      TST         R0,R1
 0000003E  D001      BEQ         L_24  ; T=0x00000044
  283:         ep1_txdone();                                   /* 端点1发送数据处理    process logic endpoint 1 transmit data */
 00000040  F7FF      BL          ep1_txdone?T  ; T=0x0001  (1)
 00000042  FFDE      BL          ep1_txdone?T  ; T=0x0001  (2)
 00000044          L_24:
  285:     if(ep_st & USB_ENDP04)
 00000044  A800      ADD         R0,R13,#0x0
 00000046  6800      LDR         R0,[R0,#0x0] ; ep_st
 00000048  2110      MOV         R1,#0x10
 0000004A  4208      TST         R0,R1
 0000004C  D001      BEQ         L_25  ; T=0x00000052
  286:         ep2_rxdone();                                   /* 端点2接收数据处理    process logic endpoint 2 receive data */    
 0000004E  F7FF      BL          ep2_rxdone?T  ; T=0x0001  (1)
 00000050  FFD7      BL          ep2_rxdone?T  ; T=0x0001  (2)
 00000052          L_25:
  287:     if(ep_st & USB_ENDP05)  
 00000052  A800      ADD         R0,R13,#0x0
 00000054  6800      LDR         R0,[R0,#0x0] ; ep_st
 00000056  2120      MOV         R1,#0x20
 00000058  4208      TST         R0,R1
 0000005A  D001      BEQ         L_26  ; T=0x00000060
  288:         ep2_txdone();                                   /* 端点2发送数据处理    process logic endpoint 2 transmit data */   
 0000005C  F7FF      BL          ep2_txdone?T  ; T=0x0001  (1)
 0000005E  FFD0      BL          ep2_txdone?T  ; T=0x0001  (2)
 00000060          L_26:
  290:     USBDevIntClr = SLOWINTERRUPT;
 00000060  2104      MOV         R1,#0x4
 00000062  4800      LDR         R0,=0xE0090008
 00000064  6001      STR         R1,[R0,#0x0]
 00000066            ; SCOPE-END
  291: }
 00000066  B001      ADD         R13,#0x4
 00000068  BC08      POP         {R3}
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 16  

 0000006A  4718      BX          R3
 0000006C          ENDP ; 'Usb_LPService?T'


*** CODE SEGMENT '?PR?ep1_txdone?T?USBDriver':
  300: void ep1_txdone(void)
 00000000  B500      PUSH        {LR}
  302:     USB_SelectClrIntEndpoint(3);                         /* 选择端点并清除中断  select endpoint/clear interrupt */
 00000002  2003      MOV         R0,#0x3
 00000004  F7FF      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (1)
 00000006  FFFC      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (2)
  303: }
 00000008  BC08      POP         {R3}
 0000000A  4718      BX          R3
 0000000C          ENDP ; 'ep1_txdone?T'


*** CODE SEGMENT '?PR?ep1_rxdone?T?USBDriver':
  312: void ep1_rxdone(void)
 00000000  B500      PUSH        {LR}
 00000002  B081      SUB         R13,#0x4
  313: {
 00000004            ; SCOPE-START
  316:     USB_SelectClrIntEndpoint(2);                         /* 选择端点并清除中断      select endpoint/clear interrupt */
 00000004  2002      MOV         R0,#0x2
 00000006  F7FF      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (2)
  318:     len = USB_ReadEndpoint(2,sizeof(GenEpBuf),GenEpBuf); /* 从接收缓冲区中读出数据  read data from EP RAM */
 0000000A  4800      LDR         R2,=GenEpBuf ; GenEpBuf
 0000000C  2002      MOV         R0,#0x2
 0000000E  2110      MOV         R1,#0x10
 00000010  F7FF      BL          USB_ReadEndpoint?T  ; T=0x0001  (1)
 00000012  FFF6      BL          USB_ReadEndpoint?T  ; T=0x0001  (2)
 00000014  A900      ADD         R1,R13,#0x0
 00000016  7008      STRB        R0,[R1,#0x0] ; len
  319:     if(len != 0)
 00000018  A800      ADD         R0,R13,#0x0
 0000001A  7800      LDRB        R0,[R0,#0x0] ; len
 0000001C  2800      CMP         R0,#0x0
 0000001E  D004      BEQ         L_27  ; T=0x0000002A
  320:         bEPPflags.bits.ep1_rxdone = 1;                   /* 标识该端点收到数据      flag endpoint received data */
 00000020  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000022  6801      LDR         R1,[R0,#0x0] ; bEPPflags
 00000024  4800      LDR         R2,=0x400
 00000026  4311      ORR         R1,R2
 00000028  6001      STR         R1,[R0,#0x0] ; bEPPflags
 0000002A          L_27:
 0000002A            ; SCOPE-END
  321: }
 0000002A  B001      ADD         R13,#0x4
 0000002C  BC08      POP         {R3}
 0000002E  4718      BX          R3
 00000030          ENDP ; 'ep1_rxdone?T'


*** CODE SEGMENT '?PR?ep2_txdone?T?USBDriver':
  330: void ep2_txdone(void)
 00000000  B500      PUSH        {LR}
  332:     USB_SelectClrIntEndpoint(5);                         /* 选择端点并清除中断  select endpoint/clear interrupt */
 00000002  2005      MOV         R0,#0x5
 00000004  F7FF      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (1)
 00000006  FFFC      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (2)
  333: }
 00000008  BC08      POP         {R3}
 0000000A  4718      BX          R3
 0000000C          ENDP ; 'ep2_txdone?T'


*** CODE SEGMENT '?PR?ep2_rxdone?T?USBDriver':
  342: void ep2_rxdone(void)
 00000000  B500      PUSH        {LR}
 00000002  B081      SUB         R13,#0x4
  343: {
 00000004            ; SCOPE-START
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 17  

  346:     USB_SelectClrIntEndpoint(4);                         /* 选择端点并清除中断      select endpoint/clear interrupt */
 00000004  2004      MOV         R0,#0x4
 00000006  F7FF      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_SelectClrIntEndpoint?T  ; T=0x0001  (2)
  348:     len = USB_ReadEndpoint(4,sizeof(EpBuf),EpBuf);       /* 从接收缓冲区中读出数据  read data from EP RAM */
 0000000A  4800      LDR         R2,=EpBuf ; EpBuf
 0000000C  2004      MOV         R0,#0x4
 0000000E  2140      MOV         R1,#0x40
 00000010  F7FF      BL          USB_ReadEndpoint?T  ; T=0x0001  (1)
 00000012  FFF6      BL          USB_ReadEndpoint?T  ; T=0x0001  (2)
 00000014  A900      ADD         R1,R13,#0x0
 00000016  7008      STRB        R0,[R1,#0x0] ; len
  349:     if (len != 0)
 00000018  A800      ADD         R0,R13,#0x0
 0000001A  7800      LDRB        R0,[R0,#0x0] ; len
 0000001C  2800      CMP         R0,#0x0
 0000001E  D004      BEQ         L_28  ; T=0x0000002A
  350:         bEPPflags.bits.ep2_rxdone = 1;                   /* 标识该端点收到数据      flag endpoint received data */
 00000020  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000022  6801      LDR         R1,[R0,#0x0] ; bEPPflags
 00000024  4800      LDR         R2,=0x800
 00000026  4311      ORR         R1,R2
 00000028  6001      STR         R1,[R0,#0x0] ; bEPPflags
 0000002A          L_28:
 0000002A            ; SCOPE-END
  351: }
 0000002A  B001      ADD         R13,#0x4
 0000002C  BC08      POP         {R3}
 0000002E  4718      BX          R3
 00000030          ENDP ; 'ep2_rxdone?T'


*** CODE SEGMENT '?PR?USB_BusReset?T?USBDriver':
  360: void USB_BusReset(void)
 00000000  B500      PUSH        {LR}
  362:     USB_USBDevIntConfig();
 00000002  F7FF      BL          USB_USBDevIntConfig?T  ; T=0x0001  (1)
 00000004  FFFD      BL          USB_USBDevIntConfig?T  ; T=0x0001  (2)
  363:     USB_ConfigEndpoint();                               /* 重新配置所有端点最大包大小 */
 00000006  F7FF      BL          USB_ConfigEndpoint?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_ConfigEndpoint?T  ; T=0x0001  (2)
  364: }
 0000000A  BC08      POP         {R3}
 0000000C  4718      BX          R3
 0000000E          ENDP ; 'USB_BusReset?T'


*** CODE SEGMENT '?PR?USB_SuspendChange?T?USBDriver':
  376: }
 00000000  4770      BX          R14
 00000002          ENDP ; 'USB_SuspendChange?T'


*** CODE SEGMENT '?PR?USB_ConnectChange?T?USBDriver':
  388: }
 00000000  4770      BX          R14
 00000002          ENDP ; 'USB_ConnectChange?T'


*** CODE SEGMENT '?PR?Get_USB214x_FirmwareVer?T?USBDriver':
  399:     return 0x0100;                                      /* LPC214x USB 固件版本为 1.00 */
 00000000  4840      LDR         R0,=0x100
  400: }                                                        /* LPC214x USB Firmware Version is 1.00 */
 00000002  4770      BX          R14
 00000004          ENDP ; 'Get_USB214x_FirmwareVer?T'


*** CODE SEGMENT '?PR?ENABLE?T?USBDriver':
  406:     VICIntEnable = 1 << 22 ;                            //enable USB interrupt
 00000000  4800      LDR         R1,=0x400000
 00000002  4800      LDR         R0,=0xFFFFF010
 00000004  6001      STR         R1,[R0,#0x0]
  407: }    
 00000006  4770      BX          R14
 00000008          ENDP ; 'ENABLE?T'


*** CODE SEGMENT '?PR?DISABLE?T?USBDriver':
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 18  

  411:     VICIntEnClr = 1 << 22 ;                         //disable USB interrupt
 00000000  4800      LDR         R1,=0x400000
 00000002  4800      LDR         R0,=0xFFFFF014
 00000004  6001      STR         R1,[R0,#0x0]
  413: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'DISABLE?T'


*** CODE SEGMENT '?PR?Init_USBInterrupt?T?US

⌨️ 快捷键说明

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