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

📄 usblib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\usblib.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  ReconfigUsbd PROC
;;;31     void ReconfigUsbd(void)
;;;32     {
000000  e3a00000          MOV      r0,#0
;;;33     // *** End point information ***
;;;34     //   EP0: control
;;;35     //   EP1: bulk in end point
;;;36     //   EP2: not used
;;;37     //   EP3: bulk out end point
;;;38     //   EP4: not used
;;;39         
;;;40         rPWR_REG=PWR_REG_DEFAULT_VALUE;	//disable suspend mode
000004  e59f13c0          LDR      r1,|L1.972|
000008  e5c10144          STRB     r0,[r1,#0x144]
;;;41     
;;;42         rINDEX_REG=0;	
00000c  e3a00000          MOV      r0,#0
000010  e1c11000          BIC      r1,r1,r0
000014  e5c10178          STRB     r0,[r1,#0x178]
;;;43         rMAXP_REG=FIFO_SIZE_8;   	//EP0 max packit size = 8 
000018  e3a00001          MOV      r0,#1
00001c  e1c11000          BIC      r1,r1,r0
000020  e5c10180          STRB     r0,[r1,#0x180]
;;;44         rEP0_CSR=EP0_SERVICED_OUT_PKT_RDY|EP0_SERVICED_SETUP_END;	
000024  e3a000c0          MOV      r0,#0xc0
000028  e1c11000          BIC      r1,r1,r0
00002c  e5c10184          STRB     r0,[r1,#0x184]
;;;45        // Uart_Printf("0MAXP_REG: 0x%x     EP0_PKT_SIZE: 0x%x \n", rMAXP_REG, EP0_PKT_SIZE);
;;;46      				//EP0:clear OUT_PKT_RDY & SETUP_END
;;;47         rINDEX_REG=1;
000030  e3a00001          MOV      r0,#1
000034  e1c11000          BIC      r1,r1,r0
000038  e5c10178          STRB     r0,[r1,#0x178]
;;;48         #if (EP1_PKT_SIZE==32)
;;;49             rMAXP_REG=FIFO_SIZE_32;	//EP1:max packit size = 32
;;;50         #else
;;;51     	rMAXP_REG=FIFO_SIZE_64;	//EP1:max packit size = 64
00003c  e3a00008          MOV      r0,#8
000040  e1c11000          BIC      r1,r1,r0
000044  e5c10180          STRB     r0,[r1,#0x180]
;;;52         #endif	
;;;53         rIN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT;	
000048  e3a00048          MOV      r0,#0x48
00004c  e1c11000          BIC      r1,r1,r0
000050  e5c10184          STRB     r0,[r1,#0x184]
;;;54         rIN_CSR2_REG=EPI_MODE_IN|EPI_IN_DMA_INT_MASK|EPI_BULK; //IN mode, IN_DMA_INT=masked    
000054  e3a00030          MOV      r0,#0x30
000058  e1c11000          BIC      r1,r1,r0
00005c  e5c10188          STRB     r0,[r1,#0x188]
;;;55         rOUT_CSR1_REG=EPO_CDT;   	
000060  e3a00080          MOV      r0,#0x80
000064  e1c11000          BIC      r1,r1,r0
000068  e5c10190          STRB     r0,[r1,#0x190]
;;;56         rOUT_CSR2_REG=EPO_BULK|EPO_OUT_DMA_INT_MASK; 
00006c  e3a00020          MOV      r0,#0x20
000070  e1c11000          BIC      r1,r1,r0
000074  e5c10194          STRB     r0,[r1,#0x194]
;;;57        // Uart_Printf("1MAXP_REG: 0x%x     EP1_PKT_SIZE: 0x%x \n", rMAXP_REG, EP1_PKT_SIZE);
;;;58     
;;;59         rINDEX_REG=2;
000078  e3a00002          MOV      r0,#2
00007c  e1c11000          BIC      r1,r1,r0
000080  e5c10178          STRB     r0,[r1,#0x178]
;;;60         rMAXP_REG=FIFO_SIZE_64;	//EP2:max packit size = 64
000084  e3a00008          MOV      r0,#8
000088  e1c11000          BIC      r1,r1,r0
00008c  e5c10180          STRB     r0,[r1,#0x180]
;;;61         rIN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT|EPI_BULK;
000090  e3a00048          MOV      r0,#0x48
000094  e1c11000          BIC      r1,r1,r0
000098  e5c10184          STRB     r0,[r1,#0x184]
;;;62         rIN_CSR2_REG=EPI_MODE_IN|EPI_IN_DMA_INT_MASK; //IN mode, IN_DMA_INT=masked    
00009c  e3a00030          MOV      r0,#0x30
0000a0  e1c11000          BIC      r1,r1,r0
0000a4  e5c10188          STRB     r0,[r1,#0x188]
;;;63         rOUT_CSR1_REG=EPO_CDT;   	
0000a8  e3a00080          MOV      r0,#0x80
0000ac  e1c11000          BIC      r1,r1,r0
0000b0  e5c10190          STRB     r0,[r1,#0x190]
;;;64         rOUT_CSR2_REG=EPO_BULK|EPO_OUT_DMA_INT_MASK;   	
0000b4  e3a00020          MOV      r0,#0x20
0000b8  e1c11000          BIC      r1,r1,r0
0000bc  e5c10194          STRB     r0,[r1,#0x194]
;;;65     
;;;66         rINDEX_REG=3;
0000c0  e3a00003          MOV      r0,#3
0000c4  e1c11000          BIC      r1,r1,r0
0000c8  e5c10178          STRB     r0,[r1,#0x178]
;;;67         #if (EP3_PKT_SIZE==32)
;;;68             rMAXP_REG=FIFO_SIZE_32;	//EP3:max packit size = 32
;;;69         #else
;;;70     	rMAXP_REG=FIFO_SIZE_64;	//EP3:max packit size = 64
0000cc  e3a00008          MOV      r0,#8
0000d0  e1c11000          BIC      r1,r1,r0
0000d4  e5c10180          STRB     r0,[r1,#0x180]
;;;71         #endif	
;;;72         rIN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT|EPI_BULK;
0000d8  e3a00048          MOV      r0,#0x48
0000dc  e1c11000          BIC      r1,r1,r0
0000e0  e5c10184          STRB     r0,[r1,#0x184]
;;;73         rIN_CSR2_REG=EPI_MODE_OUT|EPI_IN_DMA_INT_MASK; //OUT mode, IN_DMA_INT=masked    
0000e4  e3a00010          MOV      r0,#0x10
0000e8  e1c11000          BIC      r1,r1,r0
0000ec  e5c10188          STRB     r0,[r1,#0x188]
;;;74         rOUT_CSR1_REG=EPO_CDT;   	
0000f0  e3a00080          MOV      r0,#0x80
0000f4  e1c11000          BIC      r1,r1,r0
0000f8  e5c10190          STRB     r0,[r1,#0x190]
;;;75         	//clear OUT_PKT_RDY, data_toggle_bit.
;;;76     	//The data toggle bit should be cleared when initialization.
;;;77         rOUT_CSR2_REG=EPO_BULK|EPO_OUT_DMA_INT_MASK;   	
0000fc  e3a00020          MOV      r0,#0x20
000100  e1c11000          BIC      r1,r1,r0
000104  e5c10194          STRB     r0,[r1,#0x194]
;;;78     //Uart_Printf("3MAXP_REG: 0x%x     EP3_PKT_SIZE: 0x%x \n", rMAXP_REG, EP3_PKT_SIZE);
;;;79     	  
;;;80         rINDEX_REG=4;
000108  e3a00004          MOV      r0,#4
00010c  e1c11000          BIC      r1,r1,r0
000110  e5c10178          STRB     r0,[r1,#0x178]
;;;81         rMAXP_REG=FIFO_SIZE_64;	//EP4:max packit size = 64
000114  e3a00008          MOV      r0,#8
000118  e1c11000          BIC      r1,r1,r0
00011c  e5c10180          STRB     r0,[r1,#0x180]
;;;82         rIN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT|EPI_BULK;
000120  e3a00048          MOV      r0,#0x48
000124  e1c11000          BIC      r1,r1,r0
000128  e5c10184          STRB     r0,[r1,#0x184]
;;;83         rIN_CSR2_REG=EPI_MODE_OUT|EPI_IN_DMA_INT_MASK; //OUT mode, IN_DMA_INT=masked    
00012c  e3a00010          MOV      r0,#0x10
000130  e1c11000          BIC      r1,r1,r0
000134  e5c10188          STRB     r0,[r1,#0x188]
;;;84         rOUT_CSR1_REG=EPO_CDT;   	
000138  e3a00080          MOV      r0,#0x80
00013c  e1c11000          BIC      r1,r1,r0
000140  e5c10190          STRB     r0,[r1,#0x190]
;;;85         	//clear OUT_PKT_RDY, data_toggle_bit.
;;;86     	//The data toggle bit should be cleared when initialization.
;;;87         rOUT_CSR2_REG=EPO_BULK|EPO_OUT_DMA_INT_MASK;   	
000144  e3a00020          MOV      r0,#0x20
000148  e1c11000          BIC      r1,r1,r0
00014c  e5c10194          STRB     r0,[r1,#0x194]
;;;88         
;;;89         rEP_INT_REG=EP0_INT|EP1_INT|EP2_INT|EP3_INT|EP4_INT;
000150  e3a0001f          MOV      r0,#0x1f
000154  e1c11000          BIC      r1,r1,r0
000158  e5c10148          STRB     r0,[r1,#0x148]
;;;90         rUSB_INT_REG=RESET_INT|SUSPEND_INT|RESUME_INT; 
00015c  e3a00007          MOV      r0,#7
000160  e1c11000          BIC      r1,r1,r0
000164  e5c10158          STRB     r0,[r1,#0x158]
;;;91         	//Clear all usbd pending bits
;;;92         	
;;;93         //EP0,1,3 & reset interrupt are enabled
;;;94         rEP_INT_EN_REG=EP0_INT|EP1_INT|EP3_INT;
000168  e3a0000b          MOV      r0,#0xb
00016c  e1c11000          BIC      r1,r1,r0
000170  e5c1015c          STRB     r0,[r1,#0x15c]
;;;95         rUSB_INT_EN_REG=RESET_INT;
000174  e3a00004          MOV      r0,#4
000178  e1c11000          BIC      r1,r1,r0
00017c  e5c1016c          STRB     r0,[r1,#0x16c]
;;;96     //    ep0State=EP0_STATE_INIT;
;;;97     
;;;98         
;;;99     }
000180  e12fff1e          BX       lr
                          ENDP

                  ConfigUsbd PROC
;;;22     void ConfigUsbd(void)
;;;23     {
000184  e52de004          STR      lr,[sp,#-4]!
;;;24     
;;;25         ReconfigUsbd();
000188  ebfffffe          BL       ReconfigUsbd
;;;26     
;;;27         rINTMSK&=~(BIT_USBD);  
00018c  e59f023c          LDR      r0,|L1.976|
000190  e5900008          LDR      r0,[r0,#8]
000194  e3c00780          BIC      r0,r0,#0x2000000
000198  e59f1230          LDR      r1,|L1.976|
00019c  e5810008          STR      r0,[r1,#8]
;;;28     }
0001a0  e49df004          LDR      pc,[sp],#4
                          ENDP

                  RdPktEp0 PROC
;;;102    void RdPktEp0(U8 *buf,int num)
;;;103    {
0001a4  e3a02000          MOV      r2,#0
;;;104        int i;
;;;105        	
;;;106        for(i=0;i<num;i++)
                  |L1.424|
0001a8  e1520001          CMP      r2,r1
0001ac  aa000006          BGE      |L1.460|
0001b0  ea000001          B        |L1.444|
                  |L1.436|
0001b4  e2822001          ADD      r2,r2,#1
0001b8  eafffffa          B        |L1.424|
;;;107        {
;;;108            buf[i]=(U8)rEP0_FIFO;	
                  |L1.444|
0001bc  e59f3208          LDR      r3,|L1.972|
0001c0  e5d331c0          LDRB     r3,[r3,#0x1c0]
0001c4  e7c03002          STRB     r3,[r0,r2]
;;;109         }
0001c8  eafffff9          B        |L1.436|
;;;110    }
                  |L1.460|
0001cc  e12fff1e          BX       lr
                          ENDP

                  WrPktEp0 PROC
;;;113    void WrPktEp0(U8 *buf,int num)
;;;114    {
0001d0  e3a02000          MOV      r2,#0
;;;115        int i;
;;;116        	
;;;117        for(i=0;i<num;i++)
                  |L1.468|
0001d4  e1520001          CMP      r2,r1
0001d8  aa000006          BGE      |L1.504|
0001dc  ea000001          B        |L1.488|
                  |L1.480|
0001e0  e2822001          ADD      r2,r2,#1
0001e4  eafffffa          B        |L1.468|
;;;118        {
;;;119            rEP0_FIFO=buf[i];	
                  |L1.488|
0001e8  e7d03002          LDRB     r3,[r0,r2]
0001ec  e59fc1d8          LDR      r12,|L1.972|
0001f0  e5cc31c0          STRB     r3,[r12,#0x1c0]
;;;120        }
0001f4  eafffff9          B        |L1.480|
;;;121    }
                  |L1.504|
0001f8  e12fff1e          BX       lr
                          ENDP

                  WrByteEp0 PROC
;;;123    void WrByteEp0(U8 value)
;;;124    {
0001fc  e59f11c8          LDR      r1,|L1.972|
;;;125      rEP0_FIFO= value;
000200  e5c101c0          STRB     r0,[r1,#0x1c0]
;;;126    }
000204  e12fff1e          BX       lr

⌨️ 快捷键说明

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