📄 mobile_demo.txt
字号:
00060c e2600fa0 RSB r0,r0,#0x280
000610 e3a0c028 MOV r12,#0x28
000614 e08c00a0 ADD r0,r12,r0,LSR #1
000618 e88d000f STMIA sp,{r0-r3}
00061c e3a03f48 MOV r3,#0x120
000620 e3a02f58 MOV r2,#0x160
000624 e59f00e8 LDR r0,|L1.1812|
000628 e5901000 LDR r1,[r0,#0] ; FimvImageHeight
00062c e59f00e4 LDR r0,|L1.1816|
000630 e5900000 LDR r0,[r0,#0] ; FimvImageWidth
000634 ebfffffe BL CamInit
;;;558 (CAM_SRC_VSIZE-FimvImageHeight)/2+8, 0x11000000, LCDFRAMEBUFFERFG2);
;;;559
;;;560 rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(2<<8);//24Mhz, updated at 2004.02.13 by ows
000638 e3a00440 MOV r0,#0x40000000
00063c e5900028 LDR r0,[r0,#0x28]
000640 e3c00ef0 BIC r0,r0,#0xf00
000644 e3800f80 ORR r0,r0,#0x200
000648 e3a01440 MOV r1,#0x40000000
00064c e5810028 STR r0,[r1,#0x28]
;;;561
;;;562 //CamInit(FIMV_IMAGE_WIDTH, FIMV_IMAGE_HEIGHT, 352, 288, 0,0, 0x11000000, LCDFRAMEBUFFERBG1);
;;;563 mpegframebuffer = 0x13600000;
000650 e59f011c LDR r0,|L1.1908|
000654 e59f111c LDR r1,|L1.1912|
000658 e5810000 STR r0,[r1,#0] ; mpegframebuffer
;;;564 PostSetFimv16B(FimvImageWidth,FimvImageHeight,240,320, refImage[0].frameStartAddr,mpegframebuffer);
00065c e59f0114 LDR r0,|L1.1912|
000660 e5903000 LDR r3,[r0,#0] ; mpegframebuffer
000664 e59f00e8 LDR r0,|L1.1876|
000668 e5902000 LDR r2,[r0,#0] ; refImage
00066c e88d000c STMIA sp,{r2,r3}
000670 e3a03f50 MOV r3,#0x140
000674 e3a020f0 MOV r2,#0xf0
000678 e59f0094 LDR r0,|L1.1812|
00067c e5901000 LDR r1,[r0,#0] ; FimvImageHeight
000680 e59f0090 LDR r0,|L1.1816|
000684 e5900000 LDR r0,[r0,#0] ; FimvImageWidth
000688 ebfffffe BL PostSetFimv16B
;;;565 LcdBGInit(MODE_PAR_16BIT565_240320|MODE_MPEG_DISPLAY_16B);
00068c e59f00e8 LDR r0,|L1.1916|
000690 ebfffffe BL LcdBGInit
;;;566
;;;567
;;;568
;;;569 VlcConfig4Dctq(FimvImageWidth,0x12900000,(FimvImageWidth/16)*(FimvImageHeight/16),0);
000694 e59f007c LDR r0,|L1.1816|
000698 e5900000 LDR r0,[r0,#0] ; FimvImageWidth
00069c e1a00220 MOV r0,r0,LSR #4
0006a0 e59f106c LDR r1,|L1.1812|
0006a4 e5911000 LDR r1,[r1,#0] ; FimvImageHeight
0006a8 e1a01221 MOV r1,r1,LSR #4
0006ac e0020091 MUL r2,r1,r0
0006b0 e3a03000 MOV r3,#0
0006b4 e59f10c4 LDR r1,|L1.1920|
0006b8 e59f0058 LDR r0,|L1.1816|
0006bc e5900000 LDR r0,[r0,#0] ; FimvImageWidth
0006c0 ebfffffe BL VlcConfig4Dctq
;;;570
;;;571 freeBufStartAddr = freeBufStartAddr + (1152/16)*(864/16)*4;
0006c4 e59d0014 LDR r0,[sp,#0x14]
0006c8 e2800df3 ADD r0,r0,#0x3cc0
0006cc e58d0014 STR r0,[sp,#0x14]
;;;572
;;;573
;;;574 if(freeBufStartAddr >= 0x12900000) printf("Memory allocaton Over : %08x\n",freeBufStartAddr);
0006d0 e59d0014 LDR r0,[sp,#0x14]
0006d4 e290c4f0 ADDS r12,r0,#0xf0000000
0006d8 225cc7a4 SUBCSS r12,r12,#0x2900000
0006dc 3a000030 BCC |L1.1956|
0006e0 e28f009c ADR r0,|L1.1924|
0006e4 e59d1014 LDR r1,[sp,#0x14]
0006e8 ebfffffe BL _printf
0006ec ea00002f B |L1.1968|
|L1.1776|
0006f0 00000008 DCD ||.bss$2|| + 8
|L1.1780|
0006f4 00000004 DCD ||.bss$2|| + 4
|L1.1784|
0006f8 00000000 DCD ||.bss$2||
|L1.1788|
0006fc 00000000 DCD demo_DctqIsr
|L1.1792|
000700 13fff000 DCD 0x13fff000
|L1.1796|
000704 00000000 DCD demo_MeIsr
|L1.1800|
000708 00000000 DCD demo_McIsr
|L1.1804|
00070c 00000000 DCD demo_VlxIsr
|L1.1808|
000710 00000000 DCD demo_PostIsr
|L1.1812|
000714 00007d9c DCD ||.bss$2|| + 32156
|L1.1816|
000718 00007d98 DCD ||.bss$2|| + 32152
|L1.1820|
00071c 3d207720 DCB " w ="
000720 2c642520 DCB " %d,"
000724 253d6820 DCB " h=%"
000728 00000a64 DCB "d\n\0\0"
|L1.1836|
00072c 00000074 DCD ||.bss$2|| + 116
|L1.1840|
000730 00000090 DCD ||.bss$2|| + 144
|L1.1844|
000734 000000ac DCD ||.bss$2|| + 172
|L1.1848|
000738 000000c8 DCD ||.bss$2|| + 200
|L1.1852|
00073c 66657220 DCB " ref"
000740 64646120 DCB " add"
000744 255b2072 DCB "r [%"
000748 203d5d64 DCB "d]= "
00074c 78383025 DCB "%08x"
000750 0000000a DCB "\n\0\0\0"
|L1.1876|
000754 000000e4 DCD ||.bss$2|| + 228
|L1.1880|
000758 00000154 DCD ||.bss$2|| + 340
|L1.1884|
00075c 6120564d DCB "MV a"
000760 3a726464 DCB "ddr:"
000764 78255b20 DCB " [%x"
000768 0000002c DCB ",\0\0\0"
|L1.1900|
00076c 00007d84 DCD ||.bss$2|| + 32132
|L1.1904|
000770 00007d94 DCD ||.bss$2|| + 32148
|L1.1908|
000774 13600000 DCD 0x13600000
|L1.1912|
000778 00000000 DCD mpegframebuffer
|L1.1916|
00077c 00002245 DCD 0x00002245
|L1.1920|
000780 12900000 DCD 0x12900000
|L1.1924|
000784 6f6d654d DCB "Memo"
000788 61207972 DCB "ry a"
00078c 636f6c6c DCB "lloc"
000790 6e6f7461 DCB "aton"
000794 65764f20 DCB " Ove"
000798 203a2072 DCB "r : "
00079c 78383025 DCB "%08x"
0007a0 0000000a DCB "\n\0\0\0"
;;;575 else printf("Ok,memory allocation : %08x\n",freeBufStartAddr);
|L1.1956|
0007a4 e28f000c ADR r0,|L1.1976|
0007a8 e59d1014 LDR r1,[sp,#0x14]
0007ac ebfffffe BL _printf
;;;576
;;;577
;;;578 }
|L1.1968|
0007b0 e28dd018 ADD sp,sp,#0x18
0007b4 e8bd8010 LDMFD sp!,{r4,pc}
|L1.1976|
0007b8 6d2c6b4f DCB "Ok,m"
0007bc 726f6d65 DCB "emor"
0007c0 6c612079 DCB "y al"
0007c4 61636f6c DCB "loca"
0007c8 6e6f6974 DCB "tion"
0007cc 25203a20 DCB " : %"
0007d0 0a783830 DCB "08x\n"
0007d4 00000000 DCB "\0\0\0\0"
ENDP
Cam_Demo_PostIsr PROC
;;;1123 void __irq Cam_Demo_PostIsr(void)
;;;1124 {
0007d8 e92d0007 STMFD sp!,{r0-r2}
;;;1125
;;;1126 U32 optime;
;;;1127
;;;1128 U32 post_flag;
;;;1129
;;;1130 rINTMSK |= BIT_LCD_POST;
0007dc e51f1600 LDR r1,|L1.484|
0007e0 e5911008 LDR r1,[r1,#8]
0007e4 e3811c40 ORR r1,r1,#0x4000
0007e8 e51f260c LDR r2,|L1.484|
0007ec e5821008 STR r1,[r2,#8]
;;;1131 rINTSUBMSK=BIT_SUB_DISP_FIFO|BIT_SUB_DISP_FRAME|BIT_SUB_POST;
0007f0 e3a01946 MOV r1,#0x118000
0007f4 e1c22001 BIC r2,r2,r1
0007f8 e582101c STR r1,[r2,#0x1c]
;;;1132
;;;1133 rMODE &= ~(1<<6);//Clear Source in POST Processor
0007fc e282169f ADD r1,r2,#0x9f00000
000800 e5911000 LDR r1,[r1,#0]
000804 e3c11040 BIC r1,r1,#0x40
000808 e282269f ADD r2,r2,#0x9f00000
00080c e5821000 STR r1,[r2,#0]
;;;1134 rSUBSRCPND=BIT_SUB_POST; //Clear SUB Interrupt Source Pending.
000810 e3a01c80 MOV r1,#0x8000
000814 e242269f SUB r2,r2,#0x9f00000
000818 e5821018 STR r1,[r2,#0x18]
;;;1135 ClearPending(BIT_LCD_POST);//Clear Source Pending, Interrupt Pending
00081c e3a01c40 MOV r1,#0x4000
000820 e1c22001 BIC r2,r2,r1
000824 e5821000 STR r1,[r2,#0]
000828 e1c21001 BIC r1,r2,r1
00082c e5911010 LDR r1,[r1,#0x10]
000830 e5821010 STR r1,[r2,#0x10]
000834 e1a01002 MOV r1,r2
000838 e5911010 LDR r1,[r1,#0x10]
;;;1136
;;;1137 fpsNum++;
00083c e59f11e4 LDR r1,|L1.2600|
000840 e5911000 LDR r1,[r1,#0] ; fpsNum
000844 e2811001 ADD r1,r1,#1
000848 e59f21d8 LDR r2,|L1.2600|
00084c e5821000 STR r1,[r2,#0] ; fpsNum
;;;1138
;;;1139 post_flag = _POSTLCD_FLAG;
000850 e59f11d4 LDR r1,|L1.2604|
000854 e5911000 LDR r1,[r1,#0] ; _POSTLCD_FLAG
000858 e1a00001 MOV r0,r1
;;;1140
;;;1141 switch(post_flag){
00085c e3500010 CMP r0,#0x10
000860 0a000006 BEQ |L1.2176|
000864 e3500020 CMP r0,#0x20
000868 0a000008 BEQ |L1.2192|
00086c e3500030 CMP r0,#0x30
000870 0a00000a BEQ |L1.2208|
000874 e3500040 CMP r0,#0x40
000878 1a000013 BNE |L1.2252|
00087c ea00000b B |L1.2224|
;;;1142 case 0x00000010:
;;;1143 _POSTLCD_FLAG = 0x00000011;
|L1.2176|
000880 e3a01011 MOV r1,#0x11
000884 e59f21a0 LDR r2,|L1.2604|
000888 e5821000 STR r1,[r2,#0] ; _POSTLCD_FLAG
;;;1144 break;
00088c ea00000e B |L1.2252|
;;;1145 case 0x00000020:
;;;1146 _POSTLCD_FLAG = 0x00000021;
|L1.2192|
000890 e3a01021 MOV r1,#0x21
000894 e59f2190 LDR r2,|L1.2604|
000898 e5821000 STR r1,[r2,#0] ; _POSTLCD_FLAG
;;;1147 break;
00089c ea00000a B |L1.2252|
;;;1148 case 0x00000030:
;;;1149 _POSTLCD_FLAG = 0x00000031;
|L1.2208|
0008a0 e3a01031 MOV r1,#0x31
0008a4 e59f2180 LDR r2,|L1.2604|
0008a8 e5821000 STR r1,[r2,#0] ; _POSTLCD_FLAG
;;;1150 break;
0008ac ea000006 B |L1.2252|
;;;1151 case 0x00000040:
;;;1152 _POSTLCD_FLAG = 0x00000000;
|L1.2224|
0008b0 e3a01000 MOV r1,#0
0008b4 e59f2170 LDR r2,|L1.2604|
0008b8 e5821000 STR r1,[r2,#0] ; _POSTLCD_FLAG
;;;1153 _DCTQ_FLAG = 0x00000000;
0008bc e3a01000 MOV r1,#0
0008c0 e59f2168 LDR r2,|L1.2608|
0008c4 e5821000 STR r1,[r2,#0] ; _DCTQ_FLAG
;;;1154 break;
0008c8 e1a00000 NOP
;;;1155 }
;;;1156
;;;1157 rINTSUBMSK &= ~(BIT_SUB_POST); // SUB-INT POST Enable
|L1.2252|
0008cc e51f16f0 LDR r1,|L1.484|
0008d0 e591101c LDR r1,[r1,#0x1c]
0008d4 e3c11c80 BIC r1,r1,#0x8000
0008d8 e51f26fc LDR r2,|L1.484|
0008dc e582101c STR r1,[r2,#0x1c]
;;;1158 rINTMSK &= ~(BIT_LCD_POST); // INT_POST_LCD Enable
0008e0 e1a01002 MOV r1,r2
0008e4 e5911008 LDR r1,[r1,#8]
0008e8 e3c11c40 BIC r1,r1,#0x4000
0008ec e5821008 STR r1,[r2,#8]
;;;1159
;;;1160 //if( framecnt == 10){
;;;1161 // optime=Timer_Stop();
;;;1162 // printf("%d fps = %d\n",optime,(1000000*framecnt)/(optime*64));
;;;1163 // framecnt = 0;
;;;1164 //}
;;;1165
;;;1166
;;;1167
;;;1168
;;;1169 //Uart_Printf("{P}\n");
;;;1170 }
0008f0 e8bd0007 LDMFD sp!,{r0-r2}
0008f4 e25ef004 SUBS pc,lr,#4
ENDP
Cam_Demo_Cam_CodecIsr PROC
;;;1066 void __irq Cam_Demo_Cam_CodecIsr(void)
;;;1067 {
0008f8 e92d501f STMFD sp!,{r0-r4,r12,lr}
0008fc e24dd004 SUB sp,sp,#4
;;;1068 U32 camif_flag;
;;;1069 U32 optime;
;;;1070 U32 completedFrameIndex;
;;;1071
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -