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