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

📄 pxa27x_camera.cod

📁 以嵌入式处理器pxa270为硬件平台的wince系统摄像头驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:

  0000c	e3a03000	 mov         r3, #0

; 427  : 
; 428  : 	XllpLock(PI2C);

  00010	e3a00058	 mov         r0, #0x58
  00014	e5c43000	 strb        r3, [r4]
  00018	eb000000	 bl          XllpLock

; 429  : 
; 430  : 	pFunctions.ReadRegister(&XllpCAMERA, subAddress, bufP);

  0001c	e59f3028	 ldr         r3, [pc, #0x28]
  00020	e59f0020	 ldr         r0, [pc, #0x20]
  00024	e1a02004	 mov         r2, r4
  00028	e5933018	 ldr         r3, [r3, #0x18]
  0002c	e1a01005	 mov         r1, r5
  00030	e1a0e00f	 mov         lr, pc
  00034	e12fff13	 bx          r3

; 431  : 
; 432  : 	XllpUnlock(PI2C);

  00038	e3a00058	 mov         r0, #0x58
  0003c	eb000000	 bl          XllpUnlock

; 433  : 
; 434  : 	//RETAILMSG(1,(TEXT("Reading register %x with %x\r\n"), subAddress, *bufP));
; 435  : }

  00040	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$L38775|
  00048	00000000	 DCD         |XllpCAMERA|
  0004c	00000000	 DCD         |pFunctions|
  00050		 |$M38771|

			 ENDP  ; |CameraReadRegister|

	EXPORT	|CameraStartVideoCapture|
	EXPORT	|??_C@_1GO@IOBLIJCI@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?5?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5@| [ DATA ] ; `string'
	IMPORT	|XllpCameraSetCaptureFormat|
	IMPORT	|XllpCameraStartVideoCapture|
	IMPORT	|XllpCameraSetInterruptMask|
	IMPORT	|EnterCriticalSection|
	IMPORT	|LeaveCriticalSection|

  00000			 AREA	 |.text| { |CameraStartVideoCapture| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CameraStartVideoCapture|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraStartVideoCapture| } ; comdat associative
|$T38781| DCD	|$L38780|
	DCD	0x40003001

  00000			 AREA	 |.rdata| { |??_C@_1GO@IOBLIJCI@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?5?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GO@IOBLIJCI@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?5?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5@| DCB "C"
	DCB	0x0, "a", 0x0, "m", 0x0, "e", 0x0, "r", 0x0, "a", 0x0, " "
	DCB	0x0, "i", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, " ", 0x0, "f"
	DCB	0x0, "a", 0x0, "i", 0x0, "l", 0x0, "u", 0x0, "r", 0x0, "e"
	DCB	0x0, " ", 0x0, "i", 0x0, "n", 0x0, "s", 0x0, "i", 0x0, "d"
	DCB	0x0, "e", 0x0, " ", 0x0, "C", 0x0, "a", 0x0, "m", 0x0, "e"
	DCB	0x0, "r", 0x0, "a", 0x0, "S", 0x0, "e", 0x0, "t", 0x0, "C"
	DCB	0x0, "a", 0x0, "p", 0x0, "t", 0x0, "u", 0x0, "r", 0x0, "e"
	DCB	0x0, "F", 0x0, "o", 0x0, "r", 0x0, "m", 0x0, "a", 0x0, "t"
	DCB	0x0, "(", 0x0, ")", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |CameraStartVideoCapture| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CameraStartVideoCapture| PROC

; 439  : {

  00000		 |$L38780|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M38778|

; 440  : 	XLLP_STATUS_T status;
; 441  : 
; 442  : 	EnterCriticalSection(&CameraMutex);

  00004	e59f0098	 ldr         r0, [pc, #0x98]
  00008	eb000000	 bl          EnterCriticalSection

; 443  : 
; 444  : 	bDoStillCapture = FALSE;

  0000c	e59f30a8	 ldr         r3, [pc, #0xA8]
  00010	e3a02000	 mov         r2, #0

; 445  : 
; 446  : 	XllpLock(PI2C);

  00014	e3a00058	 mov         r0, #0x58
  00018	e5832000	 str         r2, [r3]
  0001c	eb000000	 bl          XllpLock

; 447  : 
; 448  : 	// Configure the capture format.  Set the width, height, mode, and the physical addresses of the 
; 449  : 	// start of the descriptor chain.
; 450  : 	XllpCAMERA.capture_width = XllpCAMERA.Video_capture_width;

  00020	e59f5090	 ldr         r5, [pc, #0x90]

; 451  : 	XllpCAMERA.capture_height = XllpCAMERA.Video_capture_height;
; 452  : 	XllpCAMERA.capture_mode = XLLP_CAMERA_MODE_RECORD;
; 453  : 
; 454  : 	XllpCAMERA.fifo0_descriptors_physical = VideoCaptureDescriptorPhysicalStartAddress_CH0;

  00024	e59f2088	 ldr         r2, [pc, #0x88]

; 455  : 	XllpCAMERA.fifo1_descriptors_physical = VideoCaptureDescriptorPhysicalStartAddress_CH1;

  00028	e59f1080	 ldr         r1, [pc, #0x80]
  0002c	e595300c	 ldr         r3, [r5, #0xC]

; 456  : 	XllpCAMERA.fifo2_descriptors_physical = VideoCaptureDescriptorPhysicalStartAddress_CH2;

  00030	e59fe074	 ldr         lr, [pc, #0x74]
  00034	e5924000	 ldr         r4, [r2]
  00038	e5853004	 str         r3, [r5, #4]
  0003c	e5953010	 ldr         r3, [r5, #0x10]
  00040	e5912000	 ldr         r2, [r1]
  00044	e3a01004	 mov         r1, #4
  00048	e5853008	 str         r3, [r5, #8]
  0004c	e59e3000	 ldr         r3, [lr]
  00050	e5851024	 str         r1, [r5, #0x24]
  00054	e585408c	 str         r4, [r5, #0x8C]
  00058	e5852094	 str         r2, [r5, #0x94]

; 457  : 
; 458  : 	// set capture format
; 459  :     status = XllpCameraSetCaptureFormat(&XllpCAMERA);

  0005c	e1a00005	 mov         r0, r5
  00060	e585309c	 str         r3, [r5, #0x9C]
  00064	eb000000	 bl          XllpCameraSetCaptureFormat
  00068	e3500000	 cmp         r0, #0

; 460  :     if (status)
; 461  : 	{
; 462  : 		RETAILMSG(1,(TEXT("Camera init failure inside CameraSetCaptureFormat().\r\n")));

  0006c	159f0034	 ldrne       r0, [pc, #0x34]
  00070	1b000000	 blne        NKDbgPrintfW

; 463  : 	}
; 464  : 
; 465  : 	XllpCameraSetInterruptMask(&XllpCAMERA, 
; 466  : 	    XLLP_CI_CICR0_FOM		| 
; 467  : 	    XLLP_CI_CICR0_EOFM		| 
; 468  : 	    XLLP_CI_CICR0_SOFM		| 
; 469  :         XLLP_CI_CICR0_CDM		|
; 470  :         XLLP_CI_CICR0_QDM		|
; 471  :         XLLP_CI_CICR0_PERRM		|
; 472  :         XLLP_CI_CICR0_EOLM		| 
; 473  :         XLLP_CI_CICR0_FEM);

  00074	e3a010ff	 mov         r1, #0xFF
  00078	e1a00005	 mov         r0, r5
  0007c	eb000000	 bl          XllpCameraSetInterruptMask

; 474  : 
; 475  : 	XllpCameraStartVideoCapture(&XllpCAMERA, 0);

  00080	e3a01000	 mov         r1, #0
  00084	e1a00005	 mov         r0, r5
  00088	eb000000	 bl          XllpCameraStartVideoCapture

; 476  : 	
; 477  : 	XllpUnlock(PI2C);

  0008c	e3a00058	 mov         r0, #0x58
  00090	eb000000	 bl          XllpUnlock

; 478  : 
; 479  : 	LeaveCriticalSection(&CameraMutex);

  00094	e59f0008	 ldr         r0, [pc, #8]
  00098	eb000000	 bl          LeaveCriticalSection

; 480  : 
; 481  : }

  0009c	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000a0	e12fff1e	 bx          lr
  000a4		 |$L38783|
  000a4	00000000	 DCD         |CameraMutex|
  000a8	00000000	 DCD         |??_C@_1GO@IOBLIJCI@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?5?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAu?$AAr?$AAe?$AA?5@|
  000ac	00000000	 DCD         |VideoCaptureDescriptorPhysicalStartAddress_CH2|
  000b0	00000000	 DCD         |VideoCaptureDescriptorPhysicalStartAddress_CH1|
  000b4	00000000	 DCD         |VideoCaptureDescriptorPhysicalStartAddress_CH0|
  000b8	00000000	 DCD         |XllpCAMERA|
  000bc	00000000	 DCD         |bDoStillCapture|
  000c0		 |$M38779|

			 ENDP  ; |CameraStartVideoCapture|

	EXPORT	|CameraStopVideoCapture|
	IMPORT	|XllpCameraStopVideoCapture|

  00000			 AREA	 |.text| { |CameraStopVideoCapture| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CameraStopVideoCapture|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraStopVideoCapture| } ; comdat associative
|$T38789| DCD	|$L38788|
	DCD	0x40000f01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |CameraStopVideoCapture| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CameraStopVideoCapture| PROC

; 484  : {

  00000		 |$L38788|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M38786|

; 485  : 	EnterCriticalSection(&CameraMutex);

  00004	e59f0028	 ldr         r0, [pc, #0x28]
  00008	eb000000	 bl          EnterCriticalSection

; 486  : 
; 487  : 	XllpLock(PI2C);

  0000c	e3a00058	 mov         r0, #0x58
  00010	eb000000	 bl          XllpLock

; 488  : 
; 489  : 	XllpCameraStopVideoCapture(&XllpCAMERA);

  00014	e59f001c	 ldr         r0, [pc, #0x1C]
  00018	eb000000	 bl          XllpCameraStopVideoCapture

; 490  : 
; 491  : 	XllpUnlock(PI2C);

  0001c	e3a00058	 mov         r0, #0x58
  00020	eb000000	 bl          XllpUnlock

; 492  : 
; 493  : 	LeaveCriticalSection(&CameraMutex);

  00024	e59f0008	 ldr         r0, [pc, #8]
  00028	eb000000	 bl          LeaveCriticalSection

; 494  : }

  0002c	e49de004	 ldr         lr, [sp], #4
  00030	e12fff1e	 bx          lr
  00034		 |$L38791|
  00034	00000000	 DCD         |CameraMutex|
  00038	00000000	 DCD         |XllpCAMERA|
  0003c		 |$M38787|

			 ENDP  ; |CameraStopVideoCapture|

	EXPORT	|CameraCaptureStillImage|
	IMPORT	|XllpCameraCaptureStillImage|

  00000			 AREA	 |.text| { |CameraCaptureStillImage| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CameraCaptureStillImage|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraCaptureStillImage| } ; comdat associative
|$T38797| DCD	|$L38796|
	DCD	0x40003a01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |CameraCaptureStillImage| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CameraCaptureStillImage| PROC

; 497  : {

  00000		 |$L38796|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M38794|

; 498  : 	XLLP_STATUS_T status;
; 499  : 
; 500  : 	CameraStopVideoCapture();

  00004	eb000000	 bl          CameraStopVideoCapture

; 501  : 
; 502  : 	EnterCriticalSection(&CameraMutex);

  00008	e59f00bc	 ldr         r0, [pc, #0xBC]
  0000c	eb000000	 bl          EnterCriticalSection

; 503  : 
; 504  : 	XllpLock(PI2C);

  00010	e3a00058	 mov         r0, #0x58
  00014	eb000000	 bl          XllpLock

; 505  : 
; 506  : 
; 507  : 	discardframes = 0;
; 508  : 
; 509  : 	// Configure the capture format.  Set the width, height, mode, and the physical addresses of the 
; 510  : 	// start of the descriptor chain.
; 511  : 	XllpCAMERA.capture_width = XllpCAMERA.Still_capture_width;

  00018	e59f40c4	 ldr         r4, [pc, #0xC4]

; 512  : 	XllpCAMERA.capture_height = XllpCAMERA.Still_capture_height;
; 513  : 	XllpCAMERA.capture_mode = XLLP_CAMERA_MODE_STILL;
; 514  : 
; 515  : 	XllpCAMERA.fifo0_descriptors_physical = StillCaptureDescriptorPhysicalStartAddress_CH0;

  0001c	e59f20bc	 ldr         r2, [pc, #0xBC]

; 516  : 	XllpCAMERA.fifo1_descriptors_physical = StillCaptureDescriptorPhysicalStartAddress_CH1;

  00020	e59f10b4	 ldr         r1, [pc, #0xB4]
  00024	e5943014	 ldr         r3, [r4, #0x14]

; 517  : 	XllpCAMERA.fifo2_descriptors_physical = StillCaptureDescriptorPhysicalStartAddress_CH2;

  00028	e59f00a8	 ldr         r0, [pc, #0xA8]
  0002c	e5922000	 ldr         r2, [r2]
  00030	e5843004	 str         r3, [r4, #4]
  00034	e5943018	 ldr         r3, [r4, #0x18]
  00038	e5911000	 ldr         r1, [r1]
  0003c	e3a0e002	 mov         lr, #2
  00040	e5843008	 str         r3, [r4, #8]
  00044	e59f5088	 ldr         r5, [pc, #0x88]
  00048	e5903000	 ldr         r3, [r0]
  0004c	e584e024	 str         lr, [r4, #0x24]
  00050	e584208c	 str         r2, [r4, #0x8C]
  00054	e5841094	 str         r1, [r4, #0x94]

; 518  : 
; 519  : 	// Reset the buffer chain.  The application must now resubmit all capture buffers.
; 520  : 	bFirstVideoCaptureBufferSubmitted = FALSE;

  00058	e3a01000	 mov         r1, #0
  0005c	e3a0e000	 mov         lr, #0

; 521  : 	VirtAddr_Last_Pn_CH0 = 0x0;

  00060	e3a02000	 mov         r2, #0

; 522  : 	
; 523  : 	// set capture format
; 524  :     status = XllpCameraSetCaptureFormat(&XllpCAMERA);

  00064	e1a00004	 mov         r0, r4
  00068	e585100c	 str         r1, [r5, #0xC]
  0006c	e584309c	 str         r3, [r4, #0x9C]
  00070	e585e000	 str         lr, [r5]
  00074	e5852030	 str         r2, [r5, #0x30]
  00078	eb000000	 bl          XllpCameraSetCaptureFormat
  0007c	e3500000	 cmp         r0, #0

; 525  :     if (status)
; 526  : 	{
; 527  : 		RETAILMSG(1,(TEXT("Camera init failure inside CameraSetCaptureFormat().\r\n")));

  00080	159f0048	 ldrne       r0, [pc, #0x48]
  00084	1b000000	 blne        NKDbgPrintfW

⌨️ 快捷键说明

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