⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camif.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000658  e3800e90          ORR      r0,r0,#0x900
00065c  e3a01440          MOV      r1,#0x40000000
000660  e5810028          STR      r0,[r1,#0x28]
;;;199    			break;
000664  ea000029          B        |L1.1808|
;;;200    		case 8:
;;;201    			rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0xa<<8);
                  |L1.1640|
000668  e3a00440          MOV      r0,#0x40000000
00066c  e5900028          LDR      r0,[r0,#0x28]
000670  e3c00ef0          BIC      r0,r0,#0xf00
000674  e3800ea0          ORR      r0,r0,#0xa00
000678  e3a01440          MOV      r1,#0x40000000
00067c  e5810028          STR      r0,[r1,#0x28]
;;;202    			break;
000680  ea000022          B        |L1.1808|
;;;203    		case 9:
;;;204    			rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0xb<<8);			
                  |L1.1668|
000684  e3a00440          MOV      r0,#0x40000000
000688  e5900028          LDR      r0,[r0,#0x28]
00068c  e3c00ef0          BIC      r0,r0,#0xf00
000690  e3800eb0          ORR      r0,r0,#0xb00
000694  e3a01440          MOV      r1,#0x40000000
000698  e5810028          STR      r0,[r1,#0x28]
;;;205    			break;
00069c  ea00001b          B        |L1.1808|
;;;206    		case 10:
;;;207    			rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0xc<<8);
                  |L1.1696|
0006a0  e3a00440          MOV      r0,#0x40000000
0006a4  e5900028          LDR      r0,[r0,#0x28]
0006a8  e3c00ef0          BIC      r0,r0,#0xf00
0006ac  e3800ec0          ORR      r0,r0,#0xc00
0006b0  e3a01440          MOV      r1,#0x40000000
0006b4  e5810028          STR      r0,[r1,#0x28]
;;;208    			break;			
0006b8  ea000014          B        |L1.1808|
;;;209    		case 11:
;;;210    			rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0xd<<8);
                  |L1.1724|
0006bc  e3a00440          MOV      r0,#0x40000000
0006c0  e5900028          LDR      r0,[r0,#0x28]
0006c4  e3c00ef0          BIC      r0,r0,#0xf00
0006c8  e3800ed0          ORR      r0,r0,#0xd00
0006cc  e3a01440          MOV      r1,#0x40000000
0006d0  e5810028          STR      r0,[r1,#0x28]
;;;211    			break;
0006d4  ea00000d          B        |L1.1808|
;;;212    		case 12:
;;;213    			rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0xe<<8);
                  |L1.1752|
0006d8  e3a00440          MOV      r0,#0x40000000
0006dc  e5900028          LDR      r0,[r0,#0x28]
0006e0  e3c00ef0          BIC      r0,r0,#0xf00
0006e4  e3800ee0          ORR      r0,r0,#0xe00
0006e8  e3a01440          MOV      r1,#0x40000000
0006ec  e5810028          STR      r0,[r1,#0x28]
;;;214    			break;
0006f0  ea000006          B        |L1.1808|
;;;215    		case 13:
;;;216    			rCLKDIVN=(rCLKDIVN&~(0xf<<8))|(0xf<<8); 		
                  |L1.1780|
0006f4  e3a00440          MOV      r0,#0x40000000
0006f8  e5900028          LDR      r0,[r0,#0x28]
0006fc  e3800ef0          ORR      r0,r0,#0xf00
000700  e3a01440          MOV      r1,#0x40000000
000704  e5810028          STR      r0,[r1,#0x28]
;;;217    			break;
000708  ea000000          B        |L1.1808|
;;;218    		default:
;;;219    			break;
                  |L1.1804|
00070c  e1a00000          NOP      
;;;220    	}
;;;221    	
;;;222    	CamReset();		
                  |L1.1808|
000710  ebfffffe          BL       CamReset
;;;223    	CameraModuleSetting();
000714  ebfffffe          BL       CameraModuleSetting
;;;224    	Delay(10);
000718  e3a0000a          MOV      r0,#0xa
00071c  ebfffffe          BL       Delay
;;;225    			
;;;226    	while(1) {
000720  e1a00000          NOP      
                  |L1.1828|
000724  e1a00000          NOP      
;;;227    		CameraDisplayFunction();
000728  ebfffffe          BL       CameraDisplayFunction
;;;228    		Uart_Printf("\nSelect(-1 to exit): ");
00072c  e28f0038          ADR      r0,|L1.1900|
000730  ebfffffe          BL       _printf
;;;229    		i = Uart_GetIntNum();
000734  ebfffffe          BL       Uart_GetIntNum
000738  e1a04000          MOV      r4,r0
;;;230    		//Uart_Printf("IN:%d.\n\n", i);
;;;231    		if(i==-1) break;
00073c  e3740001          CMN      r4,#1
000740  1a000000          BNE      |L1.1864|
000744  ea000007          B        |L1.1896|
;;;232    		
;;;233    		if(i>=0 && (i<(sizeof(camera_function)/8)) ) 
                  |L1.1864|
000748  e3540000          CMP      r4,#0
00074c  ba000004          BLT      |L1.1892|
000750  e3540005          CMP      r4,#5
000754  2a000002          BCS      |L1.1892|
;;;234    	    	( (void (*)(void)) (camera_function[i][0]) )();	// execute selected function.
000758  e51f16e4          LDR      r1,|L1.124|
00075c  e7910184          LDR      r0,[r1,r4,LSL #3]
000760  e12fff30          BLX      r0
;;;235    	}
                  |L1.1892|
000764  eaffffee          B        |L1.1828|
;;;236    
;;;237    }
                  |L1.1896|
000768  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.1900|
00076c  6c65530a          DCB      "\nSel"
000770  28746365          DCB      "ect("
000774  7420312d          DCB      "-1 t"
000778  7865206f          DCB      "o ex"
00077c  3a297469          DCB      "it):"
000780  00000020          DCB      " \0\0\0"
                          ENDP

                  _CamCodecStopHw PROC
;;;389    void _CamCodecStopHw(void)
;;;390    {
000784  e3a00448          MOV      r0,#0x48000000
;;;391    	rCICOSCCTRL&=~CAM_CODEC_SACLER_START_BIT; //stop codec scaler.
000788  e5900058          LDR      r0,[r0,#0x58]
00078c  e3c00c80          BIC      r0,r0,#0x8000
000790  e3a01448          MOV      r1,#0x48000000
000794  e5810058          STR      r0,[r1,#0x58]
;;;392    	rCIIMGCPT&=~(CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT|CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT); //stop capturing for codec scaler and global capture.
000798  e3a00448          MOV      r0,#0x48000000
00079c  e59000a0          LDR      r0,[r0,#0xa0]
0007a0  e3c004c0          BIC      r0,r0,#0xc0000000
0007a4  e3a01448          MOV      r1,#0x48000000
0007a8  e58100a0          STR      r0,[r1,#0xa0]
;;;393    }
0007ac  e12fff1e          BX       lr
                          ENDP

                  _CamCodecSetLastIrq PROC
;;;384    void _CamCodecSetLastIrq(void)
;;;385    {
0007b0  e3a00448          MOV      r0,#0x48000000
;;;386    	rCICOCTRL|=(1<<2); // Bit of LastIRQEn_Co is cleared automatically.  
0007b4  e590004c          LDR      r0,[r0,#0x4c]
0007b8  e3800004          ORR      r0,r0,#4
0007bc  e3a01448          MOV      r1,#0x48000000
0007c0  e581004c          STR      r0,[r1,#0x4c]
;;;387    }
0007c4  e12fff1e          BX       lr
                          ENDP

                  CamCodecIsr PROC
;;;246    void __irq CamCodecIsr(void)
;;;247    {
0007c8  e92d501f          STMFD    sp!,{r0-r4,r12,lr}
0007cc  e24dd004          SUB      sp,sp,#4
;;;248    
;;;249    	U32 completedFrameIndex;
;;;250    
;;;251    	ClearPending(BIT_CAMIF_CODEC);
0007d0  e3a00c80          MOV      r0,#0x8000
0007d4  e59f1134          LDR      r1,|L1.2320|
0007d8  e5810000          STR      r0,[r1,#0]
0007dc  e1c10000          BIC      r0,r1,r0
0007e0  e5900010          LDR      r0,[r0,#0x10]
0007e4  e5810010          STR      r0,[r1,#0x10]
0007e8  e1a00001          MOV      r0,r1
0007ec  e5900010          LDR      r0,[r0,#0x10]
;;;252    	//Uart_Printf("0x%x, 0x%x\n", rCICOSTATUS&0xe0000000, rCIPRSTATUS&0xc0000000);
;;;253    	switch(camCodecStatus) {
0007f0  e59f011c          LDR      r0,|L1.2324|
0007f4  e5900000          LDR      r0,[r0,#0]  ; camCodecStatus
0007f8  e3500005          CMP      r0,#5
0007fc  908ff100          ADDLS    pc,pc,r0,LSL #2
000800  ea00003b          B        |L1.2292|
000804  ea000014          B        |L1.2140|
000808  ea000003          B        |L1.2076|
00080c  ea000007          B        |L1.2096|
000810  ea00000b          B        |L1.2116|
000814  ea000036          B        |L1.2292|
000818  ea000034          B        |L1.2288|
;;;254    		case CAM_STOP_ISSUED:
;;;255    			_CamCodecSetLastIrq();
                  |L1.2076|
00081c  ebfffffe          BL       _CamCodecSetLastIrq
;;;256    			camCodecStatus=CAM_LASTIRQ_ISSUED;
000820  e3a00002          MOV      r0,#2
000824  e59f10e8          LDR      r1,|L1.2324|
000828  e5810000          STR      r0,[r1,#0]  ; camCodecStatus
;;;257    			break;
00082c  ea000031          B        |L1.2296|
;;;258    		case CAM_LASTIRQ_ISSUED:
;;;259    			_CamCodecStopHw();
                  |L1.2096|
000830  ebfffffe          BL       _CamCodecStopHw
;;;260    			camCodecStatus=CAM_LAST_CAPTURING;
000834  e3a00003          MOV      r0,#3
000838  e59f10d4          LDR      r1,|L1.2324|
00083c  e5810000          STR      r0,[r1,#0]  ; camCodecStatus
;;;261    			break;			
000840  ea00002c          B        |L1.2296|
;;;262    		case CAM_LAST_CAPTURING:
;;;263    			camCodecStatus=CAM_STOPPED;
                  |L1.2116|
000844  e3a00004          MOV      r0,#4
000848  e59f10c4          LDR      r1,|L1.2324|
00084c  e5810000          STR      r0,[r1,#0]  ; camCodecStatus
;;;264    			return;
;;;265    		case CAM_STARTED:
;;;266    			if(camTestMode&CAM_TEST_MODE_CODEC_POST)	{
;;;267    				if(camCodecCaptureCount>0) {
;;;268    					camCodecDataValid=1;
;;;269    					if((postProcessingDone==0) && (camCodecCaptureCount>1)) {
;;;270    						Uart_Printf("ERROR:Post not completed yet.\n");
;;;271    					}
;;;272    					completedFrameIndex=(((rCICOSTATUS>>26)&0x3)+4-2)%4;   
;;;273    					PostStartProcessing(completedFrameIndex);
;;;274    				}
;;;275    			}
;;;276    			else {
;;;277    				if(camCodecCaptureCount>0) camCodecDataValid=1;
;;;278    			}
;;;279    			break; 
;;;280    		case CAM_CODEC_SCALER_BYPASS_STATE:
;;;281    			break;
;;;282    		default:
;;;283    			break;
;;;284    	}
;;;285    
;;;286        camCodecCaptureCount++;	 
;;;287    
;;;288    }
                  |L1.2128|
000850  e28dd004          ADD      sp,sp,#4
000854  e8bd501f          LDMFD    sp!,{r0-r4,r12,lr}
000858  e25ef004          SUBS     pc,lr,#4
                  |L1.2140|
00085c  e59f00b4          LDR      r0,|L1.2328|          ;266
000860  e5900000          LDR      r0,[r0,#0]            ;266  ; camTestMode
000864  e3100004          TST      r0,#4                 ;266
000868  0a000018          BEQ      |L1.2256|             ;266
00086c  e59f00a8          LDR      r0,|L1.2332|          ;267
000870  e5900000          LDR      r0,[r0,#0]            ;267  ; camCodecCaptureCount
000874  e3500000          CMP      r0,#0                 ;267
000878  0a00001b          BEQ      |L1.2284|             ;267
00087c  e3a00001          MOV      r0,#1                 ;268
000880  e59f1098          LDR      r1,|L1.2336|          ;268
000884  e5810000          STR      r0,[r1,#0]            ;268  ; camCodecDataValid
000888  e59f0094          LDR      r0,|L1.2340|          ;269
00088c  e5900000          LDR      r0,[r0,#0]            ;269  ; postProcessingDone
000890  e3500000          CMP      r0,#0                 ;269
000894  1a000005          BNE      |L1.2224|             ;269
000898  e59f007c          LDR      r0,|L1.2332|          ;269
00089c  e5900000          LDR      r0,[r0,#0]            ;269  ; camCodecCaptureCount
0008a0  e3500001          CMP      r0,#1                 ;269
0008a4  9a000001          BLS      |L1.2224|             ;269
0008a8  e28f0078          ADR      r0,|L1.2344|          ;270
0008ac  ebfffffe          BL       _printf               ;270
                  |L1.2224|
0008b0  e3a00448          MOV      r0,#0x48000000        ;272
0008b4  e5900064          LDR      r0,[r0,#0x64]         ;272
0008b8  e3a01002          MOV      r1,#2                 ;272
0008bc  e0810d20          ADD      r0,r1,r0,LSR #26      ;272
0008c0  e2004003          AND      r4,r0,#3              ;272
0008c4  e1a00004          MOV      r0,r4                 ;273
0008c8  ebfffffe          BL       PostStartProcessing   ;273
0008cc  ea000006          B        |L1.2284|             ;273
                  |L1.2256|
0008d0  e59f0044          LDR      r0,|L1.2332|          ;277
0008d4  e5900000          LDR      r0,[r0,#0]            ;277  ; camCodecCaptureCount
0008d8  e3500000          CMP      r0,#0                 ;277
0008dc  0a000002          BEQ      |L1.2284|             ;277
0008e0  e3a00001          MOV      r0,#1                 ;277
0008e4  e59f1034          LDR      r1,|L1.2336|          ;277
0008e8  e5810000          STR      r0,[r1,#0]            ;277  ; camCodecDataValid
                  |L1.2284|
0008ec  ea000001          B        |L1.2296|             ;279
                  |L1.2288|
0008f0  ea000000          B        |L1.2296|             ;281
                  |L1.2292|
0008f4  e1a00000          NOP                            ;283
                  |L1.2296|
0008f8  e59f001c          LDR      r0,|L1.2332|          ;286
0008fc  e5900000          LDR      r0,[r0,#0]            ;286  ; camCodecCaptureCount
000900  e2800001          ADD      r0,r0,#1              ;286
000904  e59f1010          LDR      r1,|L1.2332|          ;286
000908  e5810000          STR      r0,[r1,#0]            ;286  ; camCodecCaptureCount
00090c  eaffffcf          B        |L1.2128|
                  |L1.2320|
000910  40200000          DCD      0x40200000
                  |L1.2324|
000914  0000000c          DCD      ||.bss$2|| + 12
                  |L1.2328|
000918  00000000          DCD      ||.bss$2||
                  |L1.2332|
00091c  00000004          DCD      ||.bss$2|| + 4
                  |L1.2336|
000920  0000001c          DCD      ||.bss$2|| + 28
                  |L1.2340|
000924  00000000          DCD      postProcessingDone
                  |L1.2344|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -