📄 post.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; 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
;;;47 void PostDisplayFunction(void)
;;;48 {
|L1.0|
000000 e92d4010 STMFD sp!,{r4,lr}
;;;49 int i;
;;;50
;;;51 i=0;
000004 e3a04000 MOV r4,#0
;;;52 Uart_Printf("\n\n");
000008 e28f0058 ADR r0,|L1.104|
00000c ebfffffe BL _printf
;;;53 while(1) { //display menu
000010 e1a00000 NOP
|L1.20|
000014 e1a00000 NOP
;;;54 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
;;;55 i++;
000030 e2844001 ADD r4,r4,#1
;;;56 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|
;;;57 Uart_Printf("\n");
000044 e28f002c ADR r0,|L1.120|
000048 ebfffffe BL _printf
;;;58 break;
00004c ea000004 B |L1.100|
;;;59 }
;;;60 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
;;;61 }
|L1.96|
000060 eaffffeb B |L1.20|
;;;62 }
|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
;;;64 void Ch27_POST(void)
;;;65 {
00007c e92d4010 STMFD sp!,{r4,lr}
;;;66 int i;
;;;67
;;;68 Uart_Printf("\n----Test of Post Processor----\n");
000080 e28f0054 ADR r0,|L1.220|
000084 ebfffffe BL _printf
;;;69
;;;70 //LCD Initializtion
;;;71
;;;72 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
;;;73
;;;74 while(1) {
000090 e1a00000 NOP
|L1.148|
000094 e1a00000 NOP
;;;75 PostDisplayFunction();
000098 ebfffffe BL PostDisplayFunction
;;;76 Uart_Printf("\nSelect(-1 to exit): ");
00009c e28f0060 ADR r0,|L1.260|
0000a0 ebfffffe BL _printf
;;;77 i = Uart_GetIntNum();
0000a4 ebfffffe BL Uart_GetIntNum
0000a8 e1a04000 MOV r4,r0
;;;78 if(i==-1) break;
0000ac e3740001 CMN r4,#1
0000b0 1a000000 BNE |L1.184|
0000b4 ea000007 B |L1.216|
;;;79
;;;80 if(i>=0 && (i<(sizeof(post_function)/8)) )
|L1.184|
0000b8 e3540000 CMP r4,#0
0000bc ba000004 BLT |L1.212|
0000c0 e354000d CMP r4,#0xd
0000c4 2a000002 BCS |L1.212|
;;;81 ( (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
;;;82 }
|L1.212|
0000d4 eaffffee B |L1.148|
;;;83
;;;84 }
|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 0000023c DCD ||.constdata$1|| + 572
|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
;;;1126 void PostStartProcessing(U32 FrameCnt)
;;;1127 {
00011c e3a01000 MOV r1,#0
;;;1128
;;;1129 postProcessingDone=0;
000120 e59f25a0 LDR r2,|L1.1736|
000124 e5821000 STR r1,[r2,#0] ; postProcessingDone
;;;1130
;;;1131 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]
;;;1132 rADDREnd_Y=ADDREndY[FrameCnt];
000138 e59f1594 LDR r1,|L1.1748|
00013c e7911100 LDR r1,[r1,r0,LSL #2]
000140 e5821030 STR r1,[r2,#0x30]
;;;1133
;;;1134 rADDRStart_Cb=ADDRStartCb[FrameCnt];
000144 e59f158c LDR r1,|L1.1752|
000148 e7911100 LDR r1,[r1,r0,LSL #2]
00014c e5821024 STR r1,[r2,#0x24]
;;;1135 rADDREnd_Cb=ADDREndCb[FrameCnt];
000150 e59f1584 LDR r1,|L1.1756|
000154 e7911100 LDR r1,[r1,r0,LSL #2]
000158 e5821034 STR r1,[r2,#0x34]
;;;1136
;;;1137 rADDRStart_Cr=ADDRStartCr[FrameCnt];
00015c e59f157c LDR r1,|L1.1760|
000160 e7911100 LDR r1,[r1,r0,LSL #2]
000164 e5821028 STR r1,[r2,#0x28]
;;;1138 rADDREnd_Cr=ADDREndCr[FrameCnt];
000168 e59f1574 LDR r1,|L1.1764|
00016c e7911100 LDR r1,[r1,r0,LSL #2]
000170 e5821038 STR r1,[r2,#0x38]
;;;1139
;;;1140 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]
;;;1141 }
000184 e12fff1e BX lr
ENDP
PostIsr PROC
;;;1113 void __irq PostIsr(void)
;;;1114 {
000188 e92d0003 STMFD sp!,{r0,r1}
;;;1115 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]
;;;1116
;;;1117 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]
;;;1118 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]
;;;1119 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]
;;;1120
;;;1121 postProcessingDone=1;
0001d8 e3a00001 MOV r0,#1
0001dc e59f14e4 LDR r1,|L1.1736|
0001e0 e5810000 STR r0,[r1,#0] ; postProcessingDone
;;;1122 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]
;;;1123 }
0001f8 e8bd0003 LDMFD sp!,{r0,r1}
0001fc e25ef004 SUBS pc,lr,#4
ENDP
PostInit PROC
;;;1147 U32 InFrameBuffer,U32 OutFrameBuffer, U32 mode)
;;;1148 {
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]
;;;1149 U32 src420, inrgb, interleave, inrgbformat, inycformat;
;;;1150 U32 outrgb;
;;;1151 U32 H_Shift, V_Shift, PreHorRatio, PreVerRatio;
;;;1152 U32 inmultiplier, outmultiplier;
;;;1153 U32 OffsetY, OffsetC, OffsetRGB;
;;;1154
;;;1155
;;;1156 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|
;;;1157 case POST_IN_YCBYCR420:
;;;1158 src420=1;
|L1.608|
000260 e3a00001 MOV r0,#1
000264 e58d0038 STR r0,[sp,#0x38]
;;;1159 inrgb=0;
000268 e3a01000 MOV r1,#0
00026c e58d1034 STR r1,[sp,#0x34]
;;;1160 interleave=0;
000270 e3a01000 MOV r1,#0
000274 e58d1030 STR r1,[sp,#0x30]
;;;1161 inrgbformat=1;
000278 e3a01001 MOV r1,#1
00027c e58d102c STR r1,[sp,#0x2c]
;;;1162 inycformat=0;
000280 e3a01000 MOV r1,#0
000284 e58d1028 STR r1,[sp,#0x28]
;;;1163 inmultiplier=1;
000288 e3a08001 MOV r8,#1
;;;1164 break;
00028c ea000032 B |L1.860|
;;;1165 case POST_IN_YCBYCR422:
;;;1166 src420=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -