📄 post.txt
字号:
|L1.656|
000290 e3a00000 MOV r0,#0
000294 e58d0038 STR r0,[sp,#0x38]
;;;1167 inrgb=0;
000298 e3a01000 MOV r1,#0
00029c e58d1034 STR r1,[sp,#0x34]
;;;1168 interleave=1;
0002a0 e3a01001 MOV r1,#1
0002a4 e58d1030 STR r1,[sp,#0x30]
;;;1169 inrgbformat=1;
0002a8 e3a01001 MOV r1,#1
0002ac e58d102c STR r1,[sp,#0x2c]
;;;1170 inycformat=0;
0002b0 e3a01000 MOV r1,#0
0002b4 e58d1028 STR r1,[sp,#0x28]
;;;1171 inmultiplier=2;
0002b8 e3a08002 MOV r8,#2
;;;1172 break;
0002bc ea000026 B |L1.860|
;;;1173 case POST_IN_CBYCRY422:
;;;1174 src420=0;
|L1.704|
0002c0 e3a00000 MOV r0,#0
0002c4 e58d0038 STR r0,[sp,#0x38]
;;;1175 inrgb=0;
0002c8 e3a01000 MOV r1,#0
0002cc e58d1034 STR r1,[sp,#0x34]
;;;1176 interleave=1;
0002d0 e3a01001 MOV r1,#1
0002d4 e58d1030 STR r1,[sp,#0x30]
;;;1177 inrgbformat=1;
0002d8 e3a01001 MOV r1,#1
0002dc e58d102c STR r1,[sp,#0x2c]
;;;1178 inycformat=1;
0002e0 e3a01001 MOV r1,#1
0002e4 e58d1028 STR r1,[sp,#0x28]
;;;1179 inmultiplier=2;
0002e8 e3a08002 MOV r8,#2
;;;1180 break;
0002ec ea00001a B |L1.860|
;;;1181 case POST_IN_RGB16B:
;;;1182 src420=0;
|L1.752|
0002f0 e3a00000 MOV r0,#0
0002f4 e58d0038 STR r0,[sp,#0x38]
;;;1183 inrgb=1;
0002f8 e3a01001 MOV r1,#1
0002fc e58d1034 STR r1,[sp,#0x34]
;;;1184 interleave=1;
000300 e3a01001 MOV r1,#1
000304 e58d1030 STR r1,[sp,#0x30]
;;;1185 inrgbformat=0;
000308 e3a01000 MOV r1,#0
00030c e58d102c STR r1,[sp,#0x2c]
;;;1186 inycformat=0;
000310 e3a01000 MOV r1,#0
000314 e58d1028 STR r1,[sp,#0x28]
;;;1187 inmultiplier=2;
000318 e3a08002 MOV r8,#2
;;;1188 break;
00031c ea00000e B |L1.860|
;;;1189 case POST_IN_RGB24B:
;;;1190 src420=0;
|L1.800|
000320 e3a00000 MOV r0,#0
000324 e58d0038 STR r0,[sp,#0x38]
;;;1191 inrgb=1;
000328 e3a01001 MOV r1,#1
00032c e58d1034 STR r1,[sp,#0x34]
;;;1192 interleave=1;
000330 e3a01001 MOV r1,#1
000334 e58d1030 STR r1,[sp,#0x30]
;;;1193 inrgbformat=1;
000338 e3a01001 MOV r1,#1
00033c e58d102c STR r1,[sp,#0x2c]
;;;1194 inycformat=0;
000340 e3a01000 MOV r1,#0
000344 e58d1028 STR r1,[sp,#0x28]
;;;1195 inmultiplier=4;
000348 e3a08004 MOV r8,#4
;;;1196 break;
00034c ea000002 B |L1.860|
;;;1197 default:
;;;1198 Uart_Printf("ERROR:incorrect POST input format.\n");
|L1.848|
000350 e28f0fe5 ADR r0,|L1.1772|
000354 ebfffffe BL _printf
;;;1199 break;
000358 e1a00000 NOP
;;;1200 }
;;;1201
;;;1202 if((mode&POST_OUT_MASK)==POST_OUT_RGB16B) {
|L1.860|
00035c e59d0088 LDR r0,[sp,#0x88]
000360 e200000f AND r0,r0,#0xf
000364 e3500001 CMP r0,#1
000368 1a000004 BNE |L1.896|
;;;1203 outrgb=0;
00036c e3a01000 MOV r1,#0
000370 e58d1024 STR r1,[sp,#0x24]
;;;1204 outmultiplier=2;
000374 e3a01002 MOV r1,#2
000378 e58d1010 STR r1,[sp,#0x10]
00037c ea00000a B |L1.940|
;;;1205 }
;;;1206 else if((mode&POST_OUT_MASK)==POST_OUT_RGB24B) {
|L1.896|
000380 e59d0088 LDR r0,[sp,#0x88]
000384 e200000f AND r0,r0,#0xf
000388 e3500002 CMP r0,#2
00038c 1a000004 BNE |L1.932|
;;;1207 outrgb=1;
000390 e3a01001 MOV r1,#1
000394 e58d1024 STR r1,[sp,#0x24]
;;;1208 outmultiplier=4;
000398 e3a01004 MOV r1,#4
00039c e58d1010 STR r1,[sp,#0x10]
0003a0 ea000001 B |L1.940|
;;;1209 }
;;;1210 else
;;;1211 Uart_Printf("ERROR:incorrect POST output format.\n");
|L1.932|
0003a4 e28f0fd9 ADR r0,|L1.1808|
0003a8 ebfffffe BL _printf
;;;1212
;;;1213 OffsetC=(OrgSrcWidth-SrcWidth)*inmultiplier/2;
|L1.940|
0003ac e0440006 SUB r0,r4,r6
0003b0 e0000098 MUL r0,r8,r0
0003b4 e1a000a0 MOV r0,r0,LSR #1
0003b8 e58d0008 STR r0,[sp,#8]
;;;1214
;;;1215 //rMODE=(1<<9)|(src420<<8)|(POST_INTEN<<7)|(outrgb<<4)|(inrgb<<3)|(interleave<<2)|(inrgbformat<<1)|(inycformat);
;;;1216 rMODE=(2<<10)|(1<<9)|(src420<<8)|(POST_INTEN<<7)|(outrgb<<4)|(inrgb<<3)|(interleave<<2)|(inrgbformat<<1)|(inycformat);
0003bc e59d0038 LDR r0,[sp,#0x38]
0003c0 e1a00400 MOV r0,r0,LSL #8
0003c4 e59d1024 LDR r1,[sp,#0x24]
0003c8 e1800201 ORR r0,r0,r1,LSL #4
0003cc e59d1034 LDR r1,[sp,#0x34]
0003d0 e1800181 ORR r0,r0,r1,LSL #3
0003d4 e59d1030 LDR r1,[sp,#0x30]
0003d8 e1800101 ORR r0,r0,r1,LSL #2
0003dc e59d102c LDR r1,[sp,#0x2c]
0003e0 e1800081 ORR r0,r0,r1,LSL #1
0003e4 e59d1028 LDR r1,[sp,#0x28]
0003e8 e1800001 ORR r0,r0,r1
0003ec e3800ea8 ORR r0,r0,#0xa80
0003f0 e59f12d8 LDR r1,|L1.1744|
0003f4 e5810000 STR r0,[r1,#0]
;;;1217
;;;1218 CalculatePrescalerRatioShift(SrcWidth, DstWidth, &PreHorRatio, &H_Shift);
0003f8 e28d3020 ADD r3,sp,#0x20
0003fc e28d2018 ADD r2,sp,#0x18
000400 e1a00006 MOV r0,r6
000404 e59d1070 LDR r1,[sp,#0x70]
000408 ebfffffe BL CalculatePrescalerRatioShift
;;;1219 CalculatePrescalerRatioShift(SrcHeight, DstHeight, &PreVerRatio, &V_Shift);
00040c e28d301c ADD r3,sp,#0x1c
000410 e28d2014 ADD r2,sp,#0x14
000414 e1a00005 MOV r0,r5
000418 e59d1074 LDR r1,[sp,#0x74]
00041c ebfffffe BL CalculatePrescalerRatioShift
;;;1220
;;;1221 rPreScale_Ratio=(PreVerRatio<<7)|(PreHorRatio);
000420 e59d0018 LDR r0,[sp,#0x18]
000424 e59d1014 LDR r1,[sp,#0x14]
000428 e1800381 ORR r0,r0,r1,LSL #7
00042c e59f129c LDR r1,|L1.1744|
000430 e5810004 STR r0,[r1,#4]
;;;1222 rPreScaleImgSize=((SrcHeight/PreVerRatio)<<12)|(SrcWidth/PreHorRatio);
000434 e1a01006 MOV r1,r6
000438 e59d0018 LDR r0,[sp,#0x18]
00043c ebfffffe BL __rt_udiv
000440 e1a01005 MOV r1,r5
000444 e58d0000 STR r0,[sp,#0]
000448 e59d0014 LDR r0,[sp,#0x14]
00044c ebfffffe BL __rt_udiv
000450 e1a01000 MOV r1,r0
000454 e59d0000 LDR r0,[sp,#0]
000458 e1800601 ORR r0,r0,r1,LSL #12
00045c e59f126c LDR r1,|L1.1744|
000460 e5810008 STR r0,[r1,#8]
;;;1223 rSRCImgSize=(SrcHeight<<12)|(SrcWidth<<0);
000464 e1860605 ORR r0,r6,r5,LSL #12
000468 e581000c STR r0,[r1,#0xc]
;;;1224 rMainScale_H_Ratio=(SrcWidth<<8)/(DstWidth<<H_Shift);
00046c e1a01406 MOV r1,r6,LSL #8
000470 e59d2020 LDR r2,[sp,#0x20]
000474 e59d3070 LDR r3,[sp,#0x70]
000478 e1a00213 MOV r0,r3,LSL r2
00047c ebfffffe BL __rt_udiv
000480 e59f1248 LDR r1,|L1.1744|
000484 e5810010 STR r0,[r1,#0x10]
;;;1225 rMainScale_V_Ratio=(SrcHeight<<8)/(DstHeight<<V_Shift);
000488 e1a01405 MOV r1,r5,LSL #8
00048c e59d201c LDR r2,[sp,#0x1c]
000490 e59d3074 LDR r3,[sp,#0x74]
000494 e1a00213 MOV r0,r3,LSL r2
000498 ebfffffe BL __rt_udiv
00049c e59f122c LDR r1,|L1.1744|
0004a0 e5810014 STR r0,[r1,#0x14]
;;;1226 rDSTImgSize=(DstHeight<<12)|(DstWidth<<0);
0004a4 e59d1070 LDR r1,[sp,#0x70]
0004a8 e59d3074 LDR r3,[sp,#0x74]
0004ac e1810603 ORR r0,r1,r3,LSL #12
0004b0 e59f1218 LDR r1,|L1.1744|
0004b4 e5810018 STR r0,[r1,#0x18]
;;;1227 rPreScale_SHFactor=10-(H_Shift+V_Shift);
0004b8 e59d0020 LDR r0,[sp,#0x20]
0004bc e59d101c LDR r1,[sp,#0x1c]
0004c0 e0800001 ADD r0,r0,r1
0004c4 e260000a RSB r0,r0,#0xa
0004c8 e59f1200 LDR r1,|L1.1744|
0004cc e581001c STR r0,[r1,#0x1c]
;;;1228
;;;1229 OffsetY=(OrgSrcWidth-SrcWidth)*inmultiplier;
0004d0 e0440006 SUB r0,r4,r6
0004d4 e0020098 MUL r2,r8,r0
0004d8 e58d200c STR r2,[sp,#0xc]
;;;1230 OffsetC=((OrgSrcWidth-SrcWidth)/2)*1;
0004dc e0440006 SUB r0,r4,r6
0004e0 e1a000a0 MOV r0,r0,LSR #1
0004e4 e58d0008 STR r0,[sp,#8]
;;;1231
;;;1232 ADDRStartY[0]=InFrameBuffer+(OrgSrcWidth*SrcStartY+SrcStartX)*inmultiplier;
0004e8 e020a49b MLA r0,r11,r4,r10
0004ec e0207098 MLA r0,r8,r0,r7
0004f0 e59f11d4 LDR r1,|L1.1740|
0004f4 e5810000 STR r0,[r1,#0] ; ADDRStartY
;;;1233 ADDREndY[0]=ADDRStartY[0]+SrcWidth*SrcHeight*inmultiplier+OffsetY*(SrcHeight-1);
0004f8 e59f01cc LDR r0,|L1.1740|
0004fc e5900000 LDR r0,[r0,#0] ; ADDRStartY
000500 e0010695 MUL r1,r5,r6
000504 e0200198 MLA r0,r8,r1,r0
000508 e2451001 SUB r1,r5,#1
00050c e59d200c LDR r2,[sp,#0xc]
000510 e0200291 MLA r0,r1,r2,r0
000514 e59f11b8 LDR r1,|L1.1748|
000518 e5810000 STR r0,[r1,#0] ; ADDREndY
;;;1234 ADDRStartCb[0]=InFrameBuffer+OrgSrcWidth*OrgSrcHeight*1+(OrgSrcWidth/2*SrcStartY/2+SrcStartX/2)*1;
00051c e1a000a4 MOV r0,r4,LSR #1
000520 e000009b MUL r0,r11,r0
000524 e1a000a0 MOV r0,r0,LSR #1
000528 e08000aa ADD r0,r0,r10,LSR #1
00052c e0217499 MLA r1,r9,r4,r7
000530 e0800001 ADD r0,r0,r1
000534 e59f119c LDR r1,|L1.1752|
000538 e5810000 STR r0,[r1,#0] ; ADDRStartCb
;;;1235 ADDREndCb[0]=ADDRStartCb[0]+(SrcWidth/2*SrcHeight/2)*1+OffsetC*(SrcHeight/2-1);
00053c e59f0194 LDR r0,|L1.1752|
000540 e5900000 LDR r0,[r0,#0] ; ADDRStartCb
000544 e1a010a6 MOV r1,r6,LSR #1
000548 e0010195 MUL r1,r5,r1
00054c e08000a1 ADD r0,r0,r1,LSR #1
000550 e3e01000 MVN r1,#0
000554 e08110a5 ADD r1,r1,r5,LSR #1
000558 e59d2008 LDR r2,[sp,#8]
00055c e0200291 MLA r0,r1,r2,r0
000560 e59f1174 LDR r1,|L1.1756|
000564 e5810000 STR r0,[r1,#0] ; ADDREndCb
;;;1236 ADDRStartCr[0]=InFrameBuffer+OrgSrcWidth*OrgSrcHeight*1+(OrgSrcWidth/2*OrgSrcHeight/2)*1+(OrgSrcWidth/2*SrcStartY/2+SrcStartX/2)*1;
000568 e0207499 MLA r0,r9,r4,r7
00056c e1a010a4 MOV r1,r4,LSR #1
000570 e0010199 MUL r1,r9,r1
000574 e08000a1 ADD r0,r0,r1,LSR #1
000578 e1a010a4 MOV r1,r4,LSR #1
00057c e001019b MUL r1,r11,r1
000580 e1a010a1 MOV r1,r1,LSR #1
000584 e08110aa ADD r1,r1,r10,LSR #1
000588 e0800001 ADD r0,r0,r1
00058c e59f114c LDR r1,|L1.1760|
000590 e5810000 STR r0,[r1,#0] ; ADDRStartCr
;;;1237 ADDREndCr[0]=ADDRStartCr[0]+(SrcWidth/2*SrcHeight/2)*1+OffsetC*(SrcHeight/2-1);
000594 e59f0144 LDR r0,|L1.1760|
000598 e5900000 LDR r0,[r0,#0] ; ADDRStartCr
00059c e1a010a6 MOV r1,r6,LSR #1
0005a0 e0010195 MUL r1,r5,r1
0005a4 e08000a1 ADD r0,r0,r1,LSR #1
0005a8 e3e01000 MVN r1,#0
0005ac e08110a5 ADD r1,r1,r5,LSR #1
0005b0 e59d2008 LDR r2,[sp,#8]
0005b4 e0200291 MLA r0,r1,r2,r0
0005b8 e59f1124 LDR r1,|L1.1764|
0005bc e5810000 STR r0,[r1,#0] ; ADDREndCr
;;;1238
;;;1239 InFrameBuffer+=(OrgSrcWidth*OrgSrcHeight)*(2+inmultiplier)/2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -