📄 camif.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; 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
;;;414 void CamReset()
;;;415 {
00008c e92d4008 STMFD sp!,{r3,lr}
;;;416
;;;417 //rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0x1<<8);
;;;418
;;;419 switch(CAMTYPE) {
000090 e59f0380 LDR r0,|L1.1048|
000094 e5900000 LDR r0,[r0,#0] ; CAMTYPE
000098 e3500000 CMP r0,#0
00009c 0a000006 BEQ |L1.188|
0000a0 e3500001 CMP r0,#1
0000a4 0a000005 BEQ |L1.192|
0000a8 e3500003 CMP r0,#3
0000ac 0a000021 BEQ |L1.312|
0000b0 e3500004 CMP r0,#4
0000b4 1a00003e BNE |L1.436|
0000b8 ea00001f B |L1.316|
;;;420 case CAM_OV7620:
;;;421 case CAM_OV7620_16:
|L1.188|
0000bc e1a00000 NOP
;;;422 rCIGCTRL|= (1<<31)|(1<<29); //camera I/F soft reset
|L1.192|
0000c0 e3a00448 MOV r0,#0x48000000
0000c4 e5900008 LDR r0,[r0,#8]
0000c8 e38004a0 ORR r0,r0,#0xa0000000
0000cc e3a01448 MOV r1,#0x48000000
0000d0 e5810008 STR r0,[r1,#8]
;;;423 Delay(1);
0000d4 e3a00001 MOV r0,#1
0000d8 ebfffffe BL Delay
;;;424 rCIGCTRL&= ~(1<<31);
0000dc e3a00448 MOV r0,#0x48000000
0000e0 e5900008 LDR r0,[r0,#8]
0000e4 e3c00480 BIC r0,r0,#0x80000000
0000e8 e3a01448 MOV r1,#0x48000000
0000ec e5810008 STR r0,[r1,#8]
;;;425
;;;426 rCIGCTRL|=(1<<30); //external camera reset assertion (OV7620=high active)
0000f0 e3a00448 MOV r0,#0x48000000
0000f4 e5900008 LDR r0,[r0,#8]
0000f8 e3800440 ORR r0,r0,#0x40000000
0000fc e3a01448 MOV r1,#0x48000000
000100 e5810008 STR r0,[r1,#8]
;;;427 Delay(200);
000104 e3a000c8 MOV r0,#0xc8
000108 ebfffffe BL Delay
;;;428 rCIGCTRL&=~(1<<30); //external camera reset deassertion
00010c e3a00448 MOV r0,#0x48000000
000110 e5900008 LDR r0,[r0,#8]
000114 e3c00440 BIC r0,r0,#0x40000000
000118 e3a01448 MOV r1,#0x48000000
00011c e5810008 STR r0,[r1,#8]
;;;429
;;;430 rCIGCTRL|=(1<<26); // XciPCLK Polarity setting
000120 e3a00448 MOV r0,#0x48000000
000124 e5900008 LDR r0,[r0,#8]
000128 e3800640 ORR r0,r0,#0x4000000
00012c e3a01448 MOV r1,#0x48000000
000130 e5810008 STR r0,[r1,#8]
;;;431 break;
000134 ea00001f B |L1.440|
;;;432 case CAM_S5X532:
;;;433 case CAM_S5K3BAFX:
|L1.312|
000138 e1a00000 NOP
;;;434 rCIGCTRL|= (1<<31)|(1<<30)|(1<<29); //camera I/F soft reset
|L1.316|
00013c e3a00448 MOV r0,#0x48000000
000140 e5900008 LDR r0,[r0,#8]
000144 e38004e0 ORR r0,r0,#0xe0000000
000148 e3a01448 MOV r1,#0x48000000
00014c e5810008 STR r0,[r1,#8]
;;;435 Delay(1);
000150 e3a00001 MOV r0,#1
000154 ebfffffe BL Delay
;;;436 rCIGCTRL&= ~(1<<31);
000158 e3a00448 MOV r0,#0x48000000
00015c e5900008 LDR r0,[r0,#8]
000160 e3c00480 BIC r0,r0,#0x80000000
000164 e3a01448 MOV r1,#0x48000000
000168 e5810008 STR r0,[r1,#8]
;;;437
;;;438 rCIGCTRL&=~(1<<30); //external camera reset assertion (S5X433,AU70H=low active)
00016c e3a00448 MOV r0,#0x48000000
000170 e5900008 LDR r0,[r0,#8]
000174 e3c00440 BIC r0,r0,#0x40000000
000178 e3a01448 MOV r1,#0x48000000
00017c e5810008 STR r0,[r1,#8]
;;;439 Delay(1000);
000180 e3a00ffa MOV r0,#0x3e8
000184 ebfffffe BL Delay
;;;440 rCIGCTRL|=(1<<30); //external camera reset deassertion
000188 e3a00448 MOV r0,#0x48000000
00018c e5900008 LDR r0,[r0,#8]
000190 e3800440 ORR r0,r0,#0x40000000
000194 e3a01448 MOV r1,#0x48000000
000198 e5810008 STR r0,[r1,#8]
;;;441
;;;442 rCIGCTRL|=(1<<26); // XciPCLK Polarity setting
00019c e3a00448 MOV r0,#0x48000000
0001a0 e5900008 LDR r0,[r0,#8]
0001a4 e3800640 ORR r0,r0,#0x4000000
0001a8 e3a01448 MOV r1,#0x48000000
0001ac e5810008 STR r0,[r1,#8]
;;;443 break;
0001b0 ea000000 B |L1.440|
;;;444 default:
;;;445 break;
|L1.436|
0001b4 e1a00000 NOP
;;;446 }
;;;447
;;;448 }
|L1.440|
0001b8 e8bd8008 LDMFD sp!,{r3,pc}
ENDP
Ch21_CAMERA PROC
;;;102 void Ch21_CAMERA(void)
;;;103 {
0001bc e92d4010 STMFD sp!,{r4,lr}
;;;104 int i;
;;;105
;;;106 Uart_Printf("\n----Test of Camera Interface----\n");
0001c0 e28f0f95 ADR r0,|L1.1052|
0001c4 ebfffffe BL _printf
;;;107
;;;108 //LCD Initializtion
;;;109
;;;110 camCodecOutput=CAM_CCIR420;
0001c8 e3a00000 MOV r0,#0
0001cc e59f126c LDR r1,|L1.1088|
0001d0 e5810000 STR r0,[r1,#0] ; camCodecOutput
;;;111 camCodecInput=CAM_CCIR420;
0001d4 e3a00000 MOV r0,#0
0001d8 e59f1264 LDR r1,|L1.1092|
0001dc e5810000 STR r0,[r1,#0] ; camCodecInput
;;;112 camPviewOutput=CAM_RGB16B;
0001e0 e3a00000 MOV r0,#0
0001e4 e59f125c LDR r1,|L1.1096|
0001e8 e5810000 STR r0,[r1,#0] ; camPviewOutput
;;;113
;;;114 Uart_Printf("Select camera type\n");
0001ec e28f0f96 ADR r0,|L1.1100|
0001f0 ebfffffe BL _printf
;;;115 Uart_Printf("0:S5X532, 1:OV7620 8bit, 2:OV7620 16bit, 3:S5K3BAFX\n");
0001f4 e28f0f99 ADR r0,|L1.1120|
0001f8 ebfffffe BL _printf
;;;116 Uart_Printf("Choose one:");
0001fc e28f0fa5 ADR r0,|L1.1176|
000200 ebfffffe BL _printf
;;;117 i=Uart_GetIntNum();
000204 ebfffffe BL Uart_GetIntNum
000208 e1a04000 MOV r4,r0
;;;118 switch(i) {
00020c e3540000 CMP r4,#0
000210 0a000006 BEQ |L1.560|
000214 e3540001 CMP r4,#1
000218 0a00000b BEQ |L1.588|
00021c e3540002 CMP r4,#2
000220 0a000010 BEQ |L1.616|
000224 e3540003 CMP r4,#3
000228 1a00001c BNE |L1.672|
00022c ea000014 B |L1.644|
;;;119 case 0:
;;;120 CAMTYPE=CAM_S5X532;
|L1.560|
000230 e3a00003 MOV r0,#3
000234 e59f11dc LDR r1,|L1.1048|
000238 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;121 CAMIICID=0x5a;
00023c e3a0005a MOV r0,#0x5a
000240 e59f125c LDR r1,|L1.1188|
000244 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;122 break;
000248 ea00001b B |L1.700|
;;;123 case 1:
;;;124 CAMTYPE=CAM_OV7620;
|L1.588|
00024c e3a00000 MOV r0,#0
000250 e59f11c0 LDR r1,|L1.1048|
000254 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;125 CAMIICID=0x42;
000258 e3a00042 MOV r0,#0x42
00025c e59f1240 LDR r1,|L1.1188|
000260 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;126 break;
000264 ea000014 B |L1.700|
;;;127 case 2:
;;;128 CAMTYPE=CAM_OV7620_16;
|L1.616|
000268 e3a00001 MOV r0,#1
00026c e59f11a4 LDR r1,|L1.1048|
000270 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;129 CAMIICID=0x42;
000274 e3a00042 MOV r0,#0x42
000278 e59f1224 LDR r1,|L1.1188|
00027c e5810000 STR r0,[r1,#0] ; CAMIICID
;;;130 break;
000280 ea00000d B |L1.700|
;;;131 case 3:
;;;132 CAMTYPE=CAM_S5K3BAFX;
|L1.644|
000284 e3a00004 MOV r0,#4
000288 e59f1188 LDR r1,|L1.1048|
00028c e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;133 CAMIICID=0x5a;
000290 e3a0005a MOV r0,#0x5a
000294 e59f1208 LDR r1,|L1.1188|
000298 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;134 break;
00029c ea000006 B |L1.700|
;;;135 default:
;;;136 CAMTYPE=CAM_S5X532;
|L1.672|
0002a0 e3a00003 MOV r0,#3
0002a4 e59f116c LDR r1,|L1.1048|
0002a8 e5810000 STR r0,[r1,#0] ; CAMTYPE
;;;137 CAMIICID=0x5a;
0002ac e3a0005a MOV r0,#0x5a
0002b0 e59f11ec LDR r1,|L1.1188|
0002b4 e5810000 STR r0,[r1,#0] ; CAMIICID
;;;138 break;
0002b8 e1a00000 NOP
;;;139 }
;;;140
;;;141 Uart_Printf("Select camera size\n");
|L1.700|
0002bc e28f0f79 ADR r0,|L1.1192|
0002c0 ebfffffe BL _printf
;;;142 Uart_Printf("0:VGA, 1:SVGA 2:1-Mega, 3:2-Mega\n");
0002c4 e28f0f7c ADR r0,|L1.1212|
0002c8 ebfffffe BL _printf
;;;143 Uart_Printf("Choose one:");
0002cc e28f0f71 ADR r0,|L1.1176|
0002d0 ebfffffe BL _printf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -