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

📄 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
|gpio_regs| %	0x4
; File d:\wince600\platform\m-stone\src\drivers\display\panels\lcd_zl_vga_qvga.c

  00000			 AREA	 |.pdata|, PDATA
|$T41994| DCD	|$LN10@init|
	DCD	0x40002401
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |init|	 PROC

; 186  : {

  00000		 |$LN10@init|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M41991|

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

  00004	e590300c	 ldr         r3, [r0, #0xC]
  00008	e3530e1e	 cmp         r3, #0x1E, 28

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

  0000c	e59f3078	 ldr         r3, [pc, #0x78]
  00010	03a05001	 moveq       r5, #1
  00014	13a05000	 movne       r5, #0
  00018	e5933000	 ldr         r3, [r3]
  0001c	e3530000	 cmp         r3, #0
  00020	1a000002	 bne         |$LN7@init|

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

  00024	e3550001	 cmp         r5, #1
  00028	03a05000	 moveq       r5, #0
  0002c	13a05001	 movne       r5, #1
  00030		 |$LN7@init|

; 195  : 
; 196  :     MFP_SetActiveMode(PXA_COMPONENT_LCD_ID);

  00030	e3a0000a	 mov         r0, #0xA
  00034	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);

  00038	e59f4048	 ldr         r4, [pc, #0x48]
  0003c	e3a02001	 mov         r2, #1
  00040	e3a01047	 mov         r1, #0x47
  00044	e5940000	 ldr         r0, [r4]
  00048	eb000000	 bl          PXA_GPIOSetDirection

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

  0004c	e5940000	 ldr         r0, [r4]
  00050	e3a02001	 mov         r2, #1
  00054	e3a0104c	 mov         r1, #0x4C
  00058	eb000000	 bl          PXA_GPIOSetDirection

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

  0005c	e5940000	 ldr         r0, [r4]
  00060	e3a02000	 mov         r2, #0
  00064	e3a01047	 mov         r1, #0x47
  00068	eb000000	 bl          PXA_GPIOSetLevel

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

  0006c	e5940000	 ldr         r0, [r4]
  00070	e1a02005	 mov         r2, r5
  00074	e3a0104c	 mov         r1, #0x4C
  00078	eb000000	 bl          PXA_GPIOSetLevel

; 203  :     return status;      

  0007c	e3a00000	 mov         r0, #0

; 204  : }

  00080	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00084	e12fff1e	 bx          lr
  00088		 |$LN11@init|
  00088		 |$LN12@init|
  00088	00000000	 DCD         |gpio_regs|
  0008c		 |$LN13@init|
  0008c	00000000	 DCD         |panel_is_leaded|
  00090		 |$M41992|

			 ENDP  ; |init|


  00000			 AREA	 |.pdata|, PDATA
|$T42006| DCD	|$LN5@post_init|
	DCD	0x40000200
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |post_init| PROC

; 207  : {

  00000		 |$LN5@post_init|
  00000		 |$M42003|

; 208  : 	return PXA_STATUS_SUCCESS;

  00000	e3a00000	 mov         r0, #0

; 209  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M42004|

			 ENDP  ; |post_init|

	IMPORT	|set_lcd_domain|

  00000			 AREA	 |.pdata|, PDATA
|$T42014| DCD	|$LN5@set_power_|
	DCD	0x40000501
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |set_power_mode| PROC

; 212  : {

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

; 213  :     set_lcd_domain(power_mode);

  00004	e1a00001	 mov         r0, r1
  00008	eb000000	 bl          set_lcd_domain

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

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M42012|

			 ENDP  ; |set_power_mode|

	EXPORT	|vga_qvga_panel_init|
	IMPORT	|PXA_CTX_GetRegAddr2|

  00000			 AREA	 |.pdata|, PDATA
|$T42024| DCD	|$LN8@vga_qvga_p|
	DCD	0x40001301
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |vga_qvga_panel_init| PROC

; 219  : {

  00000		 |$LN8@vga_qvga_p|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M42021|
  00004	e1a04001	 mov         r4, r1

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

  00008	e3a01000	 mov         r1, #0
  0000c	e3a0000c	 mov         r0, #0xC
  00010	eb000000	 bl          PXA_CTX_GetRegAddr2
  00014	e59f302c	 ldr         r3, [pc, #0x2C]

; 223  : 
; 224  :     if (is_vga)
; 225  :         panel = &vga_ls037;
; 226  :     else
; 227  :         panel = &qvga_ls037;
; 228  :     
; 229  :     panel=&oled_0283;
; 230  :     panel_is_leaded = is_leaded;

  00018	e59f2024	 ldr         r2, [pc, #0x24]

; 231  : 
; 232  :     if (!is_leaded)

  0001c	e3540000	 cmp         r4, #0
  00020	e5830000	 str         r0, [r3]

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

  00024	03a03014	 moveq       r3, #0x14
  00028	05823018	 streq       r3, [r2, #0x18]

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

  0002c	03a03005	 moveq       r3, #5
  00030	05823028	 streq       r3, [r2, #0x28]
  00034	e5824054	 str         r4, [r2, #0x54]

; 237  :     }
; 238  :     return panel;

  00038	e2820058	 add         r0, r2, #0x58

; 239  : }

  0003c	e8bd4010	 ldmia       sp!, {r4, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$LN9@vga_qvga_p|
  00044		 |$LN10@vga_qvga_p|
  00044	00000000	 DCD         |qvga_ls037|
  00048		 |$LN11@vga_qvga_p|
  00048	00000000	 DCD         |gpio_regs|
  0004c		 |$M42022|

			 ENDP  ; |vga_qvga_panel_init|

	END

⌨️ 快捷键说明

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