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

📄 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|

  00000			 AREA	 |.pdata|, PDATA
|$T39942| DCD	|$LN8@LCDGetMode|
	DCD	0x40003c04
; Function compile flags: /Odtp
; File d:\wince600\platform\m-stone\src\drivers\display\common\common.c

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |LCDGetMode| PROC

; 44   : {

  00000		 |$LN8@LCDGetMode|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d000f	 stmdb       sp!, {r0 - r3}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd018	 sub         sp, sp, #0x18
  00010		 |$M39939|

; 45   :     void* panel = NULL;

  00010	e3a03000	 mov         r3, #0
  00014	e58d3004	 str         r3, [sp, #4]

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

  00018	e28d0004	 add         r0, sp, #4
  0001c	eb000000	 bl          LCDPanelSelect
  00020	e58d0010	 str         r0, [sp, #0x10]
  00024	e59d3010	 ldr         r3, [sp, #0x10]
  00028	e58d3000	 str         r3, [sp]

; 50   :     
; 51   :     if (!panel)

  0002c	e59d3004	 ldr         r3, [sp, #4]
  00030	e3530000	 cmp         r3, #0
  00034	1a000002	 bne         |$LN3@LCDGetMode|

; 52   :         return PXA_STATUS_FAILURE;

  00038	e3a03001	 mov         r3, #1
  0003c	e58d300c	 str         r3, [sp, #0xC]
  00040	ea000025	 b           |$LN4@LCDGetMode|
  00044		 |$LN3@LCDGetMode|

; 53   : 
; 54   :     if (is_active)

  00044	e59d3000	 ldr         r3, [sp]
  00048	e3530000	 cmp         r3, #0
  0004c	0a000020	 beq         |$LN2@LCDGetMode|

; 55   :     {
; 56   :         active_panel_t *active_panel = (active_panel_t*)panel;

  00050	e59d3004	 ldr         r3, [sp, #4]
  00054	e58d3008	 str         r3, [sp, #8]

; 57   :         *width = active_panel->config.width;

  00058	e59d3008	 ldr         r3, [sp, #8]
  0005c	e283300c	 add         r3, r3, #0xC
  00060	e5932000	 ldr         r2, [r3]
  00064	e59d3020	 ldr         r3, [sp, #0x20]
  00068	e5832000	 str         r2, [r3]

; 58   :         *height = active_panel->config.height;

  0006c	e59d3008	 ldr         r3, [sp, #8]
  00070	e2833010	 add         r3, r3, #0x10
  00074	e5932000	 ldr         r2, [r3]
  00078	e59d3024	 ldr         r3, [sp, #0x24]
  0007c	e5832000	 str         r2, [r3]

; 59   :         *bpp = active_panel->config.bpp;

  00080	e59d3008	 ldr         r3, [sp, #8]
  00084	e2833014	 add         r3, r3, #0x14
  00088	e5932000	 ldr         r2, [r3]
  0008c	e59d3028	 ldr         r3, [sp, #0x28]
  00090	e5832000	 str         r2, [r3]

; 60   :         *is_smart = FALSE;

  00094	e59d202c	 ldr         r2, [sp, #0x2C]
  00098	e3a03000	 mov         r3, #0
  0009c	e5823000	 str         r3, [r2]

; 61   :         global_lcd = ActiveCreate(active_panel);

  000a0	e59d0008	 ldr         r0, [sp, #8]
  000a4	eb000000	 bl          ActiveCreate
  000a8	e58d0014	 str         r0, [sp, #0x14]
  000ac	e59d2014	 ldr         r2, [sp, #0x14]
  000b0	e59f3034	 ldr         r3, [pc, #0x34]
  000b4	e5832000	 str         r2, [r3]

; 62   :         if (!global_lcd)

  000b8	e59f302c	 ldr         r3, [pc, #0x2C]
  000bc	e5933000	 ldr         r3, [r3]
  000c0	e3530000	 cmp         r3, #0
  000c4	1a000002	 bne         |$LN1@LCDGetMode|

; 63   :             return PXA_STATUS_NO_RESOURCES;

  000c8	e3a03005	 mov         r3, #5
  000cc	e58d300c	 str         r3, [sp, #0xC]
  000d0	ea000001	 b           |$LN4@LCDGetMode|
  000d4		 |$LN1@LCDGetMode|
  000d4		 |$LN2@LCDGetMode|

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

  000d4	e3a03000	 mov         r3, #0
  000d8	e58d300c	 str         r3, [sp, #0xC]
  000dc		 |$LN4@LCDGetMode|

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

  000dc	e59d000c	 ldr         r0, [sp, #0xC]
  000e0	e28dd018	 add         sp, sp, #0x18
  000e4	e89d6000	 ldmia       sp, {sp, lr}
  000e8	e12fff1e	 bx          lr
  000ec		 |$LN9@LCDGetMode|
  000ec		 |$LN10@LCDGetMode|
  000ec	00000000	 DCD         |global_lcd|
  000f0		 |$M39940|

			 ENDP  ; |LCDGetMode|

	EXPORT	|LCDInit|

  00008			 AREA	 |.pdata|, PDATA
|$T39950| DCD	|$LN5@LCDInit|
	DCD	0x40001404
; Function compile flags: /Odtp

  000f0			 AREA	 |.text|, CODE, ARM

  000f0		 |LCDInit| PROC

; 73   : {

  000f0		 |$LN5@LCDInit|
  000f0	e1a0c00d	 mov         r12, sp
  000f4	e92d0001	 stmdb       sp!, {r0}
  000f8	e92d5000	 stmdb       sp!, {r12, lr}
  000fc	e24dd008	 sub         sp, sp, #8
  00100		 |$M39947|

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

  00100	e59d1010	 ldr         r1, [sp, #0x10]
  00104	e59f3030	 ldr         r3, [pc, #0x30]
  00108	e5930000	 ldr         r0, [r3]
  0010c	e59f3028	 ldr         r3, [pc, #0x28]
  00110	e5933000	 ldr         r3, [r3]
  00114	e5933000	 ldr         r3, [r3]
  00118	e1a0e00f	 mov         lr, pc
  0011c	e12fff13	 bx          r3
  00120	e58d0004	 str         r0, [sp, #4]
  00124	e59d3004	 ldr         r3, [sp, #4]
  00128	e58d3000	 str         r3, [sp]

; 75   : }

  0012c	e59d0000	 ldr         r0, [sp]
  00130	e28dd008	 add         sp, sp, #8
  00134	e89d6000	 ldmia       sp, {sp, lr}
  00138	e12fff1e	 bx          lr
  0013c		 |$LN6@LCDInit|
  0013c		 |$LN7@LCDInit|
  0013c	00000000	 DCD         |global_lcd|
  00140		 |$M39948|

			 ENDP  ; |LCDInit|

	EXPORT	|LCDResume|

  00010			 AREA	 |.pdata|, PDATA
|$T39957| DCD	|$LN5@LCDResume|
	DCD	0x40000c01
; Function compile flags: /Odtp

  00140			 AREA	 |.text|, CODE, ARM

  00140		 |LCDResume| PROC

; 78   : {

  00140		 |$LN5@LCDResume|
  00140	e52de004	 str         lr, [sp, #-4]!
  00144		 |$M39954|

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

  00144	e59f3020	 ldr         r3, [pc, #0x20]
  00148	e5930000	 ldr         r0, [r3]
  0014c	e59f3018	 ldr         r3, [pc, #0x18]
  00150	e5933000	 ldr         r3, [r3]
  00154	e2833004	 add         r3, r3, #4
  00158	e5933000	 ldr         r3, [r3]
  0015c	e1a0e00f	 mov         lr, pc
  00160	e12fff13	 bx          r3

; 81   : }

  00164	e49de004	 ldr         lr, [sp], #4
  00168	e12fff1e	 bx          lr
  0016c		 |$LN6@LCDResume|
  0016c		 |$LN7@LCDResume|
  0016c	00000000	 DCD         |global_lcd|
  00170		 |$M39955|

			 ENDP  ; |LCDResume|

	EXPORT	|LCDSuspend|

  00018			 AREA	 |.pdata|, PDATA
|$T39964| DCD	|$LN5@LCDSuspend|
	DCD	0x40000c01
; Function compile flags: /Odtp

  00170			 AREA	 |.text|, CODE, ARM

  00170		 |LCDSuspend| PROC

; 84   : {

  00170		 |$LN5@LCDSuspend|
  00170	e52de004	 str         lr, [sp, #-4]!
  00174		 |$M39961|

; 85   :     global_lcd->suspend(global_lcd);

  00174	e59f3020	 ldr         r3, [pc, #0x20]
  00178	e5930000	 ldr         r0, [r3]
  0017c	e59f3018	 ldr         r3, [pc, #0x18]
  00180	e5933000	 ldr         r3, [r3]
  00184	e2833008	 add         r3, r3, #8
  00188	e5933000	 ldr         r3, [r3]
  0018c	e1a0e00f	 mov         lr, pc
  00190	e12fff13	 bx          r3

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

  00194	e49de004	 ldr         lr, [sp], #4
  00198	e12fff1e	 bx          lr
  0019c		 |$LN6@LCDSuspend|
  0019c		 |$LN7@LCDSuspend|
  0019c	00000000	 DCD         |global_lcd|
  001a0		 |$M39962|

			 ENDP  ; |LCDSuspend|

	EXPORT	|LCDFlip|

  00020			 AREA	 |.pdata|, PDATA
|$T39971| DCD	|$LN5@LCDFlip|
	DCD	0x40000f03
; Function compile flags: /Odtp

  001a0			 AREA	 |.text|, CODE, ARM

  001a0		 |LCDFlip| PROC

; 90   : {

  001a0		 |$LN5@LCDFlip|
  001a0	e1a0c00d	 mov         r12, sp
  001a4	e92d0001	 stmdb       sp!, {r0}
  001a8	e92d5000	 stmdb       sp!, {r12, lr}
  001ac		 |$M39968|

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

  001ac	e59d1008	 ldr         r1, [sp, #8]
  001b0	e59f3020	 ldr         r3, [pc, #0x20]
  001b4	e5930000	 ldr         r0, [r3]
  001b8	e59f3018	 ldr         r3, [pc, #0x18]
  001bc	e5933000	 ldr         r3, [r3]
  001c0	e283300c	 add         r3, r3, #0xC
  001c4	e5933000	 ldr         r3, [r3]
  001c8	e1a0e00f	 mov         lr, pc
  001cc	e12fff13	 bx          r3

; 92   : }

  001d0	e89d6000	 ldmia       sp, {sp, lr}
  001d4	e12fff1e	 bx          lr
  001d8		 |$LN6@LCDFlip|
  001d8		 |$LN7@LCDFlip|
  001d8	00000000	 DCD         |global_lcd|
  001dc		 |$M39969|

			 ENDP  ; |LCDFlip|

	EXPORT	|LCDOverlay2Enable|

  00028			 AREA	 |.pdata|, PDATA
|$T39979| DCD	|$LN5@LCDOverlay|
	DCD	0x40001604
; Function compile flags: /Odtp

  001dc			 AREA	 |.text|, CODE, ARM

  001dc		 |LCDOverlay2Enable| PROC

; 95   : {

  001dc		 |$LN5@LCDOverlay|
  001dc	e1a0c00d	 mov         r12, sp
  001e0	e92d0003	 stmdb       sp!, {r0, r1}
  001e4	e92d5000	 stmdb       sp!, {r12, lr}
  001e8	e24dd008	 sub         sp, sp, #8
  001ec		 |$M39976|

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

  001ec	e59d2014	 ldr         r2, [sp, #0x14]
  001f0	e59d1010	 ldr         r1, [sp, #0x10]
  001f4	e59f3034	 ldr         r3, [pc, #0x34]
  001f8	e5930000	 ldr         r0, [r3]
  001fc	e59f302c	 ldr         r3, [pc, #0x2C]
  00200	e5933000	 ldr         r3, [r3]
  00204	e2833010	 add         r3, r3, #0x10
  00208	e5933000	 ldr         r3, [r3]
  0020c	e1a0e00f	 mov         lr, pc
  00210	e12fff13	 bx          r3
  00214	e58d0004	 str         r0, [sp, #4]
  00218	e59d3004	 ldr         r3, [sp, #4]
  0021c	e58d3000	 str         r3, [sp]

; 97   : }

  00220	e59d0000	 ldr         r0, [sp]
  00224	e28dd008	 add         sp, sp, #8
  00228	e89d6000	 ldmia       sp, {sp, lr}
  0022c	e12fff1e	 bx          lr
  00230		 |$LN6@LCDOverlay|
  00230		 |$LN7@LCDOverlay|
  00230	00000000	 DCD         |global_lcd|
  00234		 |$M39977|

			 ENDP  ; |LCDOverlay2Enable|

	EXPORT	|LCDOverlay2DynChange|

  00030			 AREA	 |.pdata|, PDATA
|$T39987| DCD	|$LN5@LCDOverlay@2|
	DCD	0x40001704
; Function compile flags: /Odtp

  00234			 AREA	 |.text|, CODE, ARM

  00234		 |LCDOverlay2DynChange| PROC

; 100  : {

  00234		 |$LN5@LCDOverlay@2|
  00234	e1a0c00d	 mov         r12, sp
  00238	e92d0007	 stmdb       sp!, {r0 - r2}
  0023c	e92d5010	 stmdb       sp!, {r4, r12, lr}
  00240	e24dd008	 sub         sp, sp, #8
  00244		 |$M39984|

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

  00244	e59d301c	 ldr         r3, [sp, #0x1C]
  00248	e59d2018	 ldr         r2, [sp, #0x18]
  0024c	e59d1014	 ldr         r1, [sp, #0x14]
  00250	e59f0034	 ldr         r0, [pc, #0x34]
  00254	e5900000	 ldr         r0, [r0]
  00258	e59fe02c	 ldr         lr, [pc, #0x2C]
  0025c	e59ee000	 ldr         lr, [lr]
  00260	e28ee014	 add         lr, lr, #0x14
  00264	e59e4000	 ldr         r4, [lr]
  00268	e1a0e00f	 mov         lr, pc
  0026c	e12fff14	 bx          r4
  00270	e58d0004	 str         r0, [sp, #4]
  00274	e59d3004	 ldr         r3, [sp, #4]
  00278	e58d3000	 str         r3, [sp]

; 102  : }

  0027c	e59d0000	 ldr         r0, [sp]
  00280	e28dd008	 add         sp, sp, #8
  00284	e89d6010	 ldmia       sp, {r4, sp, lr}
  00288	e12fff1e	 bx          lr
  0028c		 |$LN6@LCDOverlay@2|
  0028c		 |$LN7@LCDOverlay@2|
  0028c	00000000	 DCD         |global_lcd|
  00290		 |$M39985|

			 ENDP  ; |LCDOverlay2DynChange|

	EXPORT	|LCDOverlay2Disable|

  00038			 AREA	 |.pdata|, PDATA
|$T39994| DCD	|$LN5@LCDOverlay@3|
	DCD	0x40000e03
; Function compile flags: /Odtp

  00290			 AREA	 |.text|, CODE, ARM

  00290		 |LCDOverlay2Disable| PROC

; 105  : {

  00290		 |$LN5@LCDOverlay@3|
  00290	e1a0c00d	 mov         r12, sp
  00294	e92d0003	 stmdb       sp!, {r0, r1}
  00298	e92d5000	 stmdb       sp!, {r12, lr}
  0029c		 |$M39991|

; 106  :     global_lcd->overlay2_disable(global_lcd);

  0029c	e59f3020	 ldr         r3, [pc, #0x20]
  002a0	e5930000	 ldr         r0, [r3]
  002a4	e59f3018	 ldr         r3, [pc, #0x18]
  002a8	e5933000	 ldr         r3, [r3]
  002ac	e2833018	 add         r3, r3, #0x18
  002b0	e5933000	 ldr         r3, [r3]
  002b4	e1a0e00f	 mov         lr, pc
  002b8	e12fff13	 bx          r3

; 107  : }

  002bc	e89d6000	 ldmia       sp, {sp, lr}
  002c0	e12fff1e	 bx          lr
  002c4		 |$LN6@LCDOverlay@3|
  002c4		 |$LN7@LCDOverlay@3|
  002c4	00000000	 DCD         |global_lcd|
  002c8		 |$M39992|

			 ENDP  ; |LCDOverlay2Disable|

	END

⌨️ 快捷键说明

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