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

📄 lcd_plat.cod

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

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

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


  00000			 AREA	 |.data|, DATA
	 COMMON	|XllpLCD|, 0x90

|?s_szGPERegKey@?1??get_screen_size@@9@9| DCB "D", 0x0, "r", 0x0, "i", 0x0
	DCB	"v", 0x0, "e", 0x0, "r", 0x0, "s", 0x0, "\\", 0x0, "D", 0x0
	DCB	"i", 0x0, "s", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "y", 0x0
	DCB	"\\", 0x0, "G", 0x0, "P", 0x0, "E", 0x0, 0x0, 0x0 ; `get_screen_size'::`2'::s_szGPERegKey
	EXPORT	|__$ArrayPad$| [ DATA ]
	EXPORT	|get_blit_option|
	IMPORT	|KernelIoControl|
	IMPORT	|__GSHandlerCheck|
	IMPORT	|__security_cookie|
	IMPORT	|__security_check_cookie|
; File d:\wince600\platform\m-stone\src\drivers\display\panels\lcd_plat.c

  00000			 AREA	 |.pdata|, PDATA
|$T42634| DCD	|$LN5@get_blit_o|
	DCD	0xc0001602

  00000			 AREA	 |.xdata|, DATA
|$T42630| DCD	0xfffffff4
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000	00000000	 DCD         |__GSHandlerCheck|
  00004	00000000	 DCD         |$T42630|

  00008		 |get_blit_option| PROC

; 42   : {

  00008		 |$LN5@get_blit_o|
  00008	e92d4010	 stmdb       sp!, {r4, lr}
  0000c	e24dd0d0	 sub         sp, sp, #0xD0
  00010		 |$M42631|
  00010	e59f3044	 ldr         r3, [pc, #0x44]
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d30cc	 str         r3, [sp, #0xCC]

; 43   :     DWORD out_size;
; 44   :     BSP_ARGS args;
; 45   : 
; 46   :     KernelIoControl(IOCTL_GET_BSP_ARGS, NULL, 0, 
; 47   :                     &args, sizeof(BSP_ARGS), &out_size);

  0001c	e59f0034	 ldr         r0, [pc, #0x34]
  00020	e28de008	 add         lr, sp, #8
  00024	e3a040c0	 mov         r4, #0xC0
  00028	e28d300c	 add         r3, sp, #0xC
  0002c	e3a02000	 mov         r2, #0
  00030	e3a01000	 mov         r1, #0
  00034	e58de004	 str         lr, [sp, #4]
  00038	e58d4000	 str         r4, [sp]
  0003c	eb000000	 bl          KernelIoControl

; 48   : 
; 49   :     return args.DefaultBlit;

  00040	e59d00cc	 ldr         r0, [sp, #0xCC]
  00044	eb000000	 bl          __security_check_cookie
  00048	e59d00c0	 ldr         r0, [sp, #0xC0]

; 50   : }

  0004c	e28dd0d0	 add         sp, sp, #0xD0
  00050	e8bd4010	 ldmia       sp!, {r4, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$LN6@get_blit_o|
  00058		 |$LN7@get_blit_o|
  00058	01013e80	 DCD         0x1013e80
  0005c		 |$LN8@get_blit_o|
  0005c	00000000	 DCD         |__security_cookie|
  00060		 |$M42632|

			 ENDP  ; |get_blit_option|

	EXPORT	|__$ArrayPad$| [ DATA ]

  00000			 AREA	 |.pdata|, PDATA
|$T42649| DCD	|$LN5@get_panel_|
	DCD	0xc0001602

  00000			 AREA	 |.xdata|, DATA
|$T42645| DCD	0xfffffff4
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000	00000000	 DCD         |__GSHandlerCheck|
  00004	00000000	 DCD         |$T42645|

  00008		 |get_panel_type| PROC

; 53   : {

  00008		 |$LN5@get_panel_|
  00008	e92d4010	 stmdb       sp!, {r4, lr}
  0000c	e24dd0d0	 sub         sp, sp, #0xD0
  00010		 |$M42646|
  00010	e59f3044	 ldr         r3, [pc, #0x44]
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d30cc	 str         r3, [sp, #0xCC]

; 54   :     DWORD out_size;
; 55   :     BSP_ARGS args;
; 56   : 
; 57   :     KernelIoControl(IOCTL_GET_BSP_ARGS, NULL, 0, 
; 58   :                     &args, sizeof(BSP_ARGS), &out_size);

  0001c	e59f0034	 ldr         r0, [pc, #0x34]
  00020	e28de008	 add         lr, sp, #8
  00024	e3a040c0	 mov         r4, #0xC0
  00028	e28d300c	 add         r3, sp, #0xC
  0002c	e3a02000	 mov         r2, #0
  00030	e3a01000	 mov         r1, #0
  00034	e58de004	 str         lr, [sp, #4]
  00038	e58d4000	 str         r4, [sp]
  0003c	eb000000	 bl          KernelIoControl

; 59   : 
; 60   :     return args.DefaultLCDPanel;

  00040	e59d00cc	 ldr         r0, [sp, #0xCC]
  00044	eb000000	 bl          __security_check_cookie
  00048	e59d00c4	 ldr         r0, [sp, #0xC4]

; 61   : }

  0004c	e28dd0d0	 add         sp, sp, #0xD0
  00050	e8bd4010	 ldmia       sp!, {r4, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$LN6@get_panel_|
  00058		 |$LN7@get_panel_|
  00058	01013e80	 DCD         0x1013e80
  0005c		 |$LN8@get_panel_|
  0005c	00000000	 DCD         |__security_cookie|
  00060		 |$M42647|

			 ENDP  ; |get_panel_type|

	EXPORT	|__$ArrayPad$| [ DATA ]
	EXPORT	|is_dual_panel|

  00000			 AREA	 |.pdata|, PDATA
|$T42670| DCD	|$LN11@is_dual_pa|
	DCD	0xc0002102

  00000			 AREA	 |.xdata|, DATA
|$T42666| DCD	0xfffffff4
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000	00000000	 DCD         |__GSHandlerCheck|
  00004	00000000	 DCD         |$T42666|

  00008		 |is_dual_panel| PROC

; 64   : {

  00008		 |$LN11@is_dual_pa|
  00008	e92d4010	 stmdb       sp!, {r4, lr}
  0000c	e24dd0d0	 sub         sp, sp, #0xD0
  00010		 |$M42667|
  00010	e59f3070	 ldr         r3, [pc, #0x70]
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d30cc	 str         r3, [sp, #0xCC]

; 65   :     DWORD cfg = get_panel_type();

  0001c	e59f0060	 ldr         r0, [pc, #0x60]
  00020	e28de008	 add         lr, sp, #8
  00024	e3a040c0	 mov         r4, #0xC0
  00028	e28d300c	 add         r3, sp, #0xC
  0002c	e3a02000	 mov         r2, #0
  00030	e3a01000	 mov         r1, #0
  00034	e58de004	 str         lr, [sp, #4]
  00038	e58d4000	 str         r4, [sp]
  0003c	eb000000	 bl          KernelIoControl

; 66   :     switch (cfg)

  00040	e59d30c4	 ldr         r3, [sp, #0xC4]
  00044	e3530020	 cmp         r3, #0x20
  00048	3a000007	 bcc         |$LN1@is_dual_pa|
  0004c	e3530021	 cmp         r3, #0x21
  00050	9a000001	 bls         |$LN2@is_dual_pa|
  00054	e3530025	 cmp         r3, #0x25
  00058	1a000003	 bne         |$LN1@is_dual_pa|
  0005c		 |$LN2@is_dual_pa|

; 67   :     {
; 68   :     case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD:
; 69   :     case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE:
; 70   :     case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE_LANDSCAPE:
; 71   :         return TRUE;

  0005c	e59d00cc	 ldr         r0, [sp, #0xCC]
  00060	eb000000	 bl          __security_check_cookie
  00064	e3a00001	 mov         r0, #1
  00068	ea000002	 b           |$LN3@is_dual_pa|
  0006c		 |$LN1@is_dual_pa|

; 72   :     default:
; 73   :         return FALSE;

  0006c	e59d00cc	 ldr         r0, [sp, #0xCC]
  00070	eb000000	 bl          __security_check_cookie
  00074	e3a00000	 mov         r0, #0
  00078		 |$LN3@is_dual_pa|

; 74   :     }
; 75   : }

  00078	e28dd0d0	 add         sp, sp, #0xD0
  0007c	e8bd4010	 ldmia       sp!, {r4, lr}
  00080	e12fff1e	 bx          lr
  00084		 |$LN12@is_dual_pa|
  00084		 |$LN13@is_dual_pa|
  00084	01013e80	 DCD         0x1013e80
  00088		 |$LN14@is_dual_pa|
  00088	00000000	 DCD         |__security_cookie|
  0008c		 |$M42668|

			 ENDP  ; |is_dual_panel|

	EXPORT	|get_screen_size|
	EXPORT	|??_C@_1BK@HNDINEGH@?$AAV?$AAe?$AAr?$AAt?$AAi?$AAc?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BO@CPEMBNKP@?$AAH?$AAo?$AAr?$AAi?$AAz?$AAo?$AAn?$AAt?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|RegQueryValueExW|
	IMPORT	|RegOpenKeyExW|

  00000			 AREA	 |.pdata|, PDATA
|$T42683| DCD	|$LN10@get_screen|
	DCD	0x40003702

  00000			 AREA	 |.rdata|, DATA, READONLY
|??_C@_1BK@HNDINEGH@?$AAV?$AAe?$AAr?$AAt?$AAi?$AAc?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| DCB "V"
	DCB	0x0, "e", 0x0, "r", 0x0, "t", 0x0, "i", 0x0, "c", 0x0, "a"
	DCB	0x0, "l", 0x0, "S", 0x0, "i", 0x0, "z", 0x0, "e", 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata|, DATA, READONLY
|??_C@_1BO@CPEMBNKP@?$AAH?$AAo?$AAr?$AAi?$AAz?$AAo?$AAn?$AAt?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| DCB "H"
	DCB	0x0, "o", 0x0, "r", 0x0, "i", 0x0, "z", 0x0, "o", 0x0, "n"
	DCB	0x0, "t", 0x0, "a", 0x0, "l", 0x0, "S", 0x0, "i", 0x0, "z"
	DCB	0x0, "e", 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogspy

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |get_screen_size| PROC

; 78   : {

  00000		 |$LN10@get_screen|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004	e24dd018	 sub         sp, sp, #0x18
  00008		 |$M42680|
  00008	e1a06001	 mov         r6, r1
  0000c	e1a05000	 mov         r5, r0

; 79   :     HKEY hKey;
; 80   : 
; 81   : 	static WCHAR s_szGPERegKey[] = L"Drivers\\Display\\GPE";
; 82   : 	// default size
; 83   : 	*width = 240;
; 84   : 	*height = 320;
; 85   : 
; 86   :     // Open GPE's regkey and read the know values from it.
; 87   :     if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,
; 88   :                                       s_szGPERegKey,
; 89   :                                       0,
; 90   :                                       0,
; 91   :                                       &hKey))

  00010	e3a030f0	 mov         r3, #0xF0
  00014	e5853000	 str         r3, [r5]
  00018	e59f10b8	 ldr         r1, [pc, #0xB8]
  0001c	e3a03d05	 mov         r3, #5, 26
  00020	e5863000	 str         r3, [r6]
  00024	e28de014	 add         lr, sp, #0x14
  00028	e3a03000	 mov         r3, #0
  0002c	e3a02000	 mov         r2, #0
  00030	e3a0010a	 mov         r0, #0xA, 2
  00034	e58de000	 str         lr, [sp]
  00038	eb000000	 bl          RegOpenKeyExW
  0003c	e3500000	 cmp         r0, #0
  00040	1a00001f	 bne         |$LN1@get_screen|

; 92   :     {
; 93   :         DWORD dwType;
; 94   :         DWORD dwValue;
; 95   :         DWORD dwSize;
; 96   : 
; 97   :         dwSize = sizeof (ULONG);
; 98   :         if (ERROR_SUCCESS == RegQueryValueEx(hKey,
; 99   :                                              L"HorizontalSize",
; 100  :                                              NULL,
; 101  :                                              &dwType,
; 102  :                                              (BYTE*)&dwValue,
; 103  :                                              &dwSize))

  00044	e59f1088	 ldr         r1, [pc, #0x88]
  00048	e59d0014	 ldr         r0, [sp, #0x14]
  0004c	e3a07004	 mov         r7, #4
  00050	e28de008	 add         lr, sp, #8
  00054	e28d4010	 add         r4, sp, #0x10
  00058	e28d300c	 add         r3, sp, #0xC
  0005c	e3a02000	 mov         r2, #0
  00060	e58d7008	 str         r7, [sp, #8]
  00064	e58de004	 str         lr, [sp, #4]
  00068	e58d4000	 str         r4, [sp]
  0006c	eb000000	 bl          RegQueryValueExW
  00070	e3500000	 cmp         r0, #0

; 104  :         {
; 105  :             if (REG_DWORD == dwType)

  00074	059d300c	 ldreq       r3, [sp, #0xC]

; 106  :             {
; 107  :                 *width = dwValue;
; 108  :             }
; 109  :         }
; 110  : 
; 111  :         dwSize = sizeof (ULONG);
; 112  :         if (ERROR_SUCCESS == RegQueryValueEx(hKey,
; 113  :                                              L"VerticalSize",
; 114  :                                              NULL,
; 115  :                                              &dwType,
; 116  :                                              (BYTE*)&dwValue,
; 117  :                                              &dwSize))

  00078	e59f1050	 ldr         r1, [pc, #0x50]
  0007c	e59d0014	 ldr         r0, [sp, #0x14]
  00080	03530004	 cmpeq       r3, #4
  00084	059d3010	 ldreq       r3, [sp, #0x10]
  00088	e28de008	 add         lr, sp, #8
  0008c	e28d4010	 add         r4, sp, #0x10
  00090	05853000	 streq       r3, [r5]
  00094	e3a05004	 mov         r5, #4
  00098	e28d300c	 add         r3, sp, #0xC
  0009c	e3a02000	 mov         r2, #0
  000a0	e58d5008	 str         r5, [sp, #8]
  000a4	e58de004	 str         lr, [sp, #4]
  000a8	e58d4000	 str         r4, [sp]
  000ac	eb000000	 bl          RegQueryValueExW
  000b0	e3500000	 cmp         r0, #0

; 118  :         {
; 119  :             if (REG_DWORD == dwType)

  000b4	059d300c	 ldreq       r3, [sp, #0xC]
  000b8	03530004	 cmpeq       r3, #4

; 120  :             {
; 121  :                 *height = dwValue;

  000bc	059d3010	 ldreq       r3, [sp, #0x10]
  000c0	05863000	 streq       r3, [r6]
  000c4		 |$LN1@get_screen|

; 122  :             }
; 123  :         }
; 124  : 	}
; 125  : }

  000c4	e28dd018	 add         sp, sp, #0x18
  000c8	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  000cc	e12fff1e	 bx          lr
  000d0		 |$LN11@get_screen|
  000d0		 |$LN12@get_screen|

⌨️ 快捷键说明

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