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

📄 lcd_zl_vga_qvga.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\panels\lcd_zl_vga_qvga.c
	CODE32

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

	EXPORT	|qvga_ls037| [ DATA ]
	EXPORT	|oled_0283| [ DATA ]
	EXPORT	|vga_ls037| [ DATA ]

  00000			 AREA	 |.data|, DATA
|qvga_ls037| DCD |set_power_mode|
	DCD	|init|
	DCD	|post_init|
	DCD	0xf0
	DCD	0x140
	DCD	0x10
	DCD	0x27
	DCD	0x28
	DCD	0x3
	DCD	0x2
	DCD	0x2
	DCD	0x0
	DCD	0xe
	DCD	0x16
	DCD	0x1e
	DCD	0x4
	DCD	0x8
	DCD	0x0
	DCD	0x1
	DCD	0x1
	DCD	0x1
|panel_is_leaded| DCD 0x1
|oled_0283| DCD	|set_power_mode|
	DCD	|init|
	DCD	|post_init|
	DCD	0x1e0
	DCD	0x110
	DCD	0x10
	DCD	0x2
	DCD	0x4
	DCD	0x1c
	DCD	0x4
	DCD	0x8
	DCD	0xa
	DCD	0xc
	DCD	0x12
	DCD	0x17
	DCD	0x3
	DCD	0x6
	DCD	0x0
	DCD	0x0
	DCD	0x1
	DCD	0x1
	%	4
|vga_ls037| DCD	|set_power_mode|
	DCD	|init|
	DCD	|post_init|
	DCD	0x1e0
	DCD	0x280
	DCD	0x10
	DCD	0x4f
	DCD	0x5f
	DCD	0x3
	DCD	0x2
	DCD	0x6
	DCD	0x0
	DCD	0x5
	DCD	0x7
	DCD	0xa
	DCD	0x1
	DCD	0x3
	DCD	0x0
	DCD	0x1
	DCD	0x1
	DCD	0x1
	IMPORT	|PXA_GPIOSetLevel|
	IMPORT	|PXA_GPIOSetDirection|
	IMPORT	|MFP_SetActiveMode|

  00000			 AREA	 |.bss|, NOINIT
|gpio_regs| %	0x4

  00000			 AREA	 |.pdata|, PDATA
|$T41954| DCD	|$LN10@init|
	DCD	0x40003e04
; Function compile flags: /Odtp
; File d:\wince600\platform\m-stone\src\drivers\display\panels\lcd_zl_vga_qvga.c

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |init|	 PROC

; 186  : {

  00000		 |$LN10@init|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd014	 sub         sp, sp, #0x14
  00010		 |$M41951|

; 187  :     PXA_STATUS_T status = PXA_STATUS_SUCCESS;

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

; 188  :     PXA_LEVEL_T mode_pin_level;
; 189  :      
; 190  :     mode_pin_level = panel->config.width == VGA_WIDTH? PXA_HI : PXA_LO;

  00018	e59d301c	 ldr         r3, [sp, #0x1C]
  0001c	e283300c	 add         r3, r3, #0xC
  00020	e5933000	 ldr         r3, [r3]
  00024	e3530e1e	 cmp         r3, #0x1E, 28
  00028	1a000002	 bne         |$LN4@init|
  0002c	e3a03001	 mov         r3, #1
  00030	e58d300c	 str         r3, [sp, #0xC]
  00034	ea000001	 b           |$LN5@init|
  00038		 |$LN4@init|
  00038	e3a03000	 mov         r3, #0
  0003c	e58d300c	 str         r3, [sp, #0xC]
  00040		 |$LN5@init|
  00040	e59d300c	 ldr         r3, [sp, #0xC]
  00044	e58d3004	 str         r3, [sp, #4]

; 191  : 
; 192  :     // mode pin level is reverted for lead free panel
; 193  :     if (!panel_is_leaded)

  00048	e59f30a4	 ldr         r3, [pc, #0xA4]
  0004c	e5933000	 ldr         r3, [r3]
  00050	e3530000	 cmp         r3, #0
  00054	1a000009	 bne         |$LN1@init|

; 194  :          mode_pin_level = mode_pin_level == PXA_HI? PXA_LO : PXA_HI;

  00058	e59d3004	 ldr         r3, [sp, #4]
  0005c	e3530001	 cmp         r3, #1
  00060	1a000002	 bne         |$LN6@init|
  00064	e3a03000	 mov         r3, #0
  00068	e58d3010	 str         r3, [sp, #0x10]
  0006c	ea000001	 b           |$LN7@init|
  00070		 |$LN6@init|
  00070	e3a03001	 mov         r3, #1
  00074	e58d3010	 str         r3, [sp, #0x10]
  00078		 |$LN7@init|
  00078	e59d3010	 ldr         r3, [sp, #0x10]
  0007c	e58d3004	 str         r3, [sp, #4]
  00080		 |$LN1@init|

; 195  : 
; 196  :     MFP_SetActiveMode(PXA_COMPONENT_LCD_ID);

  00080	e3a0000a	 mov         r0, #0xA
  00084	eb000000	 bl          MFP_SetActiveMode

; 197  :     // GPIO registers can't be retained after wakeup
; 198  :     PXA_GPIOSetDirection(gpio_regs, PXA_GPIO_LCD_LDD_17_ID, PXA_GPIO_DIRECTION_OUT);

  00088	e3a02001	 mov         r2, #1
  0008c	e3a01047	 mov         r1, #0x47
  00090	e59f3058	 ldr         r3, [pc, #0x58]
  00094	e5930000	 ldr         r0, [r3]
  00098	eb000000	 bl          PXA_GPIOSetDirection

; 199  :     PXA_GPIOSetDirection(gpio_regs, PXA_GPIO_LCD_VSYNC_ID, PXA_GPIO_DIRECTION_OUT);

  0009c	e3a02001	 mov         r2, #1
  000a0	e3a0104c	 mov         r1, #0x4C
  000a4	e59f3044	 ldr         r3, [pc, #0x44]
  000a8	e5930000	 ldr         r0, [r3]
  000ac	eb000000	 bl          PXA_GPIOSetDirection

; 200  :     // select active lcd instead of oled
; 201  :     PXA_GPIOSetLevel(gpio_regs, PXA_GPIO_LCD_LDD_17_ID, PXA_LO);

  000b0	e3a02000	 mov         r2, #0
  000b4	e3a01047	 mov         r1, #0x47
  000b8	e59f3030	 ldr         r3, [pc, #0x30]
  000bc	e5930000	 ldr         r0, [r3]
  000c0	eb000000	 bl          PXA_GPIOSetLevel

; 202  :     PXA_GPIOSetLevel(gpio_regs, PXA_GPIO_LCD_VSYNC_ID, mode_pin_level);

  000c4	e59d2004	 ldr         r2, [sp, #4]
  000c8	e3a0104c	 mov         r1, #0x4C
  000cc	e59f301c	 ldr         r3, [pc, #0x1C]
  000d0	e5930000	 ldr         r0, [r3]
  000d4	eb000000	 bl          PXA_GPIOSetLevel

; 203  :     return status;      

  000d8	e59d3000	 ldr         r3, [sp]
  000dc	e58d3008	 str         r3, [sp, #8]

; 204  : }

  000e0	e59d0008	 ldr         r0, [sp, #8]
  000e4	e28dd014	 add         sp, sp, #0x14
  000e8	e89d6000	 ldmia       sp, {sp, lr}
  000ec	e12fff1e	 bx          lr
  000f0		 |$LN11@init|
  000f0		 |$LN12@init|
  000f0	00000000	 DCD         |gpio_regs|
  000f4		 |$LN13@init|
  000f4	00000000	 DCD         |panel_is_leaded|
  000f8		 |$M41952|

			 ENDP  ; |init|


  00008			 AREA	 |.pdata|, PDATA
|$T41963| DCD	|$LN5@post_init|
	DCD	0x40000a04
; Function compile flags: /Odtp

  000f8			 AREA	 |.text|, CODE, ARM

  000f8		 |post_init| PROC

; 207  : {

  000f8		 |$LN5@post_init|
  000f8	e1a0c00d	 mov         r12, sp
  000fc	e92d0001	 stmdb       sp!, {r0}
  00100	e92d5000	 stmdb       sp!, {r12, lr}
  00104	e24dd004	 sub         sp, sp, #4
  00108		 |$M41960|

; 208  : 	return PXA_STATUS_SUCCESS;

  00108	e3a03000	 mov         r3, #0
  0010c	e58d3000	 str         r3, [sp]

; 209  : }

  00110	e59d0000	 ldr         r0, [sp]
  00114	e28dd004	 add         sp, sp, #4
  00118	e89d6000	 ldmia       sp, {sp, lr}
  0011c	e12fff1e	 bx          lr
  00120		 |$M41961|

			 ENDP  ; |post_init|

	IMPORT	|set_lcd_domain|

  00010			 AREA	 |.pdata|, PDATA
|$T41968| DCD	|$LN5@set_power_|
	DCD	0x40000703
; Function compile flags: /Odtp

  00120			 AREA	 |.text|, CODE, ARM

  00120		 |set_power_mode| PROC

; 212  : {

  00120		 |$LN5@set_power_|
  00120	e1a0c00d	 mov         r12, sp
  00124	e92d0003	 stmdb       sp!, {r0, r1}
  00128	e92d5000	 stmdb       sp!, {r12, lr}
  0012c		 |$M41965|

; 213  :     set_lcd_domain(power_mode);

  0012c	e59d000c	 ldr         r0, [sp, #0xC]
  00130	eb000000	 bl          set_lcd_domain

; 214  :     //if (power_mode == FALSE)
; 215  :     //    PXA_GPIOSetLevel(gpio_regs, PXA_GPIO_LCD_VSYNC_ID, PXA_LO);
; 216  : }

  00134	e89d6000	 ldmia       sp, {sp, lr}
  00138	e12fff1e	 bx          lr
  0013c		 |$M41966|

			 ENDP  ; |set_power_mode|

	EXPORT	|vga_qvga_panel_init|
	IMPORT	|PXA_CTX_GetRegAddr2|

  00018			 AREA	 |.pdata|, PDATA
|$T41974| DCD	|$LN8@vga_qvga_p|
	DCD	0x40002f04
; Function compile flags: /Odtp

  0013c			 AREA	 |.text|, CODE, ARM

  0013c		 |vga_qvga_panel_init| PROC

; 219  : {

  0013c		 |$LN8@vga_qvga_p|
  0013c	e1a0c00d	 mov         r12, sp
  00140	e92d0003	 stmdb       sp!, {r0, r1}
  00144	e92d5000	 stmdb       sp!, {r12, lr}
  00148	e24dd00c	 sub         sp, sp, #0xC
  0014c		 |$M41971|

; 220  :     active_panel_t *panel;
; 221  : 
; 222  : 	gpio_regs = (PXA_GPIOREG_T*)PXA_CTX_GetRegAddr(PXA_PERIPHERAL_REGIDX_GPIO);

  0014c	e3a01000	 mov         r1, #0
  00150	e3a0000c	 mov         r0, #0xC
  00154	eb000000	 bl          PXA_CTX_GetRegAddr2
  00158	e58d0008	 str         r0, [sp, #8]
  0015c	e59d2008	 ldr         r2, [sp, #8]
  00160	e59f308c	 ldr         r3, [pc, #0x8C]
  00164	e5832000	 str         r2, [r3]

; 223  : 
; 224  :     if (is_vga)

  00168	e59d3014	 ldr         r3, [sp, #0x14]
  0016c	e3530000	 cmp         r3, #0
  00170	0a000002	 beq         |$LN3@vga_qvga_p|

; 225  :         panel = &vga_ls037;

  00174	e59f3074	 ldr         r3, [pc, #0x74]
  00178	e58d3000	 str         r3, [sp]

; 226  :     else

  0017c	ea000001	 b           |$LN2@vga_qvga_p|
  00180		 |$LN3@vga_qvga_p|

; 227  :         panel = &qvga_ls037;

  00180	e59f305c	 ldr         r3, [pc, #0x5C]
  00184	e58d3000	 str         r3, [sp]
  00188		 |$LN2@vga_qvga_p|

; 228  :     
; 229  :     panel=&oled_0283;

  00188	e59f305c	 ldr         r3, [pc, #0x5C]
  0018c	e58d3000	 str         r3, [sp]

; 230  :     panel_is_leaded = is_leaded;

  00190	e59d2018	 ldr         r2, [sp, #0x18]
  00194	e59f304c	 ldr         r3, [pc, #0x4C]
  00198	e5832000	 str         r2, [r3]

; 231  : 
; 232  :     if (!is_leaded)

  0019c	e59d3018	 ldr         r3, [sp, #0x18]
  001a0	e3530000	 cmp         r3, #0
  001a4	1a000008	 bne         |$LN1@vga_qvga_p|

; 233  :     {
; 234  :         qvga_ls037.config.timing.BLW = 0x14;

  001a8	e59f2034	 ldr         r2, [pc, #0x34]
  001ac	e3a03014	 mov         r3, #0x14
  001b0	e5823018	 str         r3, [r2, #0x18]

; 235  :         qvga_ls037.config.timing.EFW = 0x3;

  001b4	e59f2028	 ldr         r2, [pc, #0x28]
  001b8	e3a03003	 mov         r3, #3
  001bc	e5823028	 str         r3, [r2, #0x28]

; 236  :         qvga_ls037.config.timing.EFW = 0x5;

  001c0	e59f201c	 ldr         r2, [pc, #0x1C]
  001c4	e3a03005	 mov         r3, #5
  001c8	e5823028	 str         r3, [r2, #0x28]
  001cc		 |$LN1@vga_qvga_p|

; 237  :     }
; 238  :     return panel;

  001cc	e59d3000	 ldr         r3, [sp]
  001d0	e58d3004	 str         r3, [sp, #4]

; 239  : }

  001d4	e59d0004	 ldr         r0, [sp, #4]
  001d8	e28dd00c	 add         sp, sp, #0xC
  001dc	e89d6000	 ldmia       sp, {sp, lr}
  001e0	e12fff1e	 bx          lr
  001e4		 |$LN9@vga_qvga_p|
  001e4		 |$LN10@vga_qvga_p|
  001e4	00000000	 DCD         |qvga_ls037|
  001e8		 |$LN11@vga_qvga_p|
  001e8	00000000	 DCD         |panel_is_leaded|
  001ec		 |$LN12@vga_qvga_p|
  001ec	00000000	 DCD         |oled_0283|
  001f0		 |$LN13@vga_qvga_p|
  001f0	00000000	 DCD         |vga_ls037|
  001f4		 |$LN14@vga_qvga_p|
  001f4	00000000	 DCD         |gpio_regs|
  001f8		 |$M41972|

			 ENDP  ; |vga_qvga_panel_init|

	END

⌨️ 快捷键说明

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