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

📄 active.cod

📁 wince6.0 arm LCD 驱动源码 DDshow
💻 COD
📖 第 1 页 / 共 2 页
字号:
  002ec	e080000e	 add         r0, r0, lr
  002f0	eb000000	 bl          PXA_LCDInitDMADescriptor
  002f4	eaffffdf	 b           |$LN2@ActiveOver|
  002f8		 |$LN1@ActiveOver|

; 85   :     
; 86   :     return PXA_LCDActiveOverlay2Enable(lcd->lcd_regs, overlay, &lcd->dma_descs[2]);

  002f8	e59d301c	 ldr         r3, [sp, #0x1C]
  002fc	e2833024	 add         r3, r3, #0x24
  00300	e5933000	 ldr         r3, [r3]
  00304	e2832020	 add         r2, r3, #0x20
  00308	e59d1020	 ldr         r1, [sp, #0x20]
  0030c	e59d301c	 ldr         r3, [sp, #0x1C]
  00310	e283301c	 add         r3, r3, #0x1C
  00314	e5930000	 ldr         r0, [r3]
  00318	eb000000	 bl          PXA_LCDActiveOverlay2Enable
  0031c	e58d0008	 str         r0, [sp, #8]
  00320	e59d3008	 ldr         r3, [sp, #8]
  00324	e58d3004	 str         r3, [sp, #4]

; 87   : }

  00328	e59d0004	 ldr         r0, [sp, #4]
  0032c	e28dd00c	 add         sp, sp, #0xC
  00330	e89d6030	 ldmia       sp, {r4, r5, sp, lr}
  00334	e12fff1e	 bx          lr
  00338		 |$M41393|

			 ENDP  ; |ActiveOverlay2Enable|

	EXPORT	|ActiveOverlay2DynChange|
	IMPORT	|PXA_LCDActiveOverlay2DynChange|

  00028			 AREA	 |.pdata|, PDATA
|$T41401| DCD	|$LN8@ActiveOver@2|
	DCD	0x40003804
; Function compile flags: /Odtp

  00338			 AREA	 |.text|, CODE, ARM

  00338		 |ActiveOverlay2DynChange| PROC

; 90   : {

  00338		 |$LN8@ActiveOver@2|
  00338	e1a0c00d	 mov         r12, sp
  0033c	e92d000f	 stmdb       sp!, {r0 - r3}
  00340	e92d5030	 stmdb       sp!, {r4, r5, r12, lr}
  00344	e24dd00c	 sub         sp, sp, #0xC
  00348		 |$M41398|

; 91   :     UINT i;
; 92   : 
; 93   :     for (i = 0; i < 3; i++)

  00348	e3a03000	 mov         r3, #0
  0034c	e58d3000	 str         r3, [sp]
  00350	ea000002	 b           |$LN3@ActiveOver@2|
  00354		 |$LN2@ActiveOver@2|
  00354	e59d3000	 ldr         r3, [sp]
  00358	e2833001	 add         r3, r3, #1
  0035c	e58d3000	 str         r3, [sp]
  00360		 |$LN3@ActiveOver@2|
  00360	e59d3000	 ldr         r3, [sp]
  00364	e3530003	 cmp         r3, #3
  00368	2a000019	 bcs         |$LN1@ActiveOver@2|

; 94   :         PXA_LCDInitDMADescriptor(&lcd->dma_descs[2 + i], lcd->dma_descs[2 + i].FDADR, phy_addrs[i], 0);

  0036c	e3a03000	 mov         r3, #0
  00370	e59d0000	 ldr         r0, [sp]
  00374	e3a02004	 mov         r2, #4
  00378	e0010290	 mul         r1, r0, r2
  0037c	e59d2024	 ldr         r2, [sp, #0x24]
  00380	e0822001	 add         r2, r2, r1
  00384	e5922000	 ldr         r2, [r2]
  00388	e59d101c	 ldr         r1, [sp, #0x1C]
  0038c	e2814024	 add         r4, r1, #0x24
  00390	e59d1000	 ldr         r1, [sp]
  00394	e281e002	 add         lr, r1, #2
  00398	e3a01010	 mov         r1, #0x10
  0039c	e000019e	 mul         r0, lr, r1
  003a0	e5941000	 ldr         r1, [r4]
  003a4	e0811000	 add         r1, r1, r0
  003a8	e5911000	 ldr         r1, [r1]
  003ac	e59d001c	 ldr         r0, [sp, #0x1C]
  003b0	e2805024	 add         r5, r0, #0x24
  003b4	e59d0000	 ldr         r0, [sp]
  003b8	e2804002	 add         r4, r0, #2
  003bc	e3a00010	 mov         r0, #0x10
  003c0	e00e0094	 mul         lr, r4, r0
  003c4	e5950000	 ldr         r0, [r5]
  003c8	e080000e	 add         r0, r0, lr
  003cc	eb000000	 bl          PXA_LCDInitDMADescriptor
  003d0	eaffffdf	 b           |$LN2@ActiveOver@2|
  003d4		 |$LN1@ActiveOver@2|

; 95   :     
; 96   :     return PXA_LCDActiveOverlay2DynChange(lcd->lcd_regs, overlay, &lcd->dma_descs[2], change_flag);

  003d4	e59d3028	 ldr         r3, [sp, #0x28]
  003d8	e59d201c	 ldr         r2, [sp, #0x1C]
  003dc	e2822024	 add         r2, r2, #0x24
  003e0	e5922000	 ldr         r2, [r2]
  003e4	e2822020	 add         r2, r2, #0x20
  003e8	e59d1020	 ldr         r1, [sp, #0x20]
  003ec	e59d001c	 ldr         r0, [sp, #0x1C]
  003f0	e280001c	 add         r0, r0, #0x1C
  003f4	e5900000	 ldr         r0, [r0]
  003f8	eb000000	 bl          PXA_LCDActiveOverlay2DynChange
  003fc	e58d0008	 str         r0, [sp, #8]
  00400	e59d3008	 ldr         r3, [sp, #8]
  00404	e58d3004	 str         r3, [sp, #4]

; 97   : }

  00408	e59d0004	 ldr         r0, [sp, #4]
  0040c	e28dd00c	 add         sp, sp, #0xC
  00410	e89d6030	 ldmia       sp, {r4, r5, sp, lr}
  00414	e12fff1e	 bx          lr
  00418		 |$M41399|

			 ENDP  ; |ActiveOverlay2DynChange|

	EXPORT	|ActiveOverlay2Disable|
	IMPORT	|PXA_LCDActiveOverlay2Disable|

  00030			 AREA	 |.pdata|, PDATA
|$T41406| DCD	|$LN5@ActiveOver@3|
	DCD	0x40000903
; Function compile flags: /Odtp

  00418			 AREA	 |.text|, CODE, ARM

  00418		 |ActiveOverlay2Disable| PROC

; 100  : {

  00418		 |$LN5@ActiveOver@3|
  00418	e1a0c00d	 mov         r12, sp
  0041c	e92d0001	 stmdb       sp!, {r0}
  00420	e92d5000	 stmdb       sp!, {r12, lr}
  00424		 |$M41403|

; 101  :     PXA_LCDActiveOverlay2Disable(lcd->lcd_regs);

  00424	e59d3008	 ldr         r3, [sp, #8]
  00428	e283301c	 add         r3, r3, #0x1C
  0042c	e5930000	 ldr         r0, [r3]
  00430	eb000000	 bl          PXA_LCDActiveOverlay2Disable

; 102  : }

  00434	e89d6000	 ldmia       sp, {sp, lr}
  00438	e12fff1e	 bx          lr
  0043c		 |$M41404|

			 ENDP  ; |ActiveOverlay2Disable|

	EXPORT	|ActiveCreate|
	IMPORT	|HalAllocateCommonBuffer|
	IMPORT	|PXA_CTX_GetRegAddr2|
	IMPORT	|malloc|

  00038			 AREA	 |.pdata|, PDATA
|$T41412| DCD	|$LN9@ActiveCrea|
	DCD	0x40006804
; Function compile flags: /Odtp

  0043c			 AREA	 |.text|, CODE, ARM

  0043c		 |ActiveCreate| PROC

; 105  : {

  0043c		 |$LN9@ActiveCrea|
  0043c	e1a0c00d	 mov         r12, sp
  00440	e92d0001	 stmdb       sp!, {r0}
  00444	e92d5030	 stmdb       sp!, {r4, r5, r12, lr}
  00448	e24dd030	 sub         sp, sp, #0x30
  0044c		 |$M41409|

; 106  :     PHYSICAL_ADDRESS   phy_addr;
; 107  :     DMA_ADAPTER_OBJECT adapter;
; 108  :     UINT32 descs_phy;
; 109  :     UINT i;
; 110  : 
; 111  :     active_lcd_t *lcd = (active_lcd_t*)malloc(sizeof(active_lcd_t));

  0044c	e3a0002c	 mov         r0, #0x2C
  00450	eb000000	 bl          malloc
  00454	e58d0024	 str         r0, [sp, #0x24]
  00458	e59d3024	 ldr         r3, [sp, #0x24]
  0045c	e58d3000	 str         r3, [sp]

; 112  :     
; 113  :     if (!lcd)

  00460	e59d3000	 ldr         r3, [sp]
  00464	e3530000	 cmp         r3, #0
  00468	1a000002	 bne         |$LN4@ActiveCrea|

; 114  :         return 0;

  0046c	e3a03000	 mov         r3, #0
  00470	e58d3020	 str         r3, [sp, #0x20]
  00474	ea00004d	 b           |$LN5@ActiveCrea|
  00478		 |$LN4@ActiveCrea|

; 115  : 
; 116  :     lcd->lcd_regs = (lcd_registers_t*)PXA_CTX_GetRegAddr(PXA_PERIPHERAL_REGIDX_LCD);

  00478	e3a01000	 mov         r1, #0
  0047c	e3a00021	 mov         r0, #0x21
  00480	eb000000	 bl          PXA_CTX_GetRegAddr2
  00484	e58d0028	 str         r0, [sp, #0x28]
  00488	e59d3000	 ldr         r3, [sp]
  0048c	e283201c	 add         r2, r3, #0x1C
  00490	e59d3028	 ldr         r3, [sp, #0x28]
  00494	e5823000	 str         r3, [r2]

; 117  : 
; 118  :     lcd->dma_descs = (lcd_dma_descriptor_t*)HalAllocateCommonBuffer(&adapter, sizeof(lcd_dma_descriptor_t) * LCD_DMA_CH_MAX, &phy_addr, FALSE);

  00498	e3a03000	 mov         r3, #0
  0049c	e28d2008	 add         r2, sp, #8
  004a0	e3a01050	 mov         r1, #0x50
  004a4	e28d0014	 add         r0, sp, #0x14
  004a8	eb000000	 bl          HalAllocateCommonBuffer
  004ac	e58d002c	 str         r0, [sp, #0x2C]
  004b0	e59d3000	 ldr         r3, [sp]
  004b4	e2832024	 add         r2, r3, #0x24
  004b8	e59d302c	 ldr         r3, [sp, #0x2C]
  004bc	e5823000	 str         r3, [r2]

; 119  :     descs_phy = (UINT32)phy_addr.LowPart;

  004c0	e59d3008	 ldr         r3, [sp, #8]
  004c4	e58d3010	 str         r3, [sp, #0x10]

; 120  : 
; 121  :     for (i = 0; i < LCD_DMA_CH_MAX; i++)

  004c8	e3a03000	 mov         r3, #0
  004cc	e58d3004	 str         r3, [sp, #4]
  004d0	ea000002	 b           |$LN3@ActiveCrea|
  004d4		 |$LN2@ActiveCrea|
  004d4	e59d3004	 ldr         r3, [sp, #4]
  004d8	e2833001	 add         r3, r3, #1
  004dc	e58d3004	 str         r3, [sp, #4]
  004e0		 |$LN3@ActiveCrea|
  004e0	e59d3004	 ldr         r3, [sp, #4]
  004e4	e3530005	 cmp         r3, #5
  004e8	2a00000f	 bcs         |$LN1@ActiveCrea|

; 122  :         PXA_LCDInitDMADescriptor(&lcd->dma_descs[i], descs_phy + i * sizeof(lcd_dma_descriptor_t), 0, 0);

  004ec	e3a03000	 mov         r3, #0
  004f0	e3a02000	 mov         r2, #0
  004f4	e59de004	 ldr         lr, [sp, #4]
  004f8	e3a01010	 mov         r1, #0x10
  004fc	e000019e	 mul         r0, lr, r1
  00500	e59d1010	 ldr         r1, [sp, #0x10]
  00504	e0811000	 add         r1, r1, r0
  00508	e59d0000	 ldr         r0, [sp]
  0050c	e2805024	 add         r5, r0, #0x24
  00510	e59d4004	 ldr         r4, [sp, #4]
  00514	e3a00010	 mov         r0, #0x10
  00518	e00e0094	 mul         lr, r4, r0
  0051c	e5950000	 ldr         r0, [r5]
  00520	e080000e	 add         r0, r0, lr
  00524	eb000000	 bl          PXA_LCDInitDMADescriptor
  00528	eaffffe9	 b           |$LN2@ActiveCrea|
  0052c		 |$LN1@ActiveCrea|

; 123  : 
; 124  :     (void*)lcd->base.init = (void*)ActiveInit;

  0052c	e59f20a4	 ldr         r2, [pc, #0xA4]
  00530	e59d3000	 ldr         r3, [sp]
  00534	e5832000	 str         r2, [r3]

; 125  :     (void*)lcd->base.resume = (void*)ActiveResume;

  00538	e59d3000	 ldr         r3, [sp]
  0053c	e2832004	 add         r2, r3, #4
  00540	e59f308c	 ldr         r3, [pc, #0x8C]
  00544	e5823000	 str         r3, [r2]

; 126  :     (void*)lcd->base.suspend = (void*)ActiveSuspend;

  00548	e59d3000	 ldr         r3, [sp]
  0054c	e2832008	 add         r2, r3, #8
  00550	e59f3078	 ldr         r3, [pc, #0x78]
  00554	e5823000	 str         r3, [r2]

; 127  :     (void*)lcd->base.flip = (void*)ActiveFlip;

  00558	e59d3000	 ldr         r3, [sp]
  0055c	e283200c	 add         r2, r3, #0xC
  00560	e59f3064	 ldr         r3, [pc, #0x64]
  00564	e5823000	 str         r3, [r2]

; 128  :     (void*)lcd->base.overlay2_enable = (void*)ActiveOverlay2Enable;

  00568	e59d3000	 ldr         r3, [sp]
  0056c	e2832010	 add         r2, r3, #0x10
  00570	e59f3050	 ldr         r3, [pc, #0x50]
  00574	e5823000	 str         r3, [r2]

; 129  :     (void*)lcd->base.overlay2_disable = (void*)ActiveOverlay2Disable;

  00578	e59d3000	 ldr         r3, [sp]
  0057c	e2832018	 add         r2, r3, #0x18
  00580	e59f303c	 ldr         r3, [pc, #0x3C]
  00584	e5823000	 str         r3, [r2]

; 130  :     (void*)lcd->base.overlay2_dyn_change = (void*)ActiveOverlay2DynChange;

  00588	e59d3000	 ldr         r3, [sp]
  0058c	e2832014	 add         r2, r3, #0x14
  00590	e59f3028	 ldr         r3, [pc, #0x28]
  00594	e5823000	 str         r3, [r2]

; 131  :     lcd->panel = panel;

  00598	e59d3000	 ldr         r3, [sp]
  0059c	e2832028	 add         r2, r3, #0x28
  005a0	e59d3040	 ldr         r3, [sp, #0x40]
  005a4	e5823000	 str         r3, [r2]

; 132  :     return (lcd_t*)lcd;

  005a8	e59d3000	 ldr         r3, [sp]
  005ac	e58d3020	 str         r3, [sp, #0x20]
  005b0		 |$LN5@ActiveCrea|

; 133  : }

  005b0	e59d0020	 ldr         r0, [sp, #0x20]
  005b4	e28dd030	 add         sp, sp, #0x30
  005b8	e89d6030	 ldmia       sp, {r4, r5, sp, lr}
  005bc	e12fff1e	 bx          lr
  005c0		 |$LN10@ActiveCrea|
  005c0		 |$LN11@ActiveCrea|
  005c0	00000000	 DCD         |ActiveOverlay2DynChange|
  005c4		 |$LN12@ActiveCrea|
  005c4	00000000	 DCD         |ActiveOverlay2Disable|
  005c8		 |$LN13@ActiveCrea|
  005c8	00000000	 DCD         |ActiveOverlay2Enable|
  005cc		 |$LN14@ActiveCrea|
  005cc	00000000	 DCD         |ActiveFlip|
  005d0		 |$LN15@ActiveCrea|
  005d0	00000000	 DCD         |ActiveSuspend|
  005d4		 |$LN16@ActiveCrea|
  005d4	00000000	 DCD         |ActiveResume|
  005d8		 |$LN17@ActiveCrea|
  005d8	00000000	 DCD         |ActiveInit|
  005dc		 |$M41410|

			 ENDP  ; |ActiveCreate|

	END

⌨️ 快捷键说明

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