📄 mc_test.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 + -