📄 post.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; commandline [-errors .\err\post.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
PostDisplayFunction PROC
;;;49 void PostDisplayFunction(void)
;;;50 {
|L1.0|
000000 e92d4010 STMFD sp!,{r4,lr}
;;;51 int i;
;;;52
;;;53 i=0;
000004 e3a04000 MOV r4,#0
;;;54 Uart_Printf("\n\n");
000008 e28f0058 ADR r0,|L1.104|
00000c ebfffffe BL _printf
;;;55 while(1) { //display menu
000010 e1a00000 NOP
|L1.20|
000014 e1a00000 NOP
;;;56 Uart_Printf("%2d:%s",i,post_function[i][1]);
000018 e59f004c LDR r0,|L1.108|
00001c e0800184 ADD r0,r0,r4,LSL #3
000020 e1a01004 MOV r1,r4
000024 e5902004 LDR r2,[r0,#4]
000028 e28f0040 ADR r0,|L1.112|
00002c ebfffffe BL _printf
;;;57 i++;
000030 e2844001 ADD r4,r4,#1
;;;58 if((int)(post_function[i][0])==0) {
000034 e59f0030 LDR r0,|L1.108|
000038 e7900184 LDR r0,[r0,r4,LSL #3]
00003c e3500000 CMP r0,#0
000040 1a000002 BNE |L1.80|
;;;59 Uart_Printf("\n");
000044 e28f002c ADR r0,|L1.120|
000048 ebfffffe BL _printf
;;;60 break;
00004c ea000004 B |L1.100|
;;;61 }
;;;62 if((i%2)==0) Uart_Printf("\n");
|L1.80|
000050 e3140001 TST r4,#1
000054 1a000001 BNE |L1.96|
000058 e28f0018 ADR r0,|L1.120|
00005c ebfffffe BL _printf
;;;63 }
|L1.96|
000060 eaffffeb B |L1.20|
;;;64 }
|L1.100|
000064 e8bd8010 LDMFD sp!,{r4,pc}
|L1.104|
000068 00000a0a DCB "\n\n\0\0"
|L1.108|
00006c 00000000 DCD post_function
|L1.112|
000070 3a643225 DCB "%2d:"
000074 00007325 DCB "%s\0\0"
|L1.120|
000078 0000000a DCB "\n\0\0\0"
ENDP
Ch27_POST PROC
;;;66 void Ch27_POST(void)
;;;67 {
00007c e92d4010 STMFD sp!,{r4,lr}
;;;68 int i;
;;;69
;;;70 Uart_Printf("\n----Test of Post Processor----\n");
000080 e28f0054 ADR r0,|L1.220|
000084 ebfffffe BL _printf
;;;71
;;;72 //LCD Initializtion
;;;73
;;;74 Uart_Printf("If you want to test Post Processor, then you must download image to memory before testing\n");
000088 e59f0070 LDR r0,|L1.256|
00008c ebfffffe BL _printf
;;;75
;;;76 while(1) {
000090 e1a00000 NOP
|L1.148|
000094 e1a00000 NOP
;;;77 PostDisplayFunction();
000098 ebfffffe BL PostDisplayFunction
;;;78 Uart_Printf("\nSelect(-1 to exit): ");
00009c e28f0060 ADR r0,|L1.260|
0000a0 ebfffffe BL _printf
;;;79 i = Uart_GetIntNum();
0000a4 ebfffffe BL Uart_GetIntNum
0000a8 e1a04000 MOV r4,r0
;;;80 if(i==-1) break;
0000ac e3740001 CMN r4,#1
0000b0 1a000000 BNE |L1.184|
0000b4 ea000007 B |L1.216|
;;;81
;;;82 if(i>=0 && (i<(sizeof(post_function)/8)) )
|L1.184|
0000b8 e3540000 CMP r4,#0
0000bc ba000004 BLT |L1.212|
0000c0 e354000f CMP r4,#0xf
0000c4 2a000002 BCS |L1.212|
;;;83 ( (void (*)(void)) (post_function[i][0]) )(); // execute selected function.
0000c8 e51f1064 LDR r1,|L1.108|
0000cc e7910184 LDR r0,[r1,r4,LSL #3]
0000d0 e12fff30 BLX r0
;;;84 }
|L1.212|
0000d4 eaffffee B |L1.148|
;;;85
;;;86 }
|L1.216|
0000d8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.220|
0000dc 2d2d2d0a DCB "\n---"
0000e0 7365542d DCB "-Tes"
0000e4 666f2074 DCB "t of"
0000e8 736f5020 DCB " Pos"
0000ec 72502074 DCB "t Pr"
0000f0 7365636f DCB "oces"
0000f4 2d726f73 DCB "sor-"
0000f8 0a2d2d2d DCB "---\n"
0000fc 00000000 DCB "\0\0\0\0"
|L1.256|
000100 00000290 DCD ||.constdata$1|| + 656
|L1.260|
000104 6c65530a DCB "\nSel"
000108 28746365 DCB "ect("
00010c 7420312d DCB "-1 t"
000110 7865206f DCB "o ex"
000114 3a297469 DCB "it):"
000118 00000020 DCB " \0\0\0"
ENDP
PostStartProcessing PROC
;;;1256 void PostStartProcessing(U32 FrameCnt)
;;;1257 {
00011c e3a01000 MOV r1,#0
;;;1258
;;;1259 postProcessingDone=0;
000120 e59f25a0 LDR r2,|L1.1736|
000124 e5821000 STR r1,[r2,#0] ; postProcessingDone
;;;1260
;;;1261 rADDRStart_Y=ADDRStartY[FrameCnt];
000128 e59f159c LDR r1,|L1.1740|
00012c e7911100 LDR r1,[r1,r0,LSL #2]
000130 e59f2598 LDR r2,|L1.1744|
000134 e5821020 STR r1,[r2,#0x20]
;;;1262 rADDREnd_Y=ADDREndY[FrameCnt];
000138 e59f1594 LDR r1,|L1.1748|
00013c e7911100 LDR r1,[r1,r0,LSL #2]
000140 e5821030 STR r1,[r2,#0x30]
;;;1263
;;;1264 rADDRStart_Cb=ADDRStartCb[FrameCnt];
000144 e59f158c LDR r1,|L1.1752|
000148 e7911100 LDR r1,[r1,r0,LSL #2]
00014c e5821024 STR r1,[r2,#0x24]
;;;1265 rADDREnd_Cb=ADDREndCb[FrameCnt];
000150 e59f1584 LDR r1,|L1.1756|
000154 e7911100 LDR r1,[r1,r0,LSL #2]
000158 e5821034 STR r1,[r2,#0x34]
;;;1266
;;;1267 rADDRStart_Cr=ADDRStartCr[FrameCnt];
00015c e59f157c LDR r1,|L1.1760|
000160 e7911100 LDR r1,[r1,r0,LSL #2]
000164 e5821028 STR r1,[r2,#0x28]
;;;1268 rADDREnd_Cr=ADDREndCr[FrameCnt];
000168 e59f1574 LDR r1,|L1.1764|
00016c e7911100 LDR r1,[r1,r0,LSL #2]
000170 e5821038 STR r1,[r2,#0x38]
;;;1269
;;;1270 rMODE|=(1<<5);
000174 e1a01002 MOV r1,r2
000178 e5911000 LDR r1,[r1,#0]
00017c e3811020 ORR r1,r1,#0x20
000180 e5821000 STR r1,[r2,#0]
;;;1271 }
000184 e12fff1e BX lr
ENDP
PostIsr PROC
;;;1243 void __irq PostIsr(void)
;;;1244 {
000188 e92d0003 STMFD sp!,{r0,r1}
;;;1245 rINTSUBMSK=BIT_SUB_DISP_FIFO|BIT_SUB_DISP_FRAME|BIT_SUB_POST;
00018c e3a00946 MOV r0,#0x118000
000190 e59f1550 LDR r1,|L1.1768|
000194 e581001c STR r0,[r1,#0x1c]
;;;1246
;;;1247 rMODE &= ~(1<<6);//Clear Source in POST Processor
000198 e281069f ADD r0,r1,#0x9f00000
00019c e5900000 LDR r0,[r0,#0]
0001a0 e3c00040 BIC r0,r0,#0x40
0001a4 e281169f ADD r1,r1,#0x9f00000
0001a8 e5810000 STR r0,[r1,#0]
;;;1248 rSUBSRCPND=BIT_SUB_POST; //Clear SUB Interrupt Source Pending.
0001ac e3a00c80 MOV r0,#0x8000
0001b0 e241169f SUB r1,r1,#0x9f00000
0001b4 e5810018 STR r0,[r1,#0x18]
;;;1249 ClearPending(BIT_LCD_POST);//Clear Source Pending, Interrupt Pending
0001b8 e3a00c40 MOV r0,#0x4000
0001bc e1c11000 BIC r1,r1,r0
0001c0 e5810000 STR r0,[r1,#0]
0001c4 e1c10000 BIC r0,r1,r0
0001c8 e5900010 LDR r0,[r0,#0x10]
0001cc e5810010 STR r0,[r1,#0x10]
0001d0 e1a00001 MOV r0,r1
0001d4 e5900010 LDR r0,[r0,#0x10]
;;;1250
;;;1251 postProcessingDone=1;
0001d8 e3a00001 MOV r0,#1
0001dc e59f14e4 LDR r1,|L1.1736|
0001e0 e5810000 STR r0,[r1,#0] ; postProcessingDone
;;;1252 rINTSUBMSK&= ~(BIT_SUB_POST);
0001e4 e59f04fc LDR r0,|L1.1768|
0001e8 e590001c LDR r0,[r0,#0x1c]
0001ec e3c00c80 BIC r0,r0,#0x8000
0001f0 e59f14f0 LDR r1,|L1.1768|
0001f4 e581001c STR r0,[r1,#0x1c]
;;;1253 }
0001f8 e8bd0003 LDMFD sp!,{r0,r1}
0001fc e25ef004 SUBS pc,lr,#4
ENDP
PostInit PROC
;;;1277 U32 InFrameBuffer,U32 OutFrameBuffer, U32 mode)
;;;1278 {
000200 e92d4ff0 STMFD sp!,{r4-r11,lr}
000204 e24dd03c SUB sp,sp,#0x3c
000208 e1a04000 MOV r4,r0
00020c e1a09001 MOV r9,r1
000210 e1a06002 MOV r6,r2
000214 e1a05003 MOV r5,r3
000218 e59d7080 LDR r7,[sp,#0x80]
00021c e59da060 LDR r10,[sp,#0x60]
000220 e59db064 LDR r11,[sp,#0x64]
;;;1279 U32 src420, inrgb, interleave, inrgbformat, inycformat;
;;;1280 U32 outrgb;
;;;1281 U32 H_Shift, V_Shift, PreHorRatio, PreVerRatio;
;;;1282 U32 inmultiplier, outmultiplier;
;;;1283 U32 OffsetY, OffsetC, OffsetRGB;
;;;1284
;;;1285
;;;1286 switch(mode&POST_IN_MASK) {
000224 e59d0088 LDR r0,[sp,#0x88]
000228 e20000f0 AND r0,r0,#0xf0
00022c e3500040 CMP r0,#0x40
000230 0a000022 BEQ |L1.704|
000234 ca000004 BGT |L1.588|
000238 e3500010 CMP r0,#0x10
00023c 0a000007 BEQ |L1.608|
000240 e3500020 CMP r0,#0x20
000244 1a000041 BNE |L1.848|
000248 ea000010 B |L1.656|
|L1.588|
00024c e3500080 CMP r0,#0x80
000250 0a000026 BEQ |L1.752|
000254 e35000a0 CMP r0,#0xa0
000258 1a00003c BNE |L1.848|
00025c ea00002f B |L1.800|
;;;1287 case POST_IN_YCBYCR420:
;;;1288 src420=1;
|L1.608|
000260 e3a00001 MOV r0,#1
000264 e58d0038 STR r0,[sp,#0x38]
;;;1289 inrgb=0;
000268 e3a01000 MOV r1,#0
00026c e58d1034 STR r1,[sp,#0x34]
;;;1290 interleave=0;
000270 e3a01000 MOV r1,#0
000274 e58d1030 STR r1,[sp,#0x30]
;;;1291 inrgbformat=1;
000278 e3a01001 MOV r1,#1
00027c e58d102c STR r1,[sp,#0x2c]
;;;1292 inycformat=0;
000280 e3a01000 MOV r1,#0
000284 e58d1028 STR r1,[sp,#0x28]
;;;1293 inmultiplier=1;
000288 e3a08001 MOV r8,#1
;;;1294 break;
00028c ea000032 B |L1.860|
;;;1295 case POST_IN_YCBYCR422:
;;;1296 src420=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -