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

📄 camproset.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
00057c  e58c3000          STR      r3,[r12,#0]  ; _CAMiicDataCount
;;;149    
;;;150    	rIICDS   = slvAddr;
000580  e3a03454          MOV      r3,#0x54000000
000584  e583000c          STR      r0,[r3,#0xc]
;;;151    	rIICSTAT = 0xf0;   //Master Tx, Start
000588  e3a030f0          MOV      r3,#0xf0
00058c  e3a0c454          MOV      r12,#0x54000000
000590  e58c3004          STR      r3,[r12,#4]
;;;152    	rIICCON &= ~(1<<4);                    //Resumes IIC operation.  
000594  e3a03454          MOV      r3,#0x54000000
000598  e5933000          LDR      r3,[r3,#0]
00059c  e3c33010          BIC      r3,r3,#0x10
0005a0  e3a0c454          MOV      r12,#0x54000000
0005a4  e58c3000          STR      r3,[r12,#0]
;;;153    	//Clearing the pending bit isn't needed because the pending bit has been cleared.
;;;154    	while(_CAMiicDataCount!=-1);
0005a8  e1a00000          NOP      
                  |L1.1452|
0005ac  e51f34ec          LDR      r3,|L1.200|
0005b0  e5933000          LDR      r3,[r3,#0]  ; _CAMiicDataCount
0005b4  e3730001          CMN      r3,#1
0005b8  1afffffb          BNE      |L1.1452|
;;;155        
;;;156    	_CAMiicMode      = CAMRDDATA;
0005bc  e3a03003          MOV      r3,#3
0005c0  e51fc50c          LDR      r12,|L1.188|
0005c4  e58c3000          STR      r3,[r12,#0]  ; _CAMiicMode
;;;157    	_CAMiicPt        = 0;
0005c8  e3a03000          MOV      r3,#0
0005cc  e51fc514          LDR      r12,|L1.192|
0005d0  e58c3000          STR      r3,[r12,#0]  ; _CAMiicPt
;;;158    	_CAMiicDataCount = 1;
0005d4  e3a03001          MOV      r3,#1
0005d8  e51fc518          LDR      r12,|L1.200|
0005dc  e58c3000          STR      r3,[r12,#0]  ; _CAMiicDataCount
;;;159        
;;;160    	rIICDS   = slvAddr;
0005e0  e3a03454          MOV      r3,#0x54000000
0005e4  e583000c          STR      r0,[r3,#0xc]
;;;161    	rIICSTAT = 0xb0;                    //Master Rx,Start
0005e8  e3a030b0          MOV      r3,#0xb0
0005ec  e3a0c454          MOV      r12,#0x54000000
0005f0  e58c3004          STR      r3,[r12,#4]
;;;162    	rIICCON &= ~(1<<4);                   //Resumes IIC operation.   
0005f4  e3a03454          MOV      r3,#0x54000000
0005f8  e5933000          LDR      r3,[r3,#0]
0005fc  e3c33010          BIC      r3,r3,#0x10
000600  e3a0c454          MOV      r12,#0x54000000
000604  e58c3000          STR      r3,[r12,#0]
;;;163        
;;;164    	while(_CAMiicDataCount!=-1);
000608  e1a00000          NOP      
                  |L1.1548|
00060c  e51f354c          LDR      r3,|L1.200|
000610  e5933000          LDR      r3,[r3,#0]  ; _CAMiicDataCount
000614  e3730001          CMN      r3,#1
000618  1afffffb          BNE      |L1.1548|
;;;165    
;;;166    	*data = _CAMiicData[1];
00061c  e51f3560          LDR      r3,|L1.196|
000620  e5d33001          LDRB     r3,[r3,#1]  ; _CAMiicData
000624  e5c23000          STRB     r3,[r2,#0]
;;;167    }
000628  e1a0f00e          MOV      pc,lr
                          ENDP

                  Camera_WriteByte PROC
;;;234    void Camera_WriteByte(void)
;;;235    {
00062c  e92d4070          STMFD    sp!,{r4-r6,lr}
;;;236    	unsigned int i, j, save_E, save_PE, RegAddr, RegData, pageNo;
;;;237          	
;;;238    #if (USED_CAM_TYPE==CAM_S5X532)||(USED_CAM_TYPE==CAM_S5X3A1)
;;;239    	Uart_Printf("Input Write Page No of %s\n=>", CAM_NAME);
000630  e24f1f4d          ADR      r1,|L1.1284|
000634  e28f0054          ADR      r0,|L1.1680|
000638  ebfffffe          BL       Uart_Printf
;;;240    	pageNo = (U8)Uart_GetIntNum();
00063c  ebfffffe          BL       Uart_GetIntNum
000640  e20060ff          AND      r6,r0,#0xff
;;;241    #endif
;;;242    
;;;243    	Uart_Printf("Input Write Register Address of %s\n=>", CAM_NAME);
000644  e24f1f52          ADR      r1,|L1.1284|
000648  e28f0060          ADR      r0,|L1.1712|
00064c  ebfffffe          BL       Uart_Printf
;;;244    	RegAddr = (U8)Uart_GetIntNum();
000650  ebfffffe          BL       Uart_GetIntNum
000654  e20040ff          AND      r4,r0,#0xff
;;;245        
;;;246    	Uart_Printf("Input Write Transfer Data into %s\n=>", CAM_NAME);
000658  e24f1f57          ADR      r1,|L1.1284|
00065c  e28f0074          ADR      r0,|L1.1752|
000660  ebfffffe          BL       Uart_Printf
;;;247    	RegData = (U8)Uart_GetIntNum();
000664  ebfffffe          BL       Uart_GetIntNum
000668  e20050ff          AND      r5,r0,#0xff
;;;248    
;;;249    #if (USED_CAM_TYPE==CAM_S5X532)||(USED_CAM_TYPE==CAM_S5X3A1)
;;;250    	Wr_CamIIC(CAM_ID, (U8)0xec, pageNo);  // set Page no
00066c  e1a02006          MOV      r2,r6
000670  e3a010ec          MOV      r1,#0xec
000674  e3a0005a          MOV      r0,#0x5a
000678  ebfffffe          BL       Wr_CamIIC
;;;251    #endif
;;;252    	Wr_CamIIC(CAM_ID, (U8)RegAddr, RegData); // set register after setting page number
00067c  e1a02005          MOV      r2,r5
000680  e1a01004          MOV      r1,r4
000684  e3a0005a          MOV      r0,#0x5a
000688  ebfffffe          BL       Wr_CamIIC
;;;253    }
00068c  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                  |L1.1680|
000690  75706e49          DCB      "Inpu"
000694  72572074          DCB      "t Wr"
000698  20657469          DCB      "ite "
00069c  65676150          DCB      "Page"
0006a0  206f4e20          DCB      " No "
0006a4  2520666f          DCB      "of %"
0006a8  3e3d0a73          DCB      "s\n=>"
0006ac  00000000          DCB      "\0\0\0\0"
                  |L1.1712|
0006b0  75706e49          DCB      "Inpu"
0006b4  72572074          DCB      "t Wr"
0006b8  20657469          DCB      "ite "
0006bc  69676552          DCB      "Regi"
0006c0  72657473          DCB      "ster"
0006c4  64644120          DCB      " Add"
0006c8  73736572          DCB      "ress"
0006cc  20666f20          DCB      " of "
0006d0  3d0a7325          DCB      "%s\n="
0006d4  0000003e          DCB      ">\0\0\0"
                  |L1.1752|
0006d8  75706e49          DCB      "Inpu"
0006dc  72572074          DCB      "t Wr"
0006e0  20657469          DCB      "ite "
0006e4  6e617254          DCB      "Tran"
0006e8  72656673          DCB      "sfer"
0006ec  74614420          DCB      " Dat"
0006f0  6e692061          DCB      "a in"
0006f4  25206f74          DCB      "to %"
0006f8  3e3d0a73          DCB      "s\n=>"
0006fc  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Camera_ReadByte PROC
;;;256    void Camera_ReadByte(void)
;;;257    {
000700  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;258    	unsigned int i, j, save_E, save_PE, RegAddr, RegData, pageNo;
;;;259    	static U8 rdata[8];
;;;260          	
;;;261    #if (USED_CAM_TYPE==CAM_S5X532)||(USED_CAM_TYPE==CAM_S5X3A1)
;;;262    	Uart_Printf("Input Write Page No of %s\n=>", CAM_NAME);
000704  e24f1f82          ADR      r1,|L1.1284|
000708  e24f0080          ADR      r0,|L1.1680|
00070c  ebfffffe          BL       Uart_Printf
;;;263    	pageNo = (U8)Uart_GetIntNum();
000710  ebfffffe          BL       Uart_GetIntNum
000714  e20050ff          AND      r5,r0,#0xff
;;;264    	Wr_CamIIC(CAM_ID, (U8)0xec, pageNo);  // set Page no
000718  e1a02005          MOV      r2,r5
00071c  e3a010ec          MOV      r1,#0xec
000720  e3a0005a          MOV      r0,#0x5a
000724  ebfffffe          BL       Wr_CamIIC
;;;265    #endif
;;;266    
;;;267    	Uart_Printf("Input Read Register Address of %s\n=>", CAM_NAME);
000728  e24f1f8b          ADR      r1,|L1.1284|
00072c  e28f0030          ADR      r0,|L1.1892|
000730  ebfffffe          BL       Uart_Printf
;;;268    	RegAddr = (U8)Uart_GetIntNum();
000734  ebfffffe          BL       Uart_GetIntNum
000738  e20040ff          AND      r4,r0,#0xff
;;;269    	Rd_CamIIC(CAM_ID, RegAddr, &rdata[0]); 
00073c  e59f2048          LDR      r2,|L1.1932|
000740  e1a01004          MOV      r1,r4
000744  e3a0005a          MOV      r0,#0x5a
000748  ebfffffe          BL       Rd_CamIIC
;;;270    	Uart_Printf("Register Addr: 0x%2x, data: 0x%2x\n", RegAddr,rdata[0]);
00074c  e59f0038          LDR      r0,|L1.1932|
000750  e5d02000          LDRB     r2,[r0,#0]  ; rdata@Camera_ReadByte_0
000754  e1a01004          MOV      r1,r4
000758  e28f0030          ADR      r0,|L1.1936|
00075c  ebfffffe          BL       Uart_Printf
;;;271    }
000760  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.1892|
000764  75706e49          DCB      "Inpu"
000768  65522074          DCB      "t Re"
00076c  52206461          DCB      "ad R"
000770  73696765          DCB      "egis"
000774  20726574          DCB      "ter "
000778  72646441          DCB      "Addr"
00077c  20737365          DCB      "ess "
000780  2520666f          DCB      "of %"
000784  3e3d0a73          DCB      "s\n=>"
000788  00000000          DCB      "\0\0\0\0"
                  |L1.1932|
00078c  00000000          DCD      ||.bss$2||
                  |L1.1936|
000790  69676552          DCB      "Regi"
000794  72657473          DCB      "ster"
000798  64644120          DCB      " Add"
00079c  30203a72          DCB      "r: 0"
0007a0  78322578          DCB      "x%2x"
0007a4  6164202c          DCB      ", da"
0007a8  203a6174          DCB      "ta: "
0007ac  32257830          DCB      "0x%2"
0007b0  00000a78          DCB      "x\n\0\0"
                          ENDP

                  Camera_ReadBlock PROC
;;;297    void Camera_ReadBlock(void)
;;;298    {
0007b4  e92d4010          STMFD    sp!,{r4,lr}
;;;299    	unsigned int i, j, save_E, save_PE, RegAddr, RegData;
;;;300    	static U8 rdata[256]; 
;;;301    
;;;302    #if USED_CAM_TYPE==CAM_OV7620
;;;303    	for(i=0; i<(sizeof(Ov7620_YCbCr8bit)/2);i++)
;;;304    		Rd_CamIIC(CAM_ID, Ov7620_YCbCr8bit[i][0], &rdata[i]); 
;;;305    	for(i=0; i<(sizeof(Ov7620_YCbCr8bit)/2);i++)
;;;306    		Uart_Printf("Addr: 0x%2x, W: 0x%2x, R: 0x%2x\n", Ov7620_YCbCr8bit[i][0], Ov7620_YCbCr8bit[i][1], rdata[i]);
;;;307    #elif USED_CAM_TYPE==CAM_S5X532
;;;308        for(i=0; i<(sizeof(S5X532_YCbCr8bit)/2);i++)
0007b8  e3a04000          MOV      r4,#0
                  |L1.1980|
0007bc  e354005e          CMP      r4,#0x5e
0007c0  2a000015          BCS      |L1.2076|
0007c4  ea000001          B        |L1.2000|
                  |L1.1992|
0007c8  e2844001          ADD      r4,r4,#1
0007cc  eafffffa          B        |L1.1980|
;;;309       	{     
;;;310    		if(S5X532_YCbCr8bit[i][0] == 0xec)
                  |L1.2000|
0007d0  e51f070c          LDR      r0,|L1.204|
0007d4  e7d00084          LDRB     r0,[r0,r4,LSL #1]
0007d8  e35000ec          CMP      r0,#0xec
0007dc  1a000007          BNE      |L1.2048|
;;;311    			Wr_CamIIC(CAM_ID, S5X532_YCbCr8bit[i][0], S5X532_YCbCr8bit[i][1]);
0007e0  e51f071c          LDR      r0,|L1.204|
0007e4  e0800084          ADD      r0,r0,r4,LSL #1
0007e8  e5d02001          LDRB     r2,[r0,#1]
0007ec  e51f0728          LDR      r0,|L1.204|
0007f0  e7d01084          LDRB     r1,[r0,r4,LSL #1]
0007f4  e3a0005a          MOV      r0,#0x5a
0007f8  ebfffffe          BL       Wr_CamIIC
0007fc  ea000005          B        |L1.2072|
;;;312    		else
;;;313    			Rd_CamIIC(CAM_ID, S5X532_YCbCr8bit[i][0], &rdata[i]); 
                  |L1.2048|
000800  e59f0080          LDR      r0,|L1.2184|
000804  e0802004          ADD      r2,r0,r4
000808  e51f0744          LDR      r0,|L1.204|
00080c  e7d01084          LDRB     r1,[r0,r4,LSL #1]
000810  e3a0005a          MOV      r0,#0x5a
000814  ebfffffe          BL       Rd_CamIIC
;;;314        }
                  |L1.2072|
000818  eaffffea          B        |L1.1992|
;;;315      	for(i=0; i<(sizeof(S5X532_YCbCr8bit)/2);i++)
                  |L1.2076|
00081c  e3a04000          MOV      r4,#0
                  |L1.2080|
000820  e354005e          CMP      r4,#0x5e
000824  2a000016          BCS      |L1.2180|
000828  ea000001          B        |L1.2100|
                  |L1.2092|
00082c  e2844001          ADD      r4,r4,#1
000830  eafffffa          B        |L1.2080|
;;;316    	{
;;;317    	  	if(S5X532_YCbCr8bit[i][0] == 0xec)
                  |L1.2100|
000834  e51f0770          LDR      r0,|L1.204|
000838  e7d00084          LDRB     r0,[r0,r4,LSL #1]
00083c  e35000ec          CMP      r0,#0xec
000840  1a000005          BNE      |L1.2140|
;;;318    	       Uart_Printf("Page: 0x%2x\n",  S5X532_YCbCr8bit[i][1]);
000844  e51f0780          LDR      r0,|L1.204|
000848  e0800084          ADD      r0,r0,r4,LSL #1
00084c  e5d01001          LDRB     r1,[r0,#1]
000850  e28f0034          ADR      r0,|L1.2188|
000854  ebfffffe          BL       Uart_Printf
000858  ea000008          B        |L1.2176|
;;;319    		else
;;;320    	  		Uart_Printf("Addr: 0x%2x, W: 0x%2x, R: 0x%2x\n", S5X532_YCbCr8bit[i][0], S5X532_YCbCr8bit[i][1], rdata[i]);
                  |L1.2140|
00085c  e59f0024          LDR      r0,|L1.2184|
000860  e7d03004          LDRB     r3,[r0,r4]
000864  e51f07a0          LDR      r0,|L1.204|
000868  e0800084          ADD      r0,r0,r4,LSL #1
00086c  e5d02001          LDRB     r2,[r0,#1]
000870  e51f07ac          LDR      r0,|L1.204|
000874  e7d01084          LDRB     r1,[r0,r4,LSL #1]
000878  e28f001c          ADR      r0,|L1.2204|
00087c  ebfffffe          BL       Uart_Printf

⌨️ 快捷键说明

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