📄 camif.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\camif.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
CameraDisplayFunction PROC
;;;84 void CameraDisplayFunction(void)
;;;85 {
|L1.0|
000000 e92d4010 STMFD sp!,{r4,lr}
;;;86 int i;
;;;87
;;;88 rPRIORITY1=0x2;
000004 e3a00002 MOV r0,#2
000008 e59f1064 LDR r1,|L1.116|
00000c e5810004 STR r0,[r1,#4]
;;;89 i=0;
000010 e3a04000 MOV r4,#0
;;;90 Uart_Printf("\n\n");
000014 e28f005c ADR r0,|L1.120|
000018 ebfffffe BL _printf
;;;91 while(1) { //display menu
00001c e1a00000 NOP
|L1.32|
000020 e1a00000 NOP
;;;92 Uart_Printf("%2d:%s",i,camera_function[i][1]);
000024 e59f0050 LDR r0,|L1.124|
000028 e0800184 ADD r0,r0,r4,LSL #3
00002c e1a01004 MOV r1,r4
000030 e5902004 LDR r2,[r0,#4]
000034 e28f0044 ADR r0,|L1.128|
000038 ebfffffe BL _printf
;;;93 i++;
00003c e2844001 ADD r4,r4,#1
;;;94 if((int)(camera_function[i][0])==0) {
000040 e59f0034 LDR r0,|L1.124|
000044 e7900184 LDR r0,[r0,r4,LSL #3]
000048 e3500000 CMP r0,#0
00004c 1a000002 BNE |L1.92|
;;;95 Uart_Printf("\n");
000050 e28f0030 ADR r0,|L1.136|
000054 ebfffffe BL _printf
;;;96 break;
000058 ea000004 B |L1.112|
;;;97 }
;;;98 if((i%2)==0) Uart_Printf("\n");
|L1.92|
00005c e3140001 TST r4,#1
000060 1a000001 BNE |L1.108|
000064 e28f001c ADR r0,|L1.136|
000068 ebfffffe BL _printf
;;;99 }
|L1.108|
00006c eaffffeb B |L1.32|
;;;100 }
|L1.112|
000070 e8bd8010 LDMFD sp!,{r4,pc}
|L1.116|
000074 40ce0000 DCD 0x40ce0000
|L1.120|
000078 00000a0a DCB "\n\n\0\0"
|L1.124|
00007c 00000000 DCD camera_function
|L1.128|
000080 3a643225 DCB "%2d:"
000084 00007325 DCB "%s\0\0"
|L1.136|
000088 0000000a DCB "\n\0\0\0"
ENDP
CamReset PROC
;;;407 void CamReset()
;;;408 {
00008c e92d4008 STMFD sp!,{r3,lr}
;;;409
;;;410 //rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0x1<<8);
;;;411
;;;412 switch(CAMTYPE) {
000090 e59f0338 LDR r0,|L1.976|
000094 e5900000 LDR r0,[r0,#0] ; CAMTYPE
000098 e3500000 CMP r0,#0
00009c 0a000004 BEQ |L1.180|
0000a0 e3500001 CMP r0,#1
0000a4 0a000003 BEQ |L1.184|
0000a8 e3500003 CMP r0,#3
0000ac 1a00003d BNE |L1.424|
0000b0 ea00001e B |L1.304|
;;;413 case CAM_OV7620:
;;;414 case CAM_OV7620_16:
|L1.180|
0000b4 e1a00000 NOP
;;;415 rCIGCTRL|= (1<<31)|(1<<29); //camera I/F soft reset
|L1.184|
0000b8 e3a00448 MOV r0,#0x48000000
0000bc e5900008 LDR r0,[r0,#8]
0000c0 e38004a0 ORR r0,r0,#0xa0000000
0000c4 e3a01448 MOV r1,#0x48000000
0000c8 e5810008 STR r0,[r1,#8]
;;;416 Delay(1);
0000cc e3a00001 MOV r0,#1
0000d0 ebfffffe BL Delay
;;;417 rCIGCTRL&= ~(1<<31);
0000d4 e3a00448 MOV r0,#0x48000000
0000d8 e5900008 LDR r0,[r0,#8]
0000dc e3c00480 BIC r0,r0,#0x80000000
0000e0 e3a01448 MOV r1,#0x48000000
0000e4 e5810008 STR r0,[r1,#8]
;;;418
;;;419 rCIGCTRL|=(1<<30); //external camera reset assertion (OV7620=high active)
0000e8 e3a00448 MOV r0,#0x48000000
0000ec e5900008 LDR r0,[r0,#8]
0000f0 e3800440 ORR r0,r0,#0x40000000
0000f4 e3a01448 MOV r1,#0x48000000
0000f8 e5810008 STR r0,[r1,#8]
;;;420 Delay(200);
0000fc e3a000c8 MOV r0,#0xc8
000100 ebfffffe BL Delay
;;;421 rCIGCTRL&=~(1<<30); //external camera reset deassertion
000104 e3a00448 MOV r0,#0x48000000
000108 e5900008 LDR r0,[r0,#8]
00010c e3c00440 BIC r0,r0,#0x40000000
000110 e3a01448 MOV r1,#0x48000000
000114 e5810008 STR r0,[r1,#8]
;;;422
;;;423 rCIGCTRL|=(1<<26); // XciPCLK Polarity setting
000118 e3a00448 MOV r0,#0x48000000
00011c e5900008 LDR r0,[r0,#8]
000120 e3800640 ORR r0,r0,#0x4000000
000124 e3a01448 MOV r1,#0x48000000
000128 e5810008 STR r0,[r1,#8]
;;;424 break;
00012c ea00001e B |L1.428|
;;;425 case CAM_S5X532:
;;;426 rCIGCTRL|= (1<<31)|(1<<30)|(1<<29); //camera I/F soft reset
|L1.304|
000130 e3a00448 MOV r0,#0x48000000
000134 e5900008 LDR r0,[r0,#8]
000138 e38004e0 ORR r0,r0,#0xe0000000
00013c e3a01448 MOV r1,#0x48000000
000140 e5810008 STR r0,[r1,#8]
;;;427 Delay(1);
000144 e3a00001 MOV r0,#1
000148 ebfffffe BL Delay
;;;428 rCIGCTRL&= ~(1<<31);
00014c e3a00448 MOV r0,#0x48000000
000150 e5900008 LDR r0,[r0,#8]
000154 e3c00480 BIC r0,r0,#0x80000000
000158 e3a01448 MOV r1,#0x48000000
00015c e5810008 STR r0,[r1,#8]
;;;429
;;;430 rCIGCTRL&=~(1<<30); //external camera reset assertion (S5X433,AU70H=low active)
000160 e3a00448 MOV r0,#0x48000000
000164 e5900008 LDR r0,[r0,#8]
000168 e3c00440 BIC r0,r0,#0x40000000
00016c e3a01448 MOV r1,#0x48000000
000170 e5810008 STR r0,[r1,#8]
;;;431 Delay(1000);
000174 e3a00ffa MOV r0,#0x3e8
000178 ebfffffe BL Delay
;;;432 rCIGCTRL|=(1<<30); //external camera reset deassertion
00017c e3a00448 MOV r0,#0x48000000
000180 e5900008 LDR r0,[r0,#8]
000184 e3800440 ORR r0,r0,#0x40000000
000188 e3a01448 MOV r1,#0x48000000
00018c e5810008 STR r0,[r1,#8]
;;;433
;;;434 rCIGCTRL|=(1<<26); // XciPCLK Polarity setting
000190 e3a00448 MOV r0,#0x48000000
000194 e5900008 LDR r0,[r0,#8]
000198 e3800640 ORR r0,r0,#0x4000000
00019c e3a01448 MOV r1,#0x48000000
0001a0 e5810008 STR r0,[r1,#8]
;;;435 break;
0001a4 ea000000 B |L1.428|
;;;436 default:
;;;437 break;
|L1.424|
0001a8 e1a00000 NOP
;;;438 }
;;;439
;;;440 }
|L1.428|
0001ac e8bd8008 LDMFD sp!,{r3,pc}
ENDP
Ch21_CAMERA PROC
;;;102 void Ch21_CAMERA(void)
;;;103 {
0001b0 e92d4010 STMFD sp!,{r4,lr}
;;;104 int i;
;;;105
;;;106 Uart_Printf("\n----Test of Camera Interface----\n");
0001b4 e28f0f86 ADR r0,|L1.980|
0001b8 ebfffffe BL _printf
;;;107
;;;108 //LCD Initializtion
;;;109
;;;110 camCodecOutput=CAM_CCIR420;
0001bc e3a00000 MOV r0,#0
0001c0 e59f1230 LDR r1,|L1.1016|
0001c4 e5810000 STR r0,[r1,#0] ; camCodecOutput
;;;111 camCodecInput=CAM_CCIR420;
0001c8 e3a00000 MOV r0,#0
0001cc e59f1228 LDR r1,|L1.1020|
0001d0 e5810000 STR r0,[r1,#0] ; camCodecInput
;;;112 camPviewOutput=CAM_RGB16B;
0001d4 e3a00000 MOV r0,#0
0001d8 e59f1220 LDR r1,|L1.1024|
0001dc e5810000 STR r0,[r1,#0] ; camPviewOutput
;;;113
;;;114 Uart_Printf("Select camera type\n");
0001e0 e28f0f87 ADR r0,|L1.1028|
0001e4 ebfffffe BL _printf
;;;115 Uart_Printf("0:S5X532, 1:OV7620 8bit, 2:OV7620 16bit\n");
0001e8 e28f0f8a ADR r0,|L1.1048|
0001ec ebfffffe BL _printf
;;;116 Uart_Printf("Choose one:");
0001f0 e28f0f93 ADR r0,|L1.1092|
0001f4 ebfffffe BL _printf
;;;117 i=Uart_GetIntNum();
0001f8 ebfffffe BL Uart_GetIntNum
0001fc e1a04000 MOV r4,r0
;;;118 switch(i) {
000200 e3540000 CMP r4,#0
000204 0a000004 BEQ |L1.540|
000208 e3540001 CMP r4,#1
00020c 0a000009 BEQ |L1.568|
000210 e3540002 CMP r4,#2
000214 1a000015 BNE |L1.624|
000218 ea00000d B |L1.596|
;;;119 case 0:
;;;120 CAMTYPE=CAM_S5X532;
|L1.540|
00021c e3a00003 MOV r0,#3
000220 e59f11a8 LDR r1,|L1.976|
000224 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;121 CAMIICID=0x5a;
000228 e3a0005a MOV r0,#0x5a
00022c e59f121c LDR r1,|L1.1104|
000230 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;122 break;
000234 ea000014 B |L1.652|
;;;123 case 1:
;;;124 CAMTYPE=CAM_OV7620;
|L1.568|
000238 e3a00000 MOV r0,#0
00023c e59f118c LDR r1,|L1.976|
000240 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;125 CAMIICID=0x42;
000244 e3a00042 MOV r0,#0x42
000248 e59f1200 LDR r1,|L1.1104|
00024c e5810000 STR r0,[r1,#0] ; CAMIICID
;;;126 break;
000250 ea00000d B |L1.652|
;;;127 case 2:
;;;128 CAMTYPE=CAM_OV7620_16;
|L1.596|
000254 e3a00001 MOV r0,#1
000258 e59f1170 LDR r1,|L1.976|
00025c e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;129 CAMIICID=0x42;
000260 e3a00042 MOV r0,#0x42
000264 e59f11e4 LDR r1,|L1.1104|
000268 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;130 break;
00026c ea000006 B |L1.652|
;;;131 default:
;;;132 CAMTYPE=CAM_S5X532;
|L1.624|
000270 e3a00003 MOV r0,#3
000274 e59f1154 LDR r1,|L1.976|
000278 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;133 CAMIICID=0x5a;
00027c e3a0005a MOV r0,#0x5a
000280 e59f11c8 LDR r1,|L1.1104|
000284 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;134 break;
000288 e1a00000 NOP
;;;135 }
;;;136
;;;137 Uart_Printf("Select camera size\n");
|L1.652|
00028c e28f0f70 ADR r0,|L1.1108|
000290 ebfffffe BL _printf
;;;138 Uart_Printf("0:VGA, 1:1 Mega, 2:2 Mega\n");
000294 e28f0f73 ADR r0,|L1.1128|
000298 ebfffffe BL _printf
;;;139 Uart_Printf("Choose one:");
00029c e28f0f68 ADR r0,|L1.1092|
0002a0 ebfffffe BL _printf
;;;140 i=Uart_GetIntNum();
0002a4 ebfffffe BL Uart_GetIntNum
0002a8 e1a04000 MOV r4,r0
;;;141 switch(i) {
0002ac e3540000 CMP r4,#0
0002b0 0a000004 BEQ |L1.712|
0002b4 e3540001 CMP r4,#1
0002b8 0a000006 BEQ |L1.728|
0002bc e3540002 CMP r4,#2
0002c0 1a00000c BNE |L1.760|
0002c4 ea000007 B |L1.744|
;;;142 case 0:
;;;143 CAMSIZE=VGA_XSIZE;
|L1.712|
0002c8 e3a00fa0 MOV r0,#0x280
0002cc e59f11b8 LDR r1,|L1.1164|
0002d0 e5810000 STR r0,[r1,#0] ; CAMSIZE
;;;144 break;
0002d4 ea00000b B |L1.776|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -