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

📄 usbout.txt

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

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

                          AREA ||.text||, CODE, READONLY

                  RdPktEp3_CheckSum PROC
;;;142    void RdPktEp3_CheckSum(U8 *buf,int num)
;;;143    {
000000  e3a02000          MOV      r2,#0
;;;144        int i;
;;;145        	
;;;146        for(i=0;i<num;i++)
                  |L1.4|
000004  e1520001          CMP      r2,r1
000008  aa00000c          BGE      |L1.64|
00000c  ea000001          B        |L1.24|
                  |L1.16|
000010  e2822001          ADD      r2,r2,#1
000014  eafffffa          B        |L1.4|
;;;147        {
;;;148            buf[i]=(U8)rEP3_FIFO;
                  |L1.24|
000018  e59f3170          LDR      r3,|L1.400|
00001c  e5d331cc          LDRB     r3,[r3,#0x1cc]
000020  e7c03002          STRB     r3,[r0,r2]
;;;149            checkSum+=buf[i];
000024  e7d03002          LDRB     r3,[r0,r2]
000028  e59fc164          LDR      r12,|L1.404|
00002c  e1dcc0b0          LDRH     r12,[r12,#0]  ; checkSum
000030  e083300c          ADD      r3,r3,r12
000034  e59fc158          LDR      r12,|L1.404|
000038  e1cc30b0          STRH     r3,[r12,#0]  ; checkSum
;;;150    	  
;;;151        }
00003c  eafffff3          B        |L1.16|
;;;152    }
                  |L1.64|
000040  e12fff1e          BX       lr
                          ENDP

                  Ep3Handler PROC
;;;56     void Ep3Handler(void)
;;;57     {
000044  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;58         U8 out_csr3;
;;;59         int fifoCnt;
;;;60         rINDEX_REG=3;
000048  e3a00003          MOV      r0,#3
00004c  e59f113c          LDR      r1,|L1.400|
000050  e5c10178          STRB     r0,[r1,#0x178]
;;;61     
;;;62         
;;;63         out_csr3=rOUT_CSR1_REG;
000054  e1c10000          BIC      r0,r1,r0
000058  e5d00190          LDRB     r0,[r0,#0x190]
00005c  e1a04000          MOV      r4,r0
;;;64         
;;;65         DbgPrintf("<3:%x]",out_csr3);
000060  e1a01004          MOV      r1,r4
000064  e28f0f4b          ADR      r0,|L1.408|
000068  ebfffffe          BL       DbgPrintf
;;;66     
;;;67         if(out_csr3 & EPO_OUT_PKT_READY)
00006c  e3140001          TST      r4,#1
000070  0a00003d          BEQ      |L1.364|
;;;68         {   
;;;69          
;;;70     	fifoCnt=rOUT_FIFO_CNT1_REG; 
000074  e59f0114          LDR      r0,|L1.400|
000078  e5d05198          LDRB     r5,[r0,#0x198]
;;;71     #if 0
;;;72     	RdPktEp3(ep3Buf,fifoCnt);
;;;73     	PrintEpoPkt(ep3Buf,fifoCnt);
;;;74     #else
;;;75     
;;;76     	if(downloadFileSize==0)
00007c  e59f011c          LDR      r0,|L1.416|
000080  e5900000          LDR      r0,[r0,#0]  ; downloadFileSize
000084  e3500000          CMP      r0,#0
000088  1a00002a          BNE      |L1.312|
;;;77     	{
;;;78        	    RdPktEp3((U8 *)downPt,8); 	
00008c  e3a01008          MOV      r1,#8
000090  e59f010c          LDR      r0,|L1.420|
000094  e5900000          LDR      r0,[r0,#0]  ; downPt
000098  ebfffffe          BL       RdPktEp3
;;;79        	    #if 1  
;;;80        	    downloadAddress_u=tempdownloadAddress;
00009c  e59f0104          LDR      r0,|L1.424|
0000a0  e5900000          LDR      r0,[r0,#0]  ; tempdownloadAddress
0000a4  e59f1100          LDR      r1,|L1.428|
0000a8  e5810000          STR      r0,[r1,#0]  ; downloadAddress_u
;;;81               #else
;;;82     		downloadAddress_u=
;;;83     	    		*((U8 *)(downPt+0))+
;;;84     			(*((U8 *)(downPt+1))<<8)+
;;;85     			(*((U8 *)(downPt+2))<<16)+
;;;86     			(*((U8 *)(downPt+3))<<24);
;;;87     	    #endif
;;;88     	    downloadFileSize=
0000ac  e59f00f0          LDR      r0,|L1.420|
0000b0  e5900000          LDR      r0,[r0,#0]  ; downPt
0000b4  e5d00004          LDRB     r0,[r0,#4]
0000b8  e59f10e4          LDR      r1,|L1.420|
0000bc  e5911000          LDR      r1,[r1,#0]  ; downPt
0000c0  e5d11005          LDRB     r1,[r1,#5]
0000c4  e0800401          ADD      r0,r0,r1,LSL #8
0000c8  e59f10d4          LDR      r1,|L1.420|
0000cc  e5911000          LDR      r1,[r1,#0]  ; downPt
0000d0  e5d11006          LDRB     r1,[r1,#6]
0000d4  e0800801          ADD      r0,r0,r1,LSL #16
0000d8  e59f10c4          LDR      r1,|L1.420|
0000dc  e5911000          LDR      r1,[r1,#0]  ; downPt
0000e0  e5d11007          LDRB     r1,[r1,#7]
0000e4  e0800c01          ADD      r0,r0,r1,LSL #24
0000e8  e59f10b0          LDR      r1,|L1.416|
0000ec  e5810000          STR      r0,[r1,#0]  ; downloadFileSize
;;;89     	    	*((U8 *)(downPt+4))+
;;;90     		(*((U8 *)(downPt+5))<<8)+
;;;91     		(*((U8 *)(downPt+6))<<16)+
;;;92     		(*((U8 *)(downPt+7))<<24);
;;;93     	    checkSum=0;
0000f0  e3a00000          MOV      r0,#0
0000f4  e59f1098          LDR      r1,|L1.404|
0000f8  e1c100b0          STRH     r0,[r1,#0]  ; checkSum
;;;94     	    downPt=(U8 *)downloadAddress_u;
0000fc  e59f00a8          LDR      r0,|L1.428|
000100  e5900000          LDR      r0,[r0,#0]  ; downloadAddress_u
000104  e59f1098          LDR      r1,|L1.420|
000108  e5810000          STR      r0,[r1,#0]  ; downPt
;;;95     
;;;96       	    RdPktEp3_CheckSum((U8 *)downPt,fifoCnt-8); //The first 8-bytes are deleted.	    
00010c  e2451008          SUB      r1,r5,#8
000110  e59f008c          LDR      r0,|L1.420|
000114  e5900000          LDR      r0,[r0,#0]  ; downPt
000118  ebfffffe          BL       RdPktEp3_CheckSum
;;;97       	    downPt+=fifoCnt-8;  
00011c  e59f0080          LDR      r0,|L1.420|
000120  e5900000          LDR      r0,[r0,#0]  ; downPt
000124  e0800005          ADD      r0,r0,r5
000128  e2400008          SUB      r0,r0,#8
00012c  e59f1070          LDR      r1,|L1.420|
000130  e5810000          STR      r0,[r1,#0]  ; downPt
000134  ea000008          B        |L1.348|
;;;98       	    
;;;99       	#if USBDMA
;;;100         	    //CLR_EP3_OUT_PKT_READY() is not executed. 
;;;101         	    //So, USBD may generate NAK until DMA2 is configured for USB_EP3;
;;;102         	    rINTMSK|=BIT_USBD; //for debug
;;;103          	    return;	
;;;104      	#endif	
;;;105    	}
;;;106    	else
;;;107    	{
;;;108    	#if USBDMA    	
;;;109    	    Uart_Printf("<ERROR>");
;;;110    	#endif    
;;;111    	    RdPktEp3_CheckSum((U8 *)downPt,fifoCnt); 	    
                  |L1.312|
000138  e1a01005          MOV      r1,r5
00013c  e59f0060          LDR      r0,|L1.420|
000140  e5900000          LDR      r0,[r0,#0]  ; downPt
000144  ebfffffe          BL       RdPktEp3_CheckSum
;;;112    	    downPt+=fifoCnt;  //fifoCnt=64
000148  e59f0054          LDR      r0,|L1.420|
00014c  e5900000          LDR      r0,[r0,#0]  ; downPt
000150  e0800005          ADD      r0,r0,r5
000154  e59f1048          LDR      r1,|L1.420|
000158  e5810000          STR      r0,[r1,#0]  ; downPt
;;;113    	}
;;;114    #endif
;;;115           
;;;116       	CLR_EP3_OUT_PKT_READY();
                  |L1.348|
00015c  e3c400b1          BIC      r0,r4,#0xb1
000160  e59f1028          LDR      r1,|L1.400|
000164  e5c10190          STRB     r0,[r1,#0x190]
;;;117    	return;
;;;118        }
;;;119    
;;;120        
;;;121        //I think that EPO_SENT_STALL will not be set to 1.
;;;122        if(out_csr3 & EPO_SENT_STALL)
;;;123        {   
;;;124       	DbgPrintf("[STALL]");
;;;125       	CLR_EP3_SENT_STALL();
;;;126       	return;
;;;127        }	
;;;128    }
                  |L1.360|
000168  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.364|
00016c  e3140040          TST      r4,#0x40              ;122
000170  0a000005          BEQ      |L1.396|              ;122
000174  e28f0034          ADR      r0,|L1.432|           ;124
000178  ebfffffe          BL       DbgPrintf             ;124
00017c  e3c400f0          BIC      r0,r4,#0xf0           ;125
000180  e59f1008          LDR      r1,|L1.400|           ;125
000184  e5c10190          STRB     r0,[r1,#0x190]        ;125
000188  eafffff6          B        |L1.360|              ;126
                  |L1.396|
00018c  eafffff5          B        |L1.360|
                  |L1.400|
000190  44a00000          DCD      0x44a00000
                  |L1.404|
000194  00000000          DCD      checkSum
                  |L1.408|
000198  253a333c          DCB      "<3:%"
00019c  00005d78          DCB      "x]\0\0"
                  |L1.416|
0001a0  00000000          DCD      downloadFileSize
                  |L1.420|
0001a4  00000000          DCD      downPt
                  |L1.424|
0001a8  00000000          DCD      tempdownloadAddress
                  |L1.428|
0001ac  00000000          DCD      downloadAddress_u
                  |L1.432|
0001b0  4154535b          DCB      "[STA"
0001b4  005d4c4c          DCB      "LL]\0"
                          ENDP

                  PrintEpoPkt PROC
;;;132    void PrintEpoPkt(U8 *pt,int cnt)
;;;133    {
0001b8  e92d4070          STMFD    sp!,{r4-r6,lr}
0001bc  e1a06000          MOV      r6,r0
0001c0  e1a05001          MOV      r5,r1
;;;134        int i;
;;;135        DbgPrintf("[BOUT:%d:",cnt);
0001c4  e1a01005          MOV      r1,r5
0001c8  e28f0034          ADR      r0,|L1.516|
0001cc  ebfffffe          BL       DbgPrintf
;;;136        for(i=0;i<cnt;i++)
0001d0  e3a04000          MOV      r4,#0
                  |L1.468|
0001d4  e1540005          CMP      r4,r5
0001d8  aa000006          BGE      |L1.504|
0001dc  ea000001          B        |L1.488|
                  |L1.480|
0001e0  e2844001          ADD      r4,r4,#1
0001e4  eafffffa          B        |L1.468|
;;;137        	DbgPrintf("%x,",pt[i]);
                  |L1.488|
0001e8  e7d61004          LDRB     r1,[r6,r4]
0001ec  e28f001c          ADR      r0,|L1.528|
0001f0  ebfffffe          BL       DbgPrintf
0001f4  eafffff9          B        |L1.480|
;;;138        DbgPrintf("]");
                  |L1.504|
0001f8  e28f0014          ADR      r0,|L1.532|
0001fc  ebfffffe          BL       DbgPrintf
;;;139    }
000200  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                  |L1.516|
000204  554f425b          DCB      "[BOU"
000208  64253a54          DCB      "T:%d"
00020c  0000003a          DCB      ":\0\0\0"
                  |L1.528|
000210  002c7825          DCB      "%x,\0"
                  |L1.532|
000214  0000005d          DCB      "]\0\0\0"
                          ENDP

                  IsrDma2 PROC
;;;156    void __irq IsrDma2(void)
;;;157    {
000218  e92d507f          STMFD    sp!,{r0-r6,r12,lr}
00021c  e24dd004          SUB      sp,sp,#4
;;;158        U8 out_csr3;
;;;159        U32 nextTotalDmaCount;
;;;160        U8 saveIndexReg=rINDEX_REG;
000220  e51f0098          LDR      r0,|L1.400|
000224  e5d00178          LDRB     r0,[r0,#0x178]
000228  e1a06000          MOV      r6,r0
;;;161    
;;;162        rINDEX_REG=3;
00022c  e3a00003          MOV      r0,#3
000230  e51f10a8          LDR      r1,|L1.400|
000234  e5c10178          STRB     r0,[r1,#0x178]
;;;163        out_csr3=rOUT_CSR1_REG;
000238  e1c10000          BIC      r0,r1,r0
00023c  e5d00190          LDRB     r0,[r0,#0x190]
000240  e1a05000          MOV      r5,r0
;;;164    
;;;165        rSUBSRCPND|=BIT_SUB_DMA2;
000244  e2410648          SUB      r0,r1,#0x4800000
000248  e5900018          LDR      r0,[r0,#0x18]
00024c  e3800680          ORR      r0,r0,#0x8000000

⌨️ 快捷键说明

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