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

📄 common.cod

📁 wince6.0 arm LCD 驱动源码 DDshow
💻 COD
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.01.60511.01 

	TTL	D:\WINCE600\PLATFORM\M-stone\SRC\DRIVERS\Display\common\common.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:LIBCMT "
	DCB	"-defaultlib:OLDNAMES "

	EXPORT	|global_lcd| [ DATA ]

  00000			 AREA	 |.bss|, NOINIT
|global_lcd| %	0x4
	EXPORT	|LCDGetMode|
	IMPORT	|ActiveCreate|
	IMPORT	|LCDPanelSelect|
; File d:\wince600\platform\m-stone\src\drivers\display\common\common.c

  00000			 AREA	 |.pdata|, PDATA
|$T39998| DCD	|$LN8@LCDGetMode|
	DCD	0x40002402
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDGetMode| PROC

; 44   : {

  00000		 |$LN8@LCDGetMode|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M39995|
  00008	e1a04003	 mov         r4, r3
  0000c	e1a05002	 mov         r5, r2
  00010	e1a06001	 mov         r6, r1
  00014	e1a07000	 mov         r7, r0

; 45   :     void* panel = NULL;

  00018	e3a03000	 mov         r3, #0

; 46   :     BOOL is_active;
; 47   :     //set_lcd_domain(TRUE);
; 48   :     
; 49   :     is_active = LCDPanelSelect(&panel);

  0001c	e28d0000	 add         r0, sp, #0
  00020	e58d3000	 str         r3, [sp]
  00024	eb000000	 bl          LCDPanelSelect

; 50   :     
; 51   :     if (!panel)

  00028	e59de000	 ldr         lr, [sp]
  0002c	e35e0000	 cmp         lr, #0

; 52   :         return PXA_STATUS_FAILURE;

  00030	03a00001	 moveq       r0, #1
  00034	0a000011	 beq         |$LN4@LCDGetMode|

; 53   : 
; 54   :     if (is_active)

  00038	e3500000	 cmp         r0, #0
  0003c	0a00000e	 beq         |$LN1@LCDGetMode|

; 55   :     {
; 56   :         active_panel_t *active_panel = (active_panel_t*)panel;
; 57   :         *width = active_panel->config.width;

  00040	e59e300c	 ldr         r3, [lr, #0xC]

; 58   :         *height = active_panel->config.height;
; 59   :         *bpp = active_panel->config.bpp;
; 60   :         *is_smart = FALSE;

  00044	e3a02000	 mov         r2, #0

; 61   :         global_lcd = ActiveCreate(active_panel);

  00048	e1a0000e	 mov         r0, lr
  0004c	e5873000	 str         r3, [r7]
  00050	e59e3010	 ldr         r3, [lr, #0x10]
  00054	e5863000	 str         r3, [r6]
  00058	e59e3014	 ldr         r3, [lr, #0x14]
  0005c	e5853000	 str         r3, [r5]
  00060	e5842000	 str         r2, [r4]
  00064	eb000000	 bl          ActiveCreate
  00068	e59f301c	 ldr         r3, [pc, #0x1C]
  0006c	e3500000	 cmp         r0, #0
  00070	e5830000	 str         r0, [r3]

; 62   :         if (!global_lcd)
; 63   :             return PXA_STATUS_NO_RESOURCES;

  00074	03a00005	 moveq       r0, #5
  00078	0a000000	 beq         |$LN4@LCDGetMode|
  0007c		 |$LN1@LCDGetMode|

; 64   :     }
; 65   : 
; 66   :     return PXA_STATUS_SUCCESS;

  0007c	e3a00000	 mov         r0, #0
  00080		 |$LN4@LCDGetMode|

; 67   :     //else
; 68   :     //    global_lcd = SmartCreate((smart_panel_t*)panel);
; 69   : }

  00080	e28dd004	 add         sp, sp, #4
  00084	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  00088	e12fff1e	 bx          lr
  0008c		 |$LN9@LCDGetMode|
  0008c		 |$LN10@LCDGetMode|
  0008c	00000000	 DCD         |global_lcd|
  00090		 |$M39996|

			 ENDP  ; |LCDGetMode|

	EXPORT	|LCDInit|

  00000			 AREA	 |.pdata|, PDATA
|$T40010| DCD	|$LN5@LCDInit|
	DCD	0x40000a01
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDInit| PROC

; 73   : {

  00000		 |$LN5@LCDInit|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M40007|
  00004	e1a01000	 mov         r1, r0

; 74   :     return global_lcd->init(global_lcd, base_phy);

  00008	e59f3014	 ldr         r3, [pc, #0x14]
  0000c	e5930000	 ldr         r0, [r3]
  00010	e5903000	 ldr         r3, [r0]
  00014	e1a0e00f	 mov         lr, pc
  00018	e12fff13	 bx          r3

; 75   : }

  0001c	e49de004	 ldr         lr, [sp], #4
  00020	e12fff1e	 bx          lr
  00024		 |$LN6@LCDInit|
  00024		 |$LN7@LCDInit|
  00024	00000000	 DCD         |global_lcd|
  00028		 |$M40008|

			 ENDP  ; |LCDInit|

	EXPORT	|LCDResume|

  00000			 AREA	 |.pdata|, PDATA
|$T40019| DCD	|$LN5@LCDResume|
	DCD	0x40000901
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDResume| PROC

; 78   : {

  00000		 |$LN5@LCDResume|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M40016|

; 79   :     //set_lcd_domain(TRUE);
; 80   :     global_lcd->resume(global_lcd);

  00004	e59f3014	 ldr         r3, [pc, #0x14]
  00008	e5930000	 ldr         r0, [r3]
  0000c	e5903004	 ldr         r3, [r0, #4]
  00010	e1a0e00f	 mov         lr, pc
  00014	e12fff13	 bx          r3

; 81   : }

  00018	e49de004	 ldr         lr, [sp], #4
  0001c	e12fff1e	 bx          lr
  00020		 |$LN6@LCDResume|
  00020		 |$LN7@LCDResume|
  00020	00000000	 DCD         |global_lcd|
  00024		 |$M40017|

			 ENDP  ; |LCDResume|

	EXPORT	|LCDSuspend|

  00000			 AREA	 |.pdata|, PDATA
|$T40028| DCD	|$LN5@LCDSuspend|
	DCD	0x40000901
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDSuspend| PROC

; 84   : {

  00000		 |$LN5@LCDSuspend|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M40025|

; 85   :     global_lcd->suspend(global_lcd);

  00004	e59f3014	 ldr         r3, [pc, #0x14]
  00008	e5930000	 ldr         r0, [r3]
  0000c	e5903008	 ldr         r3, [r0, #8]
  00010	e1a0e00f	 mov         lr, pc
  00014	e12fff13	 bx          r3

; 86   :     //set_lcd_domain(FALSE);
; 87   : }

  00018	e49de004	 ldr         lr, [sp], #4
  0001c	e12fff1e	 bx          lr
  00020		 |$LN6@LCDSuspend|
  00020		 |$LN7@LCDSuspend|
  00020	00000000	 DCD         |global_lcd|
  00024		 |$M40026|

			 ENDP  ; |LCDSuspend|

	EXPORT	|LCDFlip|

  00000			 AREA	 |.pdata|, PDATA
|$T40038| DCD	|$LN5@LCDFlip|
	DCD	0x40000a01
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDFlip| PROC

; 90   : {

  00000		 |$LN5@LCDFlip|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M40035|
  00004	e1a01000	 mov         r1, r0

; 91   :     global_lcd->flip(global_lcd, phy_addr);

  00008	e59f3014	 ldr         r3, [pc, #0x14]
  0000c	e5930000	 ldr         r0, [r3]
  00010	e590300c	 ldr         r3, [r0, #0xC]
  00014	e1a0e00f	 mov         lr, pc
  00018	e12fff13	 bx          r3

; 92   : }

  0001c	e49de004	 ldr         lr, [sp], #4
  00020	e12fff1e	 bx          lr
  00024		 |$LN6@LCDFlip|
  00024		 |$LN7@LCDFlip|
  00024	00000000	 DCD         |global_lcd|
  00028		 |$M40036|

			 ENDP  ; |LCDFlip|

	EXPORT	|LCDOverlay2Enable|

  00000			 AREA	 |.pdata|, PDATA
|$T40051| DCD	|$LN5@LCDOverlay|
	DCD	0x40000b01
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDOverlay2Enable| PROC

; 95   : {

  00000		 |$LN5@LCDOverlay|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M40048|
  00004	e1a02001	 mov         r2, r1
  00008	e1a01000	 mov         r1, r0

; 96   :     return global_lcd->overlay2_enable(global_lcd, overlay, phy_addrs);

  0000c	e59f3014	 ldr         r3, [pc, #0x14]
  00010	e5930000	 ldr         r0, [r3]
  00014	e5903010	 ldr         r3, [r0, #0x10]
  00018	e1a0e00f	 mov         lr, pc
  0001c	e12fff13	 bx          r3

; 97   : }

  00020	e49de004	 ldr         lr, [sp], #4
  00024	e12fff1e	 bx          lr
  00028		 |$LN6@LCDOverlay|
  00028		 |$LN7@LCDOverlay|
  00028	00000000	 DCD         |global_lcd|
  0002c		 |$M40049|

			 ENDP  ; |LCDOverlay2Enable|

	EXPORT	|LCDOverlay2DynChange|

  00000			 AREA	 |.pdata|, PDATA
|$T40065| DCD	|$LN5@LCDOverlay@2|
	DCD	0x40000c01
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDOverlay2DynChange| PROC

; 100  : {

  00000		 |$LN5@LCDOverlay@2|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M40062|
  00004	e1a03002	 mov         r3, r2
  00008	e1a02001	 mov         r2, r1
  0000c	e1a01000	 mov         r1, r0

; 101  :     return global_lcd->overlay2_dyn_change(global_lcd, overlay, phy_addrs, change_flag);

  00010	e59f0014	 ldr         r0, [pc, #0x14]
  00014	e5900000	 ldr         r0, [r0]
  00018	e5904014	 ldr         r4, [r0, #0x14]
  0001c	e1a0e00f	 mov         lr, pc
  00020	e12fff14	 bx          r4

; 102  : }

  00024	e8bd4010	 ldmia       sp!, {r4, lr}
  00028	e12fff1e	 bx          lr
  0002c		 |$LN6@LCDOverlay@2|
  0002c		 |$LN7@LCDOverlay@2|
  0002c	00000000	 DCD         |global_lcd|
  00030		 |$M40063|

			 ENDP  ; |LCDOverlay2DynChange|

	EXPORT	|LCDOverlay2Disable|

  00000			 AREA	 |.pdata|, PDATA
|$T40074| DCD	|$LN5@LCDOverlay@3|
	DCD	0x40000901
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDOverlay2Disable| PROC

; 105  : {

  00000		 |$LN5@LCDOverlay@3|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M40071|

; 106  :     global_lcd->overlay2_disable(global_lcd);

  00004	e59f3014	 ldr         r3, [pc, #0x14]
  00008	e5930000	 ldr         r0, [r3]
  0000c	e5903018	 ldr         r3, [r0, #0x18]
  00010	e1a0e00f	 mov         lr, pc
  00014	e12fff13	 bx          r3

; 107  : }

  00018	e49de004	 ldr         lr, [sp], #4
  0001c	e12fff1e	 bx          lr
  00020		 |$LN6@LCDOverlay@3|
  00020		 |$LN7@LCDOverlay@3|
  00020	00000000	 DCD         |global_lcd|
  00024		 |$M40072|

			 ENDP  ; |LCDOverlay2Disable|

	END

⌨️ 快捷键说明

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