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

📄 usbdriver.lst

📁 周立功的LPC214x固件程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 EXTERN CODE16 (USB_USBDevIntConfig?T)
 EXTERN CODE16 (USB_ConfigMaxPaketSize?T)
 EXTERN CODE16 (USB_ReadTestRegister?T)
 EXTERN CODE16 (USB_SetAddressEnable?T)
 EXTERN CODE16 (USB_SetMode?T)
 EXTERN CODE16 (USB_GetDevStatus?T)
 EXTERN CODE16 (USB_SelectClrIntEndpoint?T)
 EXTERN CODE16 (USB_ReadEndpoint?T)
 EXTERN CODE16 (reconnect_USB?T)
 EXTERN CODE16 (ep0_txdone?T)
 EXTERN CODE16 (ep0_rxdone?T)
 EXTERN CODE16 (control_handler?T)
 EXTERN CODE32 (USB_GetDevStatus?A)



*** PUBLICS:
 PUBLIC         DISABLE?T
 PUBLIC         ENABLE?T
 PUBLIC         Init_USBInterrupt?T
 PUBLIC         USB_Initialize?T
 PUBLIC         USB_ConfigEndpoint?T
 PUBLIC         usbserve?T
 PUBLIC         Usb_Exception?A
 PUBLIC         Usb_LPService?T
 PUBLIC         Usb_LPService?A
 PUBLIC         Usb_HPService?T
 PUBLIC         Usb_HPService?A
 PUBLIC         ep1_rxdone?T
 PUBLIC         ep1_txdone?T
 PUBLIC         ep2_rxdone?T
 PUBLIC         ep2_txdone?T
 PUBLIC         USB_BusReset?T
 PUBLIC         USB_BusReset?A
 PUBLIC         USB_SuspendChange?T
 PUBLIC         USB_ConnectChange?T
 PUBLIC         Get_USB214x_FirmwareVer?T
 PUBLIC         GenEpBuf
 PUBLIC         EpBuf
 PUBLIC         bEPPflags



*** DATA SEGMENT '?DT0?USBDriver':
 00000000          bEPPflags:
 00000000            DS          4
 00000004          GenEpBuf:
 00000004            DS          16
 00000014          EpBuf:
 00000014            DS          64



*** CODE SEGMENT '?PR?USB_Initialize?T?USBDriver':
   75: INT8U USB_Initialize(void)
 00000000  B500      PUSH        {LR}
   77:     USB_InitHareware();                                 /* 初始化硬件         Initialize hardware */
 00000002  F7FF      BL          USB_InitHareware?T  ; T=0x0001  (1)
 00000004  FFFD      BL          USB_InitHareware?T  ; T=0x0001  (2)
   79:     bEPPflags.value = 0;                                /* 置USB事件标志为0   set USB event flags to zero */
 00000006  2100      MOV         R1,#0x0
 00000008  4800      LDR         R0,=bEPPflags ; bEPPflags
 0000000A  8001      STRH        R1,[R0,#0x0] ; bEPPflags
   81:     if (USB_ReadTestRegister() != 0xA50F)               /* 读测试寄存器       read test register */
 0000000C  F7FF      BL          USB_ReadTestRegister?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          USB_ReadTestRegister?T  ; T=0x0001  (2)
 00000010  0400      LSL         R0,R0,#0x10 ; USB_ReadTestRegister?T
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 9   

 00000012  0C00      LSR         R0,R0,#0x10
 00000014  4800      LDR         R1,=0xA50F
 00000016  4288      CMP         R0,R1
 00000018  D001      BEQ         L_1  ; T=0x0000001E
   82:         return 1;                                       /* 初始化失败         initialize fail    */
 0000001A  2001      MOV         R0,#0x1
 0000001C  E01B      B           L_2  ; T=0x00000056
 0000001E          L_1:
   84:     Init_USBInterrupt();                                //配置USB中断向量         
 0000001E  F7FF      BL          Init_USBInterrupt?T  ; T=0x0001  (1)
 00000020  FFEF      BL          Init_USBInterrupt?T  ; T=0x0001  (2)
   86:     USB_ConfigEndpoint();                               /* 配置端点           configure the endpoint */
 00000022  F7FF      BL          USB_ConfigEndpoint?T  ; T=0x0001  (1)
 00000024  FFED      BL          USB_ConfigEndpoint?T  ; T=0x0001  (2)
   87:     USB_USBDevIntConfig();                              /* 配置中断           configure the USB interrupt */
 00000026  F7FF      BL          USB_USBDevIntConfig?T  ; T=0x0001  (1)
 00000028  FFEB      BL          USB_USBDevIntConfig?T  ; T=0x0001  (2)
   95:     USB_SetMode(0x00);                                  /* 成功传输才产生中断generate interrupt only transmit sucessfully */
 0000002A  2000      MOV         R0,#0x0
 0000002C  F7FF      BL          USB_SetMode?T  ; T=0x0001  (1)
 0000002E  FFE8      BL          USB_SetMode?T  ; T=0x0001  (2)
  101:     USBEpIntClr  = 0xFFFFFFFF;
 00000030  4800      LDR         R1,=0xFFFFFFFF
 00000032  4800      LDR         R0,=0xE0090038
 00000034  6001      STR         R1,[R0,#0x0]
  102:     USBEpIntEn   = 0xFFFFFFFF;      
 00000036  4800      LDR         R1,=0xFFFFFFFF
 00000038  4800      LDR         R0,=0xE0090034
 0000003A  6001      STR         R1,[R0,#0x0]
  103:     USBDevIntClr = 0xFFFFFFFF;
 0000003C  4800      LDR         R1,=0xFFFFFFFF
 0000003E  4800      LDR         R0,=0xE0090008
 00000040  6001      STR         R1,[R0,#0x0]
  104:     USBDevIntEn = DEV_STAT | EP_SLOW;                   // Enable Device Status Interrupt & EP_SLOW
 00000042  210C      MOV         R1,#0xC
 00000044  4800      LDR         R0,=0xE0090004
 00000046  6001      STR         R1,[R0,#0x0]
  105:     reconnect_USB();                                    /* 重新连接USB       reconnect the USB */
 00000048  F7FF      BL          reconnect_USB?T  ; T=0x0001  (1)
 0000004A  FFDA      BL          reconnect_USB?T  ; T=0x0001  (2)
  106:     USB_SetAddressEnable(0,1);
 0000004C  2000      MOV         R0,#0x0
 0000004E  2101      MOV         R1,#0x1
 00000050  F7FF      BL          USB_SetAddressEnable?T  ; T=0x0001  (1)
 00000052  FFD6      BL          USB_SetAddressEnable?T  ; T=0x0001  (2)
  110:      return 0;                                          /* 初始化USB成功     Initialize USB sucessfully */
 00000054  2000      MOV         R0,#0x0
  111: }
 00000056          L_2:
 00000056  BC08      POP         {R3}
 00000058  4718      BX          R3
 0000005A          ENDP ; 'USB_Initialize?T'


*** CODE SEGMENT '?PR?USB_ConfigEndpoint?T?USBDriver':
  120: void USB_ConfigEndpoint(void)
 00000000  B500      PUSH        {LR}
  122:     USB_ConfigMaxPaketSize(0,EP0_PACKET_SIZE);
 00000002  2000      MOV         R0,#0x0
 00000004  2140      MOV         R1,#0x40
 00000006  F7FF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (1)
 00000008  FFFB      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (2)
  123:     USB_ConfigMaxPaketSize(1,EP0_PACKET_SIZE);
 0000000A  2001      MOV         R0,#0x1
 0000000C  2140      MOV         R1,#0x40
 0000000E  F7FF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (1)
 00000010  FFF7      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (2)
  125:     USB_ConfigMaxPaketSize(2,EP1_PACKET_SIZE);
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 10  

 00000012  2002      MOV         R0,#0x2
 00000014  2110      MOV         R1,#0x10
 00000016  F7FF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (1)
 00000018  FFF3      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (2)
  126:     USB_ConfigMaxPaketSize(3,EP1_PACKET_SIZE);
 0000001A  2003      MOV         R0,#0x3
 0000001C  2110      MOV         R1,#0x10
 0000001E  F7FF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (1)
 00000020  FFEF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (2)
  128:     USB_ConfigMaxPaketSize(4,EP2_PACKET_SIZE);
 00000022  2004      MOV         R0,#0x4
 00000024  2140      MOV         R1,#0x40
 00000026  F7FF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (1)
 00000028  FFEB      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (2)
  129:     USB_ConfigMaxPaketSize(5,EP2_PACKET_SIZE);
 0000002A  2005      MOV         R0,#0x5
 0000002C  2140      MOV         R1,#0x40
 0000002E  F7FF      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (1)
 00000030  FFE7      BL          USB_ConfigMaxPaketSize?T  ; T=0x0001  (2)
  132: }
 00000032  BC08      POP         {R3}
 00000034  4718      BX          R3
 00000036          ENDP ; 'USB_ConfigEndpoint?T'


*** CODE SEGMENT '?PR?usbserve?T?USBDriver':
  141: void usbserve(void)
 00000000  B500      PUSH        {LR}
  143:     if (bEPPflags.bits.setup_packet)
 00000002  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000004  6800      LDR         R0,[R0,#0x0] ; bEPPflags
 00000006  08C0      LSR         R0,R0,#0x3
 00000008  2101      MOV         R1,#0x1
 0000000A  4208      TST         R0,R1
 0000000C  D00A      BEQ         L_3  ; T=0x00000024
  145:         DISABLE();                  
 0000000E  F7FF      BL          DISABLE?T  ; T=0x0001  (1)
 00000010  FFF7      BL          DISABLE?T  ; T=0x0001  (2)
  146:         bEPPflags.bits.setup_packet = 0;
 00000012  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000014  6801      LDR         R1,[R0,#0x0] ; bEPPflags
 00000016  2208      MOV         R2,#0x8
 00000018  4391      BIC         R1,R2
 0000001A  6001      STR         R1,[R0,#0x0] ; bEPPflags
  147:         control_handler();                              /* 控制传输处理    process control transmission */
 0000001C  F7FF      BL          control_handler?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          control_handler?T  ; T=0x0001  (2)
  148:         ENABLE();
 00000020  F7FF      BL          ENABLE?T  ; T=0x0001  (1)
 00000022  FFEE      BL          ENABLE?T  ; T=0x0001  (2)
  149:     } // if SETUP packet
 00000024          L_3:
  151:     if (bEPPflags.bits.bus_reset)
 00000024  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000026  6800      LDR         R0,[R0,#0x0] ; bEPPflags
 00000028  2101      MOV         R1,#0x1
 0000002A  4208      TST         R0,R1
 0000002C  D008      BEQ         L_4  ; T=0x00000040
  153:         DISABLE();
 0000002E  F7FF      BL          DISABLE?T  ; T=0x0001  (1)
 00000030  FFE7      BL          DISABLE?T  ; T=0x0001  (2)
  154:         bEPPflags.bits.bus_reset = 0;
 00000032  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000034  6801      LDR         R1,[R0,#0x0] ; bEPPflags
 00000036  2201      MOV         R2,#0x1
 00000038  4391      BIC         R1,R2
 0000003A  6001      STR         R1,[R0,#0x0] ; bEPPflags
  155:         ENABLE();
ARM COMPILER V2.53,  USBDriver                                                             28/06/07  09:54:12  PAGE 11  

 0000003C  F7FF      BL          ENABLE?T  ; T=0x0001  (1)
 0000003E  FFE0      BL          ENABLE?T  ; T=0x0001  (2)
  157:     } // if USB bus reset
 00000040          L_4:
  159:     if (bEPPflags.bits.suspend)
 00000040  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000042  6800      LDR         R0,[R0,#0x0] ; bEPPflags
 00000044  0840      LSR         R0,R0,#0x1
 00000046  2101      MOV         R1,#0x1
 00000048  4208      TST         R0,R1
 0000004A  D00A      BEQ         L_5  ; T=0x00000062
  161:         DISABLE();
 0000004C  F7FF      BL          DISABLE?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          DISABLE?T  ; T=0x0001  (2)
  162:         bEPPflags.bits.suspend= 0;
 00000050  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000052  6801      LDR         R1,[R0,#0x0] ; bEPPflags
 00000054  2202      MOV         R2,#0x2
 00000056  4391      BIC         R1,R2
 00000058  6001      STR         R1,[R0,#0x0] ; bEPPflags
  163:         ENABLE();
 0000005A  F7FF      BL          ENABLE?T  ; T=0x0001  (1)
 0000005C  FFD1      BL          ENABLE?T  ; T=0x0001  (2)
  164:         USB_SuspendChange();
 0000005E  F7FF      BL          USB_SuspendChange?T  ; T=0x0001  (1)
 00000060  FFCF      BL          USB_SuspendChange?T  ; T=0x0001  (2)
  165:     } // if suspend change
 00000062          L_5:
  167:     if (bEPPflags.bits.con_change)
 00000062  4800      LDR         R0,=bEPPflags ; bEPPflags
 00000064  6800      LDR         R0,[R0,#0x0] ; bEPPflags
 00000066  0880      LSR         R0,R0,#0x2

⌨️ 快捷键说明

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