📄 memc_test.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\memc_test.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
TestMeMc PROC
;;;75 void TestMeMc(void)
;;;76 {
|L1.0|
000000 e92d4070 STMFD sp!,{r4-r6,lr}
000004 e24dd058 SUB sp,sp,#0x58
;;;77 IMAGE420 currImage; //no-padded image YCbCr420
;;;78 IMAGE420 prevImage; //padded image YCbCr420
;;;79 IMAGE420 mcedImage; //padded image YCbCr420
;;;80
;;;81
;;;82 U32 imageWidth=FIMV_IMAGE_WIDTH;
000008 e3a05f58 MOV r5,#0x160
;;;83 U32 imageHeight=FIMV_IMAGE_HEIGHT;
00000c e3a06f48 MOV r6,#0x120
;;;84
;;;85 U32 freeBufStartAddr=_NONCACHE_STARTADDRESS;
000010 e3a04544 MOV r4,#0x11000000
;;;86
;;;87 int i;
;;;88
;;;89
;;;90
;;;91 //currImage has already been in the read-only area.
;;;92 AllocImage420(&currImage,TEST_CURR_IMAGE,imageWidth,imageHeight,IMAGE420_NO_PADDED);
000014 e3a03001 MOV r3,#1
000018 e58d3000 STR r3,[sp,#0]
00001c e1a03006 MOV r3,r6
000020 e1a02005 MOV r2,r5
000024 e59f10e4 LDR r1,|L1.272|
000028 e28d003c ADD r0,sp,#0x3c
00002c ebfffffe BL AllocImage420
;;;93
;;;94 printf("currImage addr(read only): %x\n",TEST_CURR_IMAGE);
000030 e59f10d8 LDR r1,|L1.272|
000034 e28f00d8 ADR r0,|L1.276|
000038 ebfffffe BL printf
;;;95 //printf("The picture is the currImage. Press any key!\n");
;;;96 //getchar();
;;;97
;;;98
;;;99 //previous mcedImage has already been in the read-only area.
;;;100 AllocImage420(&prevImage,TEST_PREV_IMAGE,imageWidth,imageHeight,IMAGE420_PADDED);
00003c e3a03000 MOV r3,#0
000040 e58d3000 STR r3,[sp,#0]
000044 e1a03006 MOV r3,r6
000048 e1a02005 MOV r2,r5
00004c e59f10e0 LDR r1,|L1.308|
000050 e28d0020 ADD r0,sp,#0x20
000054 ebfffffe BL AllocImage420
;;;101
;;;102
;;;103 printf("prevImage addr(read only): %x\n",TEST_PREV_IMAGE);
000058 e59f10d4 LDR r1,|L1.308|
00005c e28f00d4 ADR r0,|L1.312|
000060 ebfffffe BL printf
;;;104 //printf("The picture is the prevImage. Press any key!\n");
;;;105 //getchar();
;;;106
;;;107
;;;108 //mcedImage is used for MC output.
;;;109 printf("mced Image addr(read only): %x\n",freeBufStartAddr);
000064 e1a01004 MOV r1,r4
000068 e28f00e8 ADR r0,|L1.344|
00006c ebfffffe BL printf
;;;110 freeBufStartAddr=
000070 e3a03000 MOV r3,#0
000074 e58d3000 STR r3,[sp,#0]
000078 e1a03006 MOV r3,r6
00007c e1a02005 MOV r2,r5
000080 e1a01004 MOV r1,r4
000084 e28d0004 ADD r0,sp,#4
000088 ebfffffe BL AllocImage420
00008c e1a04000 MOV r4,r0
;;;111 AllocImage420(&mcedImage,freeBufStartAddr,imageWidth,imageHeight,
;;;112 IMAGE420_PADDED);
;;;113
;;;114
;;;115 MeInitIsr();
000090 ebfffffe BL MeInitIsr
;;;116 McInitIsr();
000094 ebfffffe BL McInitIsr
;;;117 #if ME_MC_GOB_OPERATION
;;;118 for(i=0;i<(imageHeight/16);i++)
;;;119 {
;;;120 //Timer_Start(0);
;;;121 MeEngineGob(&currImage,&prevImage,meVector,(imageWidth/16),
;;;122 ((i==0)? ME_FRAME_START_MODE : 0));
;;;123 while(meDone==0);
;;;124 //printf("ME(gob=%d) completed,",i);
;;;125
;;;126
;;;127 //Timer_Start(0);
;;;128 McEngineGob(&prevImage,&mcedImage,meVector,(imageWidth/16),
;;;129 ((i==0)? MC_FRAME_START_MODE : 0));
;;;130 while(mcDone==0);
;;;131 //printf("MC(gob=%d) completed.\n",i);
;;;132 }
;;;133 #else
;;;134 mtimer_start();
000098 ebfffffe BL mtimer_start
;;;135 MeEngine(&currImage,&prevImage,meVector,0);
00009c e3a03000 MOV r3,#0
0000a0 e59f20d0 LDR r2,|L1.376|
0000a4 e28d1020 ADD r1,sp,#0x20
0000a8 e28d003c ADD r0,sp,#0x3c
0000ac ebfffffe BL MeEngine
;;;136
;;;137 //printf("Wait until M.E. is completed.\n");
;;;138 while(meDone==0);
0000b0 e1a00000 NOP
|L1.180|
0000b4 e59f00c0 LDR r0,|L1.380|
0000b8 e5900000 LDR r0,[r0,#0] ; meDone
0000bc e3500000 CMP r0,#0
0000c0 0afffffb BEQ |L1.180|
;;;139 printf("M.E. is completed!\n");
0000c4 e28f00b4 ADR r0,|L1.384|
0000c8 ebfffffe BL printf
;;;140 Uart_TxEmpty(0);
0000cc e3a00000 MOV r0,#0
0000d0 ebfffffe BL Uart_TxEmpty
;;;141 //mtimer_start();
;;;142 McEngine(&prevImage,&mcedImage,meVector,0);
0000d4 e3a03000 MOV r3,#0
0000d8 e59f2098 LDR r2,|L1.376|
0000dc e28d1004 ADD r1,sp,#4
0000e0 e28d0020 ADD r0,sp,#0x20
0000e4 ebfffffe BL McEngine
;;;143
;;;144 //printf("Wait until M.C. is completed.\n");
;;;145 while(mcDone==0);
0000e8 e1a00000 NOP
|L1.236|
0000ec e59f00a0 LDR r0,|L1.404|
0000f0 e5900000 LDR r0,[r0,#0] ; mcDone
0000f4 e3500000 CMP r0,#0
0000f8 0afffffb BEQ |L1.236|
;;;146 printf("M.C. is completed!\n");
0000fc e28f0094 ADR r0,|L1.408|
000100 ebfffffe BL printf
;;;147 #endif
;;;148
;;;149
;;;150 //printf("The picture is the mcedImage. Press any key!\n");
;;;151 getchar();
000104 ebfffffe BL getchar
;;;152 }
000108 e28dd058 ADD sp,sp,#0x58
00010c e8bd8070 LDMFD sp!,{r4-r6,pc}
|L1.272|
000110 00000000 DCD image_b2
|L1.276|
000114 72727563 DCB "curr"
000118 67616d49 DCB "Imag"
00011c 64612065 DCB "e ad"
000120 72287264 DCB "dr(r"
000124 20646165 DCB "ead "
000128 796c6e6f DCB "only"
00012c 25203a29 DCB "): %"
000130 00000a78 DCB "x\n\0\0"
|L1.308|
000134 00000000 DCD image_b1p
|L1.312|
000138 76657270 DCB "prev"
00013c 67616d49 DCB "Imag"
000140 64612065 DCB "e ad"
000144 72287264 DCB "dr(r"
000148 20646165 DCB "ead "
00014c 796c6e6f DCB "only"
000150 25203a29 DCB "): %"
000154 00000a78 DCB "x\n\0\0"
|L1.344|
000158 6465636d DCB "mced"
00015c 616d4920 DCB " Ima"
000160 61206567 DCB "ge a"
000164 28726464 DCB "ddr("
000168 64616572 DCB "read"
00016c 6c6e6f20 DCB " onl"
000170 203a2979 DCB "y): "
000174 000a7825 DCB "%x\n\0"
|L1.376|
000178 00000000 DCD ||.bss$2||
|L1.380|
00017c 00000000 DCD meDone
|L1.384|
000180 2e452e4d DCB "M.E."
000184 20736920 DCB " is "
000188 706d6f63 DCB "comp"
00018c 6574656c DCB "lete"
000190 000a2164 DCB "d!\n\0"
|L1.404|
000194 00000000 DCD mcDone
|L1.408|
000198 2e432e4d DCB "M.C."
00019c 20736920 DCB " is "
0001a0 706d6f63 DCB "comp"
0001a4 6574656c DCB "lete"
0001a8 000a2164 DCB "d!\n\0"
ENDP
AREA ||.bss||, NOINIT, ALIGN=1
meVector
||.bss$2||
% 7920
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -