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

📄 mc_test.txt

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

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

                          AREA ||.text||, CODE, READONLY

                  McEngine PROC
;;;49     void McEngine(PIMAGE420 pPrevImage,PIMAGE420 pMcedImage,PME_VECTOR pMeVector,U32 mode)
;;;50     {
                  |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
;;;51     
;;;52         	U32 m,n;
;;;53         	U32 opUnit;
;;;54         
;;;55         	m=pPrevImage->imageWidth/16;
000014  e5940010          LDR      r0,[r4,#0x10]
000018  e1a06220          MOV      r6,r0,LSR #4
;;;56         	n=pPrevImage->imageHeight/16;
00001c  e5940014          LDR      r0,[r4,#0x14]
000020  e1a07220          MOV      r7,r0,LSR #4
;;;57         	opUnit=m*n;
000024  e0090697          MUL      r9,r7,r6
;;;58     
;;;59         	mcDone=0;
000028  e3a00000          MOV      r0,#0
00002c  e59f1088          LDR      r1,|L1.188|
000030  e5810000          STR      r0,[r1,#0]  ; mcDone
;;;60     
;;;61         	if( (pPrevImage->type != IMAGE420_PADDED) ||
000034  e5940018          LDR      r0,[r4,#0x18]
000038  e3500000          CMP      r0,#0
00003c  1a000002          BNE      |L1.76|
;;;62     		(pMcedImage->type != IMAGE420_PADDED))
000040  e5950018          LDR      r0,[r5,#0x18]
000044  e3500000          CMP      r0,#0
000048  0a000001          BEQ      |L1.84|
;;;63         	{
;;;64     		printf("ERROR:McEngine:incorrect image format!\n");
                  |L1.76|
00004c  e28f006c          ADR      r0,|L1.192|
000050  ebfffffe          BL       printf
;;;65         	}
;;;66     
;;;67     #if USE_MC_ENCODE_REGISTER
;;;68         	rMC_PFYSA_ENC=pPrevImage->yStartAddr;
                  |L1.84|
000054  e5940004          LDR      r0,[r4,#4]
000058  e59f1088          LDR      r1,|L1.232|
00005c  e5810000          STR      r0,[r1,#0]
;;;69         	rMC_PFCbSA_ENC=pPrevImage->cbStartAddr;
000060  e5940008          LDR      r0,[r4,#8]
000064  e5810010          STR      r0,[r1,#0x10]
;;;70         	rMC_PFCrSA_ENC=pPrevImage->crStartAddr;
000068  e594000c          LDR      r0,[r4,#0xc]
00006c  e5810014          STR      r0,[r1,#0x14]
;;;71         
;;;72         	rMC_CFYSA_ENC=pMcedImage->yStartAddr;
000070  e5950004          LDR      r0,[r5,#4]
000074  e5810004          STR      r0,[r1,#4]
;;;73         	rMC_CFCbSA_ENC=pMcedImage->cbStartAddr;
000078  e5950008          LDR      r0,[r5,#8]
00007c  e5810018          STR      r0,[r1,#0x18]
;;;74         	rMC_CFCrSA_ENC=pMcedImage->crStartAddr;
000080  e595000c          LDR      r0,[r5,#0xc]
000084  e581001c          STR      r0,[r1,#0x1c]
;;;75     
;;;76         	rMC_MVSA_ENC=(U32)pMeVector;
000088  e1a00001          MOV      r0,r1
00008c  e5808030          STR      r8,[r0,#0x30]
;;;77     #else
;;;78         	rMC_PFYSA_DEC=pPrevImage->yStartAddr;
;;;79         	rMC_PFCbSA_DEC=pPrevImage->cbStartAddr;
;;;80         	rMC_PFCrSA_DEC=pPrevImage->crStartAddr;
;;;81         
;;;82         	rMC_CFYSA_DEC=pMcedImage->yStartAddr;
;;;83         	rMC_CFCbSA_DEC=pMcedImage->cbStartAddr;
;;;84         	rMC_CFCrSA_DEC=pMcedImage->crStartAddr;
;;;85     
;;;86         	rMC_MVSA_DEC=(U32)pMeVector;    
;;;87     #endif
;;;88     
;;;89     #if (FIMV20 == TRUE)
;;;90         	rMC_CNFG=	MC_XY_UPDATE| 
000090  e3890480          ORR      r0,r9,#0x80000000
000094  e5810040          STR      r0,[r1,#0x40]
;;;91            		(0<<24)|  //MC y count
;;;92            		(0<<16)|  //MC x count
;;;93            		(opUnit<<0);
;;;94         	rMC_IMGFMT=((n-1)<<8)|((m-1)<<0);
000098  e2460001          SUB      r0,r6,#1
00009c  e2471001          SUB      r1,r7,#1
0000a0  e1800401          ORR      r0,r0,r1,LSL #8
0000a4  e59f103c          LDR      r1,|L1.232|
0000a8  e5810044          STR      r0,[r1,#0x44]
;;;95     
;;;96         	rMC_CMND= 	MC_ROUND_BIT_1 |MC_ENCODE_MODE |MC_INT_REQ_CLEAR |MC_OP_START;
0000ac  e59f0038          LDR      r0,|L1.236|
0000b0  e1c11000          BIC      r1,r1,r0
0000b4  e5810038          STR      r0,[r1,#0x38]
;;;97     #else
;;;98     	rMC_CMND = 0x00018c70; //396 MB
;;;99     #endif	
;;;100    
;;;101    }
0000b8  e8bd87f0          LDMFD    sp!,{r4-r10,pc}
                  |L1.188|
0000bc  0000000c          DCD      ||.bss$2|| + 12
                  |L1.192|
0000c0  4f525245          DCB      "ERRO"
0000c4  634d3a52          DCB      "R:Mc"
0000c8  69676e45          DCB      "Engi"
0000cc  693a656e          DCB      "ne:i"
0000d0  726f636e          DCB      "ncor"
0000d4  74636572          DCB      "rect"
0000d8  616d6920          DCB      " ima"
0000dc  66206567          DCB      "ge f"
0000e0  616d726f          DCB      "orma"
0000e4  000a2174          DCB      "t!\n\0"
                  |L1.232|
0000e8  48c00000          DCD      0x48c00000
                  |L1.236|
0000ec  00020070          DCD      0x00020070
                          ENDP

                  McEngineGob PROC
;;;110    void McEngineGob(PIMAGE420 pPrevImage,PIMAGE420 pMcedImage,PME_VECTOR pMeVector,U32 opUnit,U32 mode)
;;;111    {
0000f0  e92d47f0          STMFD    sp!,{r4-r10,lr}
0000f4  e1a04000          MOV      r4,r0
0000f8  e1a05001          MOV      r5,r1
0000fc  e1a09002          MOV      r9,r2
000100  e1a07003          MOV      r7,r3
000104  e59d8020          LDR      r8,[sp,#0x20]
;;;112    
;;;113        	U32 m,n;
;;;114    #if MC_XY_UPDATE_EVERY_GOB
;;;115        	static mCnt,mx,my;
;;;116    #endif
;;;117    
;;;118        	m=pPrevImage->imageWidth/16;
000108  e5940010          LDR      r0,[r4,#0x10]
00010c  e1a06220          MOV      r6,r0,LSR #4
;;;119        	n=pPrevImage->imageHeight/16;
000110  e5940014          LDR      r0,[r4,#0x14]
000114  e1a0a220          MOV      r10,r0,LSR #4
;;;120    
;;;121        	mcDone=0;
000118  e3a00000          MOV      r0,#0
00011c  e51f1068          LDR      r1,|L1.188|
000120  e5810000          STR      r0,[r1,#0]  ; mcDone
;;;122        	if( (pPrevImage->type != IMAGE420_PADDED) ||
000124  e5940018          LDR      r0,[r4,#0x18]
000128  e3500000          CMP      r0,#0
00012c  1a000002          BNE      |L1.316|
;;;123    		(pMcedImage->type != IMAGE420_PADDED))
000130  e5950018          LDR      r0,[r5,#0x18]
000134  e3500000          CMP      r0,#0
000138  0a000001          BEQ      |L1.324|
;;;124        	{
;;;125    		printf("ERROR:McEngine:incorrect image format!\n");
                  |L1.316|
00013c  e24f0084          ADR      r0,|L1.192|
000140  ebfffffe          BL       printf
;;;126        	}
;;;127    
;;;128        	if(mode&MC_FRAME_START_MODE)
                  |L1.324|
000144  e3180001          TST      r8,#1
000148  0a00001c          BEQ      |L1.448|
;;;129        	{
;;;130        #if USE_MC_ENCODE_REGISTER
;;;131    		rMC_PFYSA_ENC=pPrevImage->yStartAddr;
00014c  e5940004          LDR      r0,[r4,#4]
000150  e51f1070          LDR      r1,|L1.232|
000154  e5810000          STR      r0,[r1,#0]
;;;132    		rMC_PFCbSA_ENC=pPrevImage->cbStartAddr;
000158  e5940008          LDR      r0,[r4,#8]
00015c  e5810010          STR      r0,[r1,#0x10]
;;;133    		rMC_PFCrSA_ENC=pPrevImage->crStartAddr;
000160  e594000c          LDR      r0,[r4,#0xc]
000164  e5810014          STR      r0,[r1,#0x14]
;;;134    
;;;135    		rMC_CFYSA_ENC=pMcedImage->yStartAddr;
000168  e5950004          LDR      r0,[r5,#4]
00016c  e5810004          STR      r0,[r1,#4]
;;;136    		rMC_CFCbSA_ENC=pMcedImage->cbStartAddr;
000170  e5950008          LDR      r0,[r5,#8]
000174  e5810018          STR      r0,[r1,#0x18]
;;;137    		rMC_CFCrSA_ENC=pMcedImage->crStartAddr;
000178  e595000c          LDR      r0,[r5,#0xc]
00017c  e581001c          STR      r0,[r1,#0x1c]
;;;138    
;;;139    		rMC_MVSA_ENC=(U32)pMeVector;
000180  e1a00001          MOV      r0,r1
000184  e5809030          STR      r9,[r0,#0x30]
;;;140        #else
;;;141    		rMC_PFYSA_DEC=pPrevImage->yStartAddr;
;;;142    		rMC_PFCbSA_DEC=pPrevImage->cbStartAddr;
;;;143    		rMC_PFCrSA_DEC=pPrevImage->crStartAddr;
;;;144    
;;;145    		rMC_CFYSA_DEC=pMcedImage->yStartAddr;
;;;146    		rMC_CFCbSA_DEC=pMcedImage->cbStartAddr;
;;;147    		rMC_CFCrSA_DEC=pMcedImage->crStartAddr;
;;;148    
;;;149    		rMC_MVSA_DEC=(U32)pMeVector;    
;;;150        #endif
;;;151        
;;;152        #if !MC_XY_UPDATE_EVERY_GOB
;;;153            	rMC_CNFG=MC_XY_UPDATE| 
;;;154    		 		(0<<24)|  //MC y count
;;;155    		 		(0<<16)|  //MC x count
;;;156    		 		(opUnit<<0);
;;;157        #else
;;;158     		mx=0;my=0;mCnt=0;    
000188  e3a00000          MOV      r0,#0
00018c  e59f10f4          LDR      r1,|L1.648|
000190  e5810000          STR      r0,[r1,#0]  ; mx@McEngineGob_1
000194  e3a00000          MOV      r0,#0
000198  e59f10ec          LDR      r1,|L1.652|
00019c  e5810000          STR      r0,[r1,#0]  ; my@McEngineGob_2
0001a0  e3a00000          MOV      r0,#0
0001a4  e59f10e4          LDR      r1,|L1.656|
0001a8  e5810000          STR      r0,[r1,#0]  ; mCnt@McEngineGob_0
;;;159        #endif
;;;160        
;;;161    		rMC_IMGFMT=((n-1)<<8)|((m-1)<<0);
0001ac  e2460001          SUB      r0,r6,#1
0001b0  e24a1001          SUB      r1,r10,#1
0001b4  e1800401          ORR      r0,r0,r1,LSL #8
0001b8  e51f10d8          LDR      r1,|L1.232|
0001bc  e5810044          STR      r0,[r1,#0x44]
;;;162    
;;;163        }
;;;164    
;;;165    #if MC_XY_UPDATE_EVERY_GOB
;;;166        	mx=mCnt%m;
                  |L1.448|
0001c0  e59f00c8          LDR      r0,|L1.656|
0001c4  e5901000          LDR      r1,[r0,#0]  ; mCnt@McEngineGob_0
0001c8  e1a00006          MOV      r0,r6
0001cc  ebfffffe          BL       __rt_udiv
0001d0  e59f00b0          LDR      r0,|L1.648|
0001d4  e5801000          STR      r1,[r0,#0]  ; mx@McEngineGob_1
;;;167        	my=mCnt/m;
0001d8  e59f00b0          LDR      r0,|L1.656|
0001dc  e5901000          LDR      r1,[r0,#0]  ; mCnt@McEngineGob_0
0001e0  e1a00006          MOV      r0,r6
0001e4  ebfffffe          BL       __rt_udiv
0001e8  e59f109c          LDR      r1,|L1.652|
0001ec  e5810000          STR      r0,[r1,#0]  ; my@McEngineGob_2
;;;168        	rMC_CNFG=MC_XY_UPDATE|  
0001f0  e59f0094          LDR      r0,|L1.652|
0001f4  e5900000          LDR      r0,[r0,#0]  ; my@McEngineGob_2
0001f8  e1a00c00          MOV      r0,r0,LSL #24
0001fc  e59f1084          LDR      r1,|L1.648|
000200  e5911000          LDR      r1,[r1,#0]  ; mx@McEngineGob_1
000204  e1800801          ORR      r0,r0,r1,LSL #16
000208  e1800007          ORR      r0,r0,r7
00020c  e3800480          ORR      r0,r0,#0x80000000
000210  e51f1130          LDR      r1,|L1.232|
000214  e5810040          STR      r0,[r1,#0x40]
;;;169    	     	(my<<24)|  //MC y count
;;;170    	     	(mx<<16)|  //MC x count
;;;171    	     	(opUnit<<0);
;;;172        		mCnt+=opUnit;
000218  e59f0070          LDR      r0,|L1.656|
00021c  e5900000          LDR      r0,[r0,#0]  ; mCnt@McEngineGob_0
000220  e0800007          ADD      r0,r0,r7
000224  e59f1064          LDR      r1,|L1.656|
000228  e5810000          STR      r0,[r1,#0]  ; mCnt@McEngineGob_0
;;;173    #endif    	
;;;174    
;;;175    #if FIMV20
;;;176        	rMC_CMND=	MC_ROUND_BIT_1 |
00022c  e51f0148          LDR      r0,|L1.236|
000230  e51f1150          LDR      r1,|L1.232|
000234  e5810038          STR      r0,[r1,#0x38]
;;;177    			MC_ENCODE_MODE |
;;;178    			MC_INT_REQ_CLEAR |
;;;179    			MC_OP_START;
;;;180    #else
;;;181    
;;;182        	rMC_CMND=	MC_ROUND_BIT_1 |
;;;183    			MC_ENCODE_MODE |
;;;184    			MC_INT_REQ_CLEAR |
;;;185    			MC_OP_START|(0<<0)|(opUnit<<8);
;;;186    #endif
;;;187    
;;;188    }
000238  e8bd87f0          LDMFD    sp!,{r4-r10,pc}
                          ENDP

                  McIsr PROC
;;;194    void __irq McIsr(void)
;;;195    {
00023c  e92d501f          STMFD    sp!,{r0-r4,r12,lr}
000240  e24dd004          SUB      sp,sp,#4
;;;196    	U32 c_optime=0;
000244  e3a04000          MOV      r4,#0
;;;197        	ClearPending(BIT_MC);	
000248  e3a00080          MOV      r0,#0x80
00024c  e59f1040          LDR      r1,|L1.660|
000250  e5810000          STR      r0,[r1,#0]
000254  e1c10000          BIC      r0,r1,r0
000258  e5900010          LDR      r0,[r0,#0x10]
00025c  e5810010          STR      r0,[r1,#0x10]
000260  e1a00001          MOV      r0,r1
000264  e5900010          LDR      r0,[r0,#0x10]
;;;198    	//c_optime = mtimer_stop();
;;;199    		
;;;200    	//printf("mc= %d\n", c_optime*16);
;;;201        	mcDone=1;
000268  e3a00001          MOV      r0,#1
00026c  e51f11b8          LDR      r1,|L1.188|
000270  e5810000          STR      r0,[r1,#0]  ; mcDone
;;;202        	printf("{mc}");
000274  e28f001c          ADR      r0,|L1.664|
000278  ebfffffe          BL       printf
;;;203    }
00027c  e28dd004          ADD      sp,sp,#4
000280  e8bd501f          LDMFD    sp!,{r0-r4,r12,lr}
000284  e25ef004          SUBS     pc,lr,#4
                  |L1.648|
000288  00000004          DCD      ||.bss$2|| + 4
                  |L1.652|
00028c  00000008          DCD      ||.bss$2|| + 8
                  |L1.656|
000290  00000000          DCD      ||.bss$2||
                  |L1.660|
000294  40200000          DCD      0x40200000
                  |L1.664|
000298  7d636d7b          DCB      "{mc}"
00029c  00000000          DCB      "\0\0\0\0"
                          ENDP

                  McInitIsr PROC
;;;205    void McInitIsr(void)
;;;206    {
0002a0  e59f001c          LDR      r0,|L1.708|
;;;207        	pISR_MC=(U32)McIsr;
0002a4  e59f101c          LDR      r1,|L1.712|
0002a8  e5810f3c          STR      r0,[r1,#0xf3c]
;;;208        
;;;209        	rINTMSK&=~BIT_MC;
0002ac  e51f0020          LDR      r0,|L1.660|
0002b0  e5900008          LDR      r0,[r0,#8]
0002b4  e3c00080          BIC      r0,r0,#0x80
0002b8  e51f102c          LDR      r1,|L1.660|
0002bc  e5810008          STR      r0,[r1,#8]
;;;210    }
0002c0  e12fff1e          BX       lr
                  |L1.708|
0002c4  00000000          DCD      McIsr
                  |L1.712|
0002c8  13fff000          DCD      0x13fff000
                          ENDP



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

                  ||mCnt@McEngineGob_0||
                  ||.bss$2||
                          % 4
                  ||mx@McEngineGob_1||
                          % 4
                  ||my@McEngineGob_2||
                          % 4
                  mcDone
                          % 4


        END

⌨️ 快捷键说明

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