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

📄 pxa27x_camera.cod

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

; 198  : 	{
; 199  : 		return FALSE;

  0004c	e3a00000	 mov         r0, #0
  00050	ea000068	 b           |$L38226|
  00054		 |$L38233|

; 160  : 		return FALSE;	// Memory mapped file set failed
; 161  : 	}
; 162  : 	// Get a valid process pointer to the buffer mapped above.
; 163  : 	pDMAGlobals = (DMA_GLOBALS *)MapViewOfFile( hSharedMap, FILE_MAP_ALL_ACCESS, 0, 0, 0 );

  00054	e3a0180f	 mov         r1, #0xF, 16
  00058	e3a0e000	 mov         lr, #0
  0005c	e381101f	 orr         r1, r1, #0x1F
  00060	e3a03000	 mov         r3, #0
  00064	e3a02000	 mov         r2, #0
  00068	e1a00005	 mov         r0, r5
  0006c	e58de000	 str         lr, [sp]
  00070	eb000000	 bl          MapViewOfFile
  00074	e59f41c4	 ldr         r4, [pc, #0x1C4]
  00078	e1a03000	 mov         r3, r0

; 164  : 	//handle is not needed because mapped view has an internal open handle to the object
; 165  : 	CloseHandle(hSharedMap);

  0007c	e1a00005	 mov         r0, r5
  00080	e5843004	 str         r3, [r4, #4]
  00084	eb000000	 bl          CloseHandle

; 166  : 	if( !pDMAGlobals )

  00088	e5943004	 ldr         r3, [r4, #4]
  0008c	e3530000	 cmp         r3, #0

; 167  : 	{
; 168  : 		NKDbgPrintfW(TEXT("Camera DMA: MapViewOfFile failed. \r\n"));

  00090	059f01a4	 ldreq       r0, [pc, #0x1A4]
  00094	0affffeb	 beq         |$L38736|

; 169  : 		return FALSE;	// Memory mapped file set failed.
; 170  : 	}
; 171  : 
; 172  : 	v_pI2C = (volatile unsigned int *)VirtualAllocCopyPhysical(sizeof(XLLP_I2C_T),"CAM_Init : v_pI2C",(PVOID)(BULVERDE_BASE_REG_PA_I2C));

  00098	e59f1198	 ldr         r1, [pc, #0x198]
  0009c	e3a02101	 mov         r2, #1, 2
  000a0	e3822603	 orr         r2, r2, #3, 12
  000a4	e3a00024	 mov         r0, #0x24
  000a8	eb000000	 bl          VirtualAllocCopyPhysical
  000ac	e3500000	 cmp         r0, #0
  000b0	e5840008	 str         r0, [r4, #8]

; 173  : 	if (!v_pI2C)
; 174  : 	{
; 175  : 		return FALSE;

  000b4	0a00001e	 beq         |$L38735|

; 176  : 	}
; 177  : 
; 178  :     v_pOSTRegs = (volatile unsigned int *)VirtualAllocCopyPhysical(sizeof(XLLP_OST_T),"CAM_Init : v_pOSTRegs",(PVOID)(BULVERDE_BASE_REG_PA_OST));

  000b8	e59f1174	 ldr         r1, [pc, #0x174]
  000bc	e3a02101	 mov         r2, #1, 2
  000c0	e382260a	 orr         r2, r2, #0xA, 12
  000c4	e3a000e0	 mov         r0, #0xE0
  000c8	eb000000	 bl          VirtualAllocCopyPhysical
  000cc	e3500000	 cmp         r0, #0
  000d0	e5840010	 str         r0, [r4, #0x10]

; 179  : 	if (!v_pOSTRegs)
; 180  : 	{
; 181  : 		return FALSE;

  000d4	0a000016	 beq         |$L38735|

; 182  : 	}
; 183  : 
; 184  :     v_pCIRegs = (volatile unsigned int *)VirtualAllocCopyPhysical(1024,"CAM_Init : v_pCIRegs",(PVOID)(BULVERDE_BASE_REG_PA_CAMERA));

  000d8	e59f1150	 ldr         r1, [pc, #0x150]
  000dc	e3a02205	 mov         r2, #5, 4
  000e0	e3a00b01	 mov         r0, #1, 22
  000e4	eb000000	 bl          VirtualAllocCopyPhysical
  000e8	e3500000	 cmp         r0, #0
  000ec	e584000c	 str         r0, [r4, #0xC]

; 185  : 	if (!v_pCIRegs)
; 186  : 	{
; 187  : 		return FALSE;

  000f0	0a00000f	 beq         |$L38735|

; 188  : 	}
; 189  : 	
; 190  : 	v_pClkRegs = (volatile XLLP_CLKMGR_T *)VirtualAllocCopyPhysical(sizeof(XLLP_CLKMGR_T),"CAM_Init : v_pClkRegs",(PVOID)(BULVERDE_BASE_REG_PA_CLKMGR));

  000f4	e59f1130	 ldr         r1, [pc, #0x130]
  000f8	e3a02441	 mov         r2, #0x41, 8
  000fc	e3822603	 orr         r2, r2, #3, 12
  00100	e3a00010	 mov         r0, #0x10
  00104	eb000000	 bl          VirtualAllocCopyPhysical
  00108	e3500000	 cmp         r0, #0
  0010c	e5840014	 str         r0, [r4, #0x14]

; 191  : 	if (!v_pClkRegs)
; 192  : 	{
; 193  : 		return FALSE;

  00110	0a000007	 beq         |$L38735|

; 194  : 	}
; 195  : 
; 196  : 	v_pGPIORegs = (volatile XLLP_GPIO_T *)VirtualAllocCopyPhysical(sizeof(XLLP_GPIO_T),"CAM_Init : v_pGPIORegs",(PVOID)(BULVERDE_BASE_REG_PA_GPIO));

  00114	e59f110c	 ldr         r1, [pc, #0x10C]
  00118	e3a02101	 mov         r2, #1, 2
  0011c	e382260e	 orr         r2, r2, #0xE, 12
  00120	e3a00f53	 mov         r0, #0x53, 30
  00124	eb000000	 bl          VirtualAllocCopyPhysical
  00128	e3500000	 cmp         r0, #0
  0012c	e5840018	 str         r0, [r4, #0x18]

; 197  : 	if (!v_pGPIORegs)

  00130	1a000001	 bne         |$L38261|
  00134		 |$L38735|

; 198  : 	{
; 199  : 		return FALSE;

  00134	e3a00000	 mov         r0, #0
  00138	ea00002e	 b           |$L38226|
  0013c		 |$L38261|

; 200  : 	}
; 201  : 
; 202  : 	OS_I2CInit();

  0013c	eb000000	 bl          OS_I2CInit

; 203  : 
; 204  : 	pOSCR = v_pOSTRegs + 4;

  00140	e5941010	 ldr         r1, [r4, #0x10]

; 205  : 
; 206  : 	hCameraFrameReady = CreateEvent(NULL,FALSE,FALSE,CAMERA_EVENT_NAME);

  00144	e59f30d8	 ldr         r3, [pc, #0xD8]
  00148	e3a02000	 mov         r2, #0
  0014c	e2811010	 add         r1, r1, #0x10
  00150	e5841000	 str         r1, [r4]
  00154	e3a01000	 mov         r1, #0
  00158	e3a00000	 mov         r0, #0
  0015c	eb000000	 bl          CreateEventW
  00160	e59f20b8	 ldr         r2, [pc, #0xB8]

; 207  : 	hStillImageReady = CreateEvent(NULL, FALSE, FALSE, CAMERA_EVENT_STILL_IMAGE_READY);

  00164	e59f30b0	 ldr         r3, [pc, #0xB0]
  00168	e3a01000	 mov         r1, #0
  0016c	e5820000	 str         r0, [r2]
  00170	e3a02000	 mov         r2, #0
  00174	e3a00000	 mov         r0, #0
  00178	eb000000	 bl          CreateEventW
  0017c	e59f2094	 ldr         r2, [pc, #0x94]

; 208  : 	hCameraShutdownComplete = CreateEvent(NULL, FALSE, FALSE, CAMERA_SHUTDOWN_COMPLETE);

  00180	e59f308c	 ldr         r3, [pc, #0x8C]
  00184	e3a01000	 mov         r1, #0
  00188	e5820000	 str         r0, [r2]
  0018c	e3a02000	 mov         r2, #0
  00190	e3a00000	 mov         r0, #0
  00194	eb000000	 bl          CreateEventW
  00198	e59f2070	 ldr         r2, [pc, #0x70]

; 209  : 	hShutDown = CreateEvent(NULL, FALSE, FALSE, NULL);

  0019c	e3a03000	 mov         r3, #0
  001a0	e3a01000	 mov         r1, #0
  001a4	e5820000	 str         r0, [r2]
  001a8	e3a02000	 mov         r2, #0
  001ac	e3a00000	 mov         r0, #0
  001b0	eb000000	 bl          CreateEventW

; 210  : 
; 211  : 	memset(&XllpCAMERA, 0, sizeof(XLLP_Camera_Context_T));

  001b4	e59f4050	 ldr         r4, [pc, #0x50]
  001b8	e59fe048	 ldr         lr, [pc, #0x48]
  001bc	e1a03000	 mov         r3, r0
  001c0	e1a00004	 mov         r0, r4
  001c4	e3a020c8	 mov         r2, #0xC8
  001c8	e3a01000	 mov         r1, #0
  001cc	e58e3000	 str         r3, [lr]
  001d0	eb000000	 bl          memset

; 212  : 
; 213  : 	// Set the DMA channels to their "uninitialized" state
; 214  :     XllpCAMERA.dma_channels[0] = 0xFF;

  001d4	e3a030ff	 mov         r3, #0xFF

; 215  : 	XllpCAMERA.dma_channels[1] = 0xFF;
; 216  : 	XllpCAMERA.dma_channels[2] = 0xFF;
; 217  : 
; 218  : 	NKDbgPrintfW(TEXT("pxa27x_camera: CameraInit-\r\n"));

  001d8	e5843068	 str         r3, [r4, #0x68]
  001dc	e3a030ff	 mov         r3, #0xFF
  001e0	e59f001c	 ldr         r0, [pc, #0x1C]
  001e4	e584306c	 str         r3, [r4, #0x6C]
  001e8	e3a030ff	 mov         r3, #0xFF
  001ec	e5843070	 str         r3, [r4, #0x70]
  001f0	eb000000	 bl          NKDbgPrintfW

; 219  : 
; 220  : 	return TRUE;

  001f4	e3a00001	 mov         r0, #1
  001f8		 |$L38226|

; 221  : } 

  001f8	e28dd008	 add         sp, sp, #8
  001fc	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00200	e12fff1e	 bx          lr
  00204		 |$L38742|
  00204	00000000	 DCD         |??_C@_1DK@BFLAGAFK@?$AAp?$AAx?$AAa?$AA2?$AA7?$AAx?$AA_?$AAc?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?3?$AA?5?$AAC?$AAa?$AAm?$AAe?$AAr@|
  00208	00000000	 DCD         |hShutDown|
  0020c	00000000	 DCD         |XllpCAMERA|
  00210	00000000	 DCD         |hCameraShutdownComplete|
  00214	00000000	 DCD         |??_C@_1CO@NGNPLHGF@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AAS?$AAh?$AAu?$AAt?$AAd?$AAo?$AAw?$AAn?$AAC?$AAo?$AAm?$AAp?$AAl?$AAe@|
  00218	00000000	 DCD         |hStillImageReady|
  0021c	00000000	 DCD         |??_C@_1CM@JBPBEKNK@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AAS?$AAt?$AAi?$AAl?$AAl?$AAI?$AAm?$AAa?$AAg?$AAe?$AAR?$AAe?$AAa?$AAd@|
  00220	00000000	 DCD         |hCameraFrameReady|
  00224	00000000	 DCD         |??_C@_1CI@KKLEGNCF@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AAF?$AAr?$AAa?$AAm?$AAe?$AAC?$AAo?$AAm?$AAp?$AAl?$AAe?$AAt?$AAe?$AA?$AA@|
  00228	00000000	 DCD         |??_C@_0BH@PBOFJJFL@CAM_Init?5?3?5v_pGPIORegs?$AA@|
  0022c	00000000	 DCD         |??_C@_0BG@IBDMMMKG@CAM_Init?5?3?5v_pClkRegs?$AA@|
  00230	00000000	 DCD         |??_C@_0BF@PAFAMGAD@CAM_Init?5?3?5v_pCIRegs?$AA@|
  00234	00000000	 DCD         |??_C@_0BG@HNJELJCK@CAM_Init?5?3?5v_pOSTRegs?$AA@|
  00238	00000000	 DCD         |??_C@_0BC@JDPBKHAF@CAM_Init?5?3?5v_pI2C?$AA@|
  0023c	00000000	 DCD         |??_C@_1EK@NNEALNOC@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?5?$AAD?$AAM?$AAA?$AA?3?$AA?5?$AAM?$AAa?$AAp?$AAV?$AAi?$AAe?$AAw?$AAO@|
  00240	00000000	 DCD         |pOSCR|
  00244	00000000	 DCD         |??_C@_1EO@EAMKEIPG@?$AAC?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?5?$AAD?$AAM?$AAA?$AA?3?$AA?5?$AAN?$AAo?$AA?5?$AAe?$AAx?$AAi?$AAs?$AAt@|
  00248	00000000	 DCD         |??_C@_1CE@CCBBDCAA@?$AAG?$AAd?$AAe?$AAD?$AAm?$AAa?$AAG?$AAl?$AAo?$AAb?$AAa?$AAl?$AAs?$AAF?$AAi?$AAl?$AAe?$AA?$AA@|
  0024c	00000000	 DCD         |??_C@_1FI@KHBFKLNE@?$AAp?$AAx?$AAa?$AA2?$AA7?$AAx?$AA_?$AAc?$AAa?$AAm?$AAe?$AAr?$AAa?$AA?3?$AA?5?$AAC?$AAa?$AAm?$AAe?$AAr@|
  00250		 |$M38738|

			 ENDP  ; |CameraInit|

	EXPORT	|CameraDeinit|

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

  00000			 AREA	 |.pdata$$CameraDeinit|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraDeinit| } ; comdat associative
|$T38750| DCD	|$L38749|
	DCD	0x40000200
; Function compile flags: /Ogsy

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

  00000		 |CameraDeinit| PROC

; 224  : {

  00000		 |$L38749|
  00000		 |$M38747|

; 225  : 	// TBD: Deallocate memory
; 226  : 
; 227  : 	return TRUE;

  00000	e3a00001	 mov         r0, #1

; 228  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M38748|

			 ENDP  ; |CameraDeinit|

	EXPORT	|CameraInterruptHandler|

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

  00000			 AREA	 |.pdata$$CameraInterruptHandler|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraInterruptHandler| } ; comdat associative
|$T38757| DCD	|$L38756|
	DCD	0x40000100
; Function compile flags: /Ogsy

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

  00000		 |CameraInterruptHandler| PROC

; 310  : {

  00000		 |$L38756|
  00000		 |$M38754|

; 311  : 
; 312  : }

  00000	e12fff1e	 bx          lr
  00004		 |$M38755|

			 ENDP  ; |CameraInterruptHandler|

	EXPORT	|CameraInterfaceInterruptHandler|

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

  00000			 AREA	 |.pdata$$CameraInterfaceInterruptHandler|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraInterfaceInterruptHandler| } ; comdat associative
|$T38764| DCD	|$L38763|
	DCD	0x40000100
; Function compile flags: /Ogsy

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

  00000		 |CameraInterfaceInterruptHandler| PROC

; 408  : {

  00000		 |$L38763|
  00000		 |$M38761|

; 409  : }

  00000	e12fff1e	 bx          lr
  00004		 |$M38762|

			 ENDP  ; |CameraInterfaceInterruptHandler|

	EXPORT	|CameraReadRegister|
	IMPORT	|XllpLock|
	IMPORT	|XllpUnlock|

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

  00000			 AREA	 |.pdata$$CameraReadRegister|, PDATA, SELECTION=5, ASSOC=|.text| { |CameraReadRegister| } ; comdat associative
|$T38773| DCD	|$L38772|
	DCD	0x40001401
; Function compile flags: /Ogsy

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

  00000		 |CameraReadRegister| PROC

; 425  : {

  00000		 |$L38772|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M38770|
  00004	e1a04001	 mov         r4, r1
  00008	e1a05000	 mov         r5, r0

; 426  : 	*bufP = 0;

⌨️ 快捷键说明

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