📄 lcd_zl_vga_qvga.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 + -