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

📄 me_test.txt

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

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

                          AREA ||.text||, CODE, READONLY

                  MeEngine PROC
;;;50     void MeEngine(PIMAGE420 pCurrImage,PIMAGE420 pPrevImage,PME_VECTOR pMeVector,U32 mode)
;;;51     {
                  |L1.0|
000000  e92d47f0          STMFD    sp!,{r4-r10,lr}
000004  e1a04000          MOV      r4,r0
000008  e1a05001          MOV      r5,r1
00000c  e1a08002          MOV      r8,r2
000010  e1a0a003          MOV      r10,r3
;;;52         	U32 opUnit;
;;;53         	U32 m;
;;;54         	U32 n;
;;;55     
;;;56         	if( (pCurrImage->type != IMAGE420_NO_PADDED) ||
000014  e5940018          LDR      r0,[r4,#0x18]
000018  e3500001          CMP      r0,#1
00001c  1a000002          BNE      |L1.44|
;;;57         		(pPrevImage->type != IMAGE420_PADDED))
000020  e5950018          LDR      r0,[r5,#0x18]
000024  e3500000          CMP      r0,#0
000028  0a000001          BEQ      |L1.52|
;;;58         	{
;;;59         		printf("ERROR:MeEngine:incorrect image format!\n");
                  |L1.44|
00002c  e28f006c          ADR      r0,|L1.160|
000030  ebfffffe          BL       printf
;;;60         	}
;;;61     		
;;;62     
;;;63         	m=pCurrImage->imageWidth/16;
                  |L1.52|
000034  e5940010          LDR      r0,[r4,#0x10]
000038  e1a06220          MOV      r6,r0,LSR #4
;;;64         	n=pCurrImage->imageHeight/16;
00003c  e5940014          LDR      r0,[r4,#0x14]
000040  e1a07220          MOV      r7,r0,LSR #4
;;;65         
;;;66         	meDone=0;
000044  e3a00000          MOV      r0,#0
000048  e59f1078          LDR      r1,|L1.200|
00004c  e5810000          STR      r0,[r1,#0]  ; meDone
;;;67         
;;;68         	rME_CFSA=pCurrImage->yStartAddr; 
000050  e5940004          LDR      r0,[r4,#4]
000054  e59f1070          LDR      r1,|L1.204|
000058  e5810000          STR      r0,[r1,#0]
;;;69         	rME_PFSA=pPrevImage->yStartAddr;
00005c  e5950004          LDR      r0,[r5,#4]
000060  e5810004          STR      r0,[r1,#4]
;;;70         	rME_MVSA=(U32)pMeVector;
000064  e1a00001          MOV      r0,r1
000068  e5808008          STR      r8,[r0,#8]
;;;71     
;;;72         	opUnit=(m)*(n);
00006c  e0090697          MUL      r9,r7,r6
;;;73         	//printf("ME engine: opUnit=%d, m=%d, n=%d\n",opUnit,m,n);
;;;74         
;;;75     
;;;76         #if (FIMV20== TRUE)
;;;77         		//rME_CNFG=ME_FAST_MODE_DISABLE | (0x10<<16) | opUnit;   //0x10 is recommended for ME_FAST_MODE
;;;78     		rME_CNFG=ME_FAST_MODE_ENABLE | (0x7f<<16) | opUnit;   //0x10 is recommended for ME_FAST_MODE
000070  e3890740          ORR      r0,r9,#0x1000000
000074  e380087f          ORR      r0,r0,#0x7f0000
000078  e5810014          STR      r0,[r1,#0x14]
;;;79     		
;;;80         		rME_IMGFMT=((n-1)<<8) | ((m-1)<<0);
00007c  e2460001          SUB      r0,r6,#1
000080  e2471001          SUB      r1,r7,#1
000084  e1800401          ORR      r0,r0,r1,LSL #8
000088  e59f103c          LDR      r1,|L1.204|
00008c  e5810018          STR      r0,[r1,#0x18]
;;;81         	
;;;82         		rME_CMND=ME_ROUND_BIT_1 | ME_4MV_MODE | ME_MPEG4_MODE |ME_OP_START |ME_FRAME_START |
000090  e59f0038          LDR      r0,|L1.208|
000094  e1c11000          BIC      r1,r1,r0
000098  e581000c          STR      r0,[r1,#0xc]
;;;83         	     	           	ME_INT_REQ_CLEAR;
;;;84         #else
;;;85     		rME_CMND = 0x0000c60b; //396MB
;;;86         #endif
;;;87     }
00009c  e8bd87f0          LDMFD    sp!,{r4-r10,pc}
                  |L1.160|
0000a0  4f525245          DCB      "ERRO"
0000a4  654d3a52          DCB      "R:Me"
0000a8  69676e45          DCB      "Engi"
0000ac  693a656e          DCB      "ne:i"
0000b0  726f636e          DCB      "ncor"
0000b4  74636572          DCB      "rect"
0000b8  616d6920          DCB      " ima"
0000bc  66206567          DCB      "ge f"
0000c0  616d726f          DCB      "orma"
0000c4  000a2174          DCB      "t!\n\0"
                  |L1.200|
0000c8  00000000          DCD      ||.bss$2||
                  |L1.204|
0000cc  48800000          DCD      0x48800000
                  |L1.208|
0000d0  0003000b          DCD      0x0003000b
                          ENDP

                  MeEngineGob PROC
;;;94     void MeEngineGob(PIMAGE420 pCurrImage,PIMAGE420 pPrevImage,PME_VECTOR pMeVector,U32 opUnit,U32 mode)
;;;95     {
0000d4  e92d47f0          STMFD    sp!,{r4-r10,lr}
0000d8  e1a04000          MOV      r4,r0
0000dc  e1a06001          MOV      r6,r1
0000e0  e1a07002          MOV      r7,r2
0000e4  e1a08003          MOV      r8,r3
0000e8  e59d5020          LDR      r5,[sp,#0x20]
;;;96         	U32 m;
;;;97         	U32 n;
;;;98     
;;;99         	if( (pCurrImage->type != IMAGE420_NO_PADDED) ||
0000ec  e5940018          LDR      r0,[r4,#0x18]
0000f0  e3500001          CMP      r0,#1
0000f4  1a000002          BNE      |L1.260|
;;;100    		(pPrevImage->type != IMAGE420_PADDED))
0000f8  e5960018          LDR      r0,[r6,#0x18]
0000fc  e3500000          CMP      r0,#0
000100  0a000001          BEQ      |L1.268|
;;;101        	{
;;;102    		printf("ERROR:MeEngine:incorrect image format!\n");
                  |L1.260|
000104  e24f006c          ADR      r0,|L1.160|
000108  ebfffffe          BL       printf
;;;103        	}
;;;104    
;;;105        	m=pCurrImage->imageWidth/16;
                  |L1.268|
00010c  e5940010          LDR      r0,[r4,#0x10]
000110  e1a09220          MOV      r9,r0,LSR #4
;;;106        	n=pCurrImage->imageHeight/16;
000114  e5940014          LDR      r0,[r4,#0x14]
000118  e1a0a220          MOV      r10,r0,LSR #4
;;;107        	meDone=0;
00011c  e3a00000          MOV      r0,#0
000120  e51f1060          LDR      r1,|L1.200|
000124  e5810000          STR      r0,[r1,#0]  ; meDone
;;;108    
;;;109        	if(mode & ME_FRAME_START_MODE)
000128  e3150001          TST      r5,#1
00012c  0a00000d          BEQ      |L1.360|
;;;110        	{
;;;111    
;;;112    		rME_CFSA=pCurrImage->yStartAddr; 
000130  e5940004          LDR      r0,[r4,#4]
000134  e51f1070          LDR      r1,|L1.204|
000138  e5810000          STR      r0,[r1,#0]
;;;113    		rME_PFSA=pPrevImage->yStartAddr;
00013c  e5960004          LDR      r0,[r6,#4]
000140  e5810004          STR      r0,[r1,#4]
;;;114    		rME_MVSA=(U32)pMeVector;
000144  e1a00001          MOV      r0,r1
000148  e5807008          STR      r7,[r0,#8]
;;;115    
;;;116    		rME_CNFG=ME_FAST_MODE_DISABLE | (0x10<<16) | opUnit;   //0x10 is recommended for ME_FAST_MODE
00014c  e3880940          ORR      r0,r8,#0x100000
000150  e5810014          STR      r0,[r1,#0x14]
;;;117    
;;;118    		rME_IMGFMT=((n-1)<<8) | ((m-1)<<0);
000154  e2490001          SUB      r0,r9,#1
000158  e24a1001          SUB      r1,r10,#1
00015c  e1800401          ORR      r0,r0,r1,LSL #8
000160  e51f109c          LDR      r1,|L1.204|
000164  e5810018          STR      r0,[r1,#0x18]
;;;119        	}
;;;120    #if FIMV20
;;;121        	rME_CMND=ME_ROUND_BIT_1 | 
                  |L1.360|
000168  e3150001          TST      r5,#1
00016c  0a000001          BEQ      |L1.376|
000170  e51f00a8          LDR      r0,|L1.208|
000174  ea000000          B        |L1.380|
                  |L1.376|
000178  e59f0068          LDR      r0,|L1.488|
                  |L1.380|
00017c  e51f10b8          LDR      r1,|L1.204|
000180  e581000c          STR      r0,[r1,#0xc]
;;;122    	     	ME_4MV_MODE |  
;;;123    	     	ME_MPEG4_MODE |
;;;124    	     	ME_OP_START |
;;;125    	     	((mode & ME_FRAME_START_MODE)?ME_FRAME_START:0) |
;;;126    	     	ME_INT_REQ_CLEAR;
;;;127    #else
;;;128    	rME_CMND=ME_ROUND_BIT_1 | 
;;;129    	     	ME_4MV_MODE |  
;;;130    	     	ME_MPEG4_MODE |
;;;131    	     	ME_OP_START |
;;;132    	     	((mode & ME_FRAME_START_MODE)?ME_FRAME_START:0) |
;;;133    	     	ME_INT_REQ_CLEAR |
;;;134    	     	(opUnit<<7)|(0<<5);
;;;135    #endif
;;;136    }
000184  e8bd87f0          LDMFD    sp!,{r4-r10,pc}
                          ENDP

                  MeIsr PROC
;;;141    void __irq MeIsr(void)
;;;142    {
000188  e92d501f          STMFD    sp!,{r0-r4,r12,lr}
00018c  e24dd004          SUB      sp,sp,#4
;;;143    	U32 e_optime=0;
000190  e3a04000          MOV      r4,#0
;;;144        	ClearPending(BIT_ME);	
000194  e3a00f40          MOV      r0,#0x100
000198  e59f104c          LDR      r1,|L1.492|
00019c  e5810000          STR      r0,[r1,#0]
0001a0  e1c10000          BIC      r0,r1,r0
0001a4  e5900010          LDR      r0,[r0,#0x10]
0001a8  e5810010          STR      r0,[r1,#0x10]
0001ac  e1a00001          MOV      r0,r1
0001b0  e5900010          LDR      r0,[r0,#0x10]
;;;145    	e_optime = mtimer_stop();
0001b4  ebfffffe          BL       mtimer_stop
0001b8  e1a04000          MOV      r4,r0
;;;146    	printf("me= %d\n", e_optime*16);	
0001bc  e1a01204          MOV      r1,r4,LSL #4
0001c0  e28f0028          ADR      r0,|L1.496|
0001c4  ebfffffe          BL       printf
;;;147        	meDone=1;
0001c8  e3a00001          MOV      r0,#1
0001cc  e51f110c          LDR      r1,|L1.200|
0001d0  e5810000          STR      r0,[r1,#0]  ; meDone
;;;148        
;;;149        	//rME_CMND=rME_CMND & ~(ME_FRAME_START|ME_OP_START) | (ME_INT_REQ_CLEAR);
;;;150        	printf("{me}");
0001d4  e28f001c          ADR      r0,|L1.504|
0001d8  ebfffffe          BL       printf
;;;151    }
0001dc  e28dd004          ADD      sp,sp,#4
0001e0  e8bd501f          LDMFD    sp!,{r0-r4,r12,lr}
0001e4  e25ef004          SUBS     pc,lr,#4
                  |L1.488|
0001e8  00030009          DCD      0x00030009
                  |L1.492|
0001ec  40200000          DCD      0x40200000
                  |L1.496|
0001f0  203d656d          DCB      "me= "
0001f4  000a6425          DCB      "%d\n\0"
                  |L1.504|
0001f8  7d656d7b          DCB      "{me}"
0001fc  00000000          DCB      "\0\0\0\0"
                          ENDP

                  MeInitIsr PROC
;;;156    void MeInitIsr(void)
;;;157    {
000200  e59f001c          LDR      r0,|L1.548|
;;;158        	pISR_ME=(U32)MeIsr;
000204  e59f101c          LDR      r1,|L1.552|
000208  e5810f40          STR      r0,[r1,#0xf40]
;;;159        
;;;160        	rINTMSK&=~BIT_ME;
00020c  e51f0028          LDR      r0,|L1.492|
000210  e5900008          LDR      r0,[r0,#8]
000214  e3c00f40          BIC      r0,r0,#0x100
000218  e51f1034          LDR      r1,|L1.492|
00021c  e5810008          STR      r0,[r1,#8]
;;;161    }
000220  e12fff1e          BX       lr
                  |L1.548|
000224  00000000          DCD      MeIsr
                  |L1.552|
000228  13fff000          DCD      0x13fff000
                          ENDP



                          AREA ||.bss||, NOINIT, ALIGN=2

                  meDone
                  ||.bss$2||
                          % 4


        END

⌨️ 快捷键说明

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