📄 active.cod
字号:
002ec e080000e add r0, r0, lr
002f0 eb000000 bl PXA_LCDInitDMADescriptor
002f4 eaffffdf b |$LN2@ActiveOver|
002f8 |$LN1@ActiveOver|
; 85 :
; 86 : return PXA_LCDActiveOverlay2Enable(lcd->lcd_regs, overlay, &lcd->dma_descs[2]);
002f8 e59d301c ldr r3, [sp, #0x1C]
002fc e2833024 add r3, r3, #0x24
00300 e5933000 ldr r3, [r3]
00304 e2832020 add r2, r3, #0x20
00308 e59d1020 ldr r1, [sp, #0x20]
0030c e59d301c ldr r3, [sp, #0x1C]
00310 e283301c add r3, r3, #0x1C
00314 e5930000 ldr r0, [r3]
00318 eb000000 bl PXA_LCDActiveOverlay2Enable
0031c e58d0008 str r0, [sp, #8]
00320 e59d3008 ldr r3, [sp, #8]
00324 e58d3004 str r3, [sp, #4]
; 87 : }
00328 e59d0004 ldr r0, [sp, #4]
0032c e28dd00c add sp, sp, #0xC
00330 e89d6030 ldmia sp, {r4, r5, sp, lr}
00334 e12fff1e bx lr
00338 |$M41393|
ENDP ; |ActiveOverlay2Enable|
EXPORT |ActiveOverlay2DynChange|
IMPORT |PXA_LCDActiveOverlay2DynChange|
00028 AREA |.pdata|, PDATA
|$T41401| DCD |$LN8@ActiveOver@2|
DCD 0x40003804
; Function compile flags: /Odtp
00338 AREA |.text|, CODE, ARM
00338 |ActiveOverlay2DynChange| PROC
; 90 : {
00338 |$LN8@ActiveOver@2|
00338 e1a0c00d mov r12, sp
0033c e92d000f stmdb sp!, {r0 - r3}
00340 e92d5030 stmdb sp!, {r4, r5, r12, lr}
00344 e24dd00c sub sp, sp, #0xC
00348 |$M41398|
; 91 : UINT i;
; 92 :
; 93 : for (i = 0; i < 3; i++)
00348 e3a03000 mov r3, #0
0034c e58d3000 str r3, [sp]
00350 ea000002 b |$LN3@ActiveOver@2|
00354 |$LN2@ActiveOver@2|
00354 e59d3000 ldr r3, [sp]
00358 e2833001 add r3, r3, #1
0035c e58d3000 str r3, [sp]
00360 |$LN3@ActiveOver@2|
00360 e59d3000 ldr r3, [sp]
00364 e3530003 cmp r3, #3
00368 2a000019 bcs |$LN1@ActiveOver@2|
; 94 : PXA_LCDInitDMADescriptor(&lcd->dma_descs[2 + i], lcd->dma_descs[2 + i].FDADR, phy_addrs[i], 0);
0036c e3a03000 mov r3, #0
00370 e59d0000 ldr r0, [sp]
00374 e3a02004 mov r2, #4
00378 e0010290 mul r1, r0, r2
0037c e59d2024 ldr r2, [sp, #0x24]
00380 e0822001 add r2, r2, r1
00384 e5922000 ldr r2, [r2]
00388 e59d101c ldr r1, [sp, #0x1C]
0038c e2814024 add r4, r1, #0x24
00390 e59d1000 ldr r1, [sp]
00394 e281e002 add lr, r1, #2
00398 e3a01010 mov r1, #0x10
0039c e000019e mul r0, lr, r1
003a0 e5941000 ldr r1, [r4]
003a4 e0811000 add r1, r1, r0
003a8 e5911000 ldr r1, [r1]
003ac e59d001c ldr r0, [sp, #0x1C]
003b0 e2805024 add r5, r0, #0x24
003b4 e59d0000 ldr r0, [sp]
003b8 e2804002 add r4, r0, #2
003bc e3a00010 mov r0, #0x10
003c0 e00e0094 mul lr, r4, r0
003c4 e5950000 ldr r0, [r5]
003c8 e080000e add r0, r0, lr
003cc eb000000 bl PXA_LCDInitDMADescriptor
003d0 eaffffdf b |$LN2@ActiveOver@2|
003d4 |$LN1@ActiveOver@2|
; 95 :
; 96 : return PXA_LCDActiveOverlay2DynChange(lcd->lcd_regs, overlay, &lcd->dma_descs[2], change_flag);
003d4 e59d3028 ldr r3, [sp, #0x28]
003d8 e59d201c ldr r2, [sp, #0x1C]
003dc e2822024 add r2, r2, #0x24
003e0 e5922000 ldr r2, [r2]
003e4 e2822020 add r2, r2, #0x20
003e8 e59d1020 ldr r1, [sp, #0x20]
003ec e59d001c ldr r0, [sp, #0x1C]
003f0 e280001c add r0, r0, #0x1C
003f4 e5900000 ldr r0, [r0]
003f8 eb000000 bl PXA_LCDActiveOverlay2DynChange
003fc e58d0008 str r0, [sp, #8]
00400 e59d3008 ldr r3, [sp, #8]
00404 e58d3004 str r3, [sp, #4]
; 97 : }
00408 e59d0004 ldr r0, [sp, #4]
0040c e28dd00c add sp, sp, #0xC
00410 e89d6030 ldmia sp, {r4, r5, sp, lr}
00414 e12fff1e bx lr
00418 |$M41399|
ENDP ; |ActiveOverlay2DynChange|
EXPORT |ActiveOverlay2Disable|
IMPORT |PXA_LCDActiveOverlay2Disable|
00030 AREA |.pdata|, PDATA
|$T41406| DCD |$LN5@ActiveOver@3|
DCD 0x40000903
; Function compile flags: /Odtp
00418 AREA |.text|, CODE, ARM
00418 |ActiveOverlay2Disable| PROC
; 100 : {
00418 |$LN5@ActiveOver@3|
00418 e1a0c00d mov r12, sp
0041c e92d0001 stmdb sp!, {r0}
00420 e92d5000 stmdb sp!, {r12, lr}
00424 |$M41403|
; 101 : PXA_LCDActiveOverlay2Disable(lcd->lcd_regs);
00424 e59d3008 ldr r3, [sp, #8]
00428 e283301c add r3, r3, #0x1C
0042c e5930000 ldr r0, [r3]
00430 eb000000 bl PXA_LCDActiveOverlay2Disable
; 102 : }
00434 e89d6000 ldmia sp, {sp, lr}
00438 e12fff1e bx lr
0043c |$M41404|
ENDP ; |ActiveOverlay2Disable|
EXPORT |ActiveCreate|
IMPORT |HalAllocateCommonBuffer|
IMPORT |PXA_CTX_GetRegAddr2|
IMPORT |malloc|
00038 AREA |.pdata|, PDATA
|$T41412| DCD |$LN9@ActiveCrea|
DCD 0x40006804
; Function compile flags: /Odtp
0043c AREA |.text|, CODE, ARM
0043c |ActiveCreate| PROC
; 105 : {
0043c |$LN9@ActiveCrea|
0043c e1a0c00d mov r12, sp
00440 e92d0001 stmdb sp!, {r0}
00444 e92d5030 stmdb sp!, {r4, r5, r12, lr}
00448 e24dd030 sub sp, sp, #0x30
0044c |$M41409|
; 106 : PHYSICAL_ADDRESS phy_addr;
; 107 : DMA_ADAPTER_OBJECT adapter;
; 108 : UINT32 descs_phy;
; 109 : UINT i;
; 110 :
; 111 : active_lcd_t *lcd = (active_lcd_t*)malloc(sizeof(active_lcd_t));
0044c e3a0002c mov r0, #0x2C
00450 eb000000 bl malloc
00454 e58d0024 str r0, [sp, #0x24]
00458 e59d3024 ldr r3, [sp, #0x24]
0045c e58d3000 str r3, [sp]
; 112 :
; 113 : if (!lcd)
00460 e59d3000 ldr r3, [sp]
00464 e3530000 cmp r3, #0
00468 1a000002 bne |$LN4@ActiveCrea|
; 114 : return 0;
0046c e3a03000 mov r3, #0
00470 e58d3020 str r3, [sp, #0x20]
00474 ea00004d b |$LN5@ActiveCrea|
00478 |$LN4@ActiveCrea|
; 115 :
; 116 : lcd->lcd_regs = (lcd_registers_t*)PXA_CTX_GetRegAddr(PXA_PERIPHERAL_REGIDX_LCD);
00478 e3a01000 mov r1, #0
0047c e3a00021 mov r0, #0x21
00480 eb000000 bl PXA_CTX_GetRegAddr2
00484 e58d0028 str r0, [sp, #0x28]
00488 e59d3000 ldr r3, [sp]
0048c e283201c add r2, r3, #0x1C
00490 e59d3028 ldr r3, [sp, #0x28]
00494 e5823000 str r3, [r2]
; 117 :
; 118 : lcd->dma_descs = (lcd_dma_descriptor_t*)HalAllocateCommonBuffer(&adapter, sizeof(lcd_dma_descriptor_t) * LCD_DMA_CH_MAX, &phy_addr, FALSE);
00498 e3a03000 mov r3, #0
0049c e28d2008 add r2, sp, #8
004a0 e3a01050 mov r1, #0x50
004a4 e28d0014 add r0, sp, #0x14
004a8 eb000000 bl HalAllocateCommonBuffer
004ac e58d002c str r0, [sp, #0x2C]
004b0 e59d3000 ldr r3, [sp]
004b4 e2832024 add r2, r3, #0x24
004b8 e59d302c ldr r3, [sp, #0x2C]
004bc e5823000 str r3, [r2]
; 119 : descs_phy = (UINT32)phy_addr.LowPart;
004c0 e59d3008 ldr r3, [sp, #8]
004c4 e58d3010 str r3, [sp, #0x10]
; 120 :
; 121 : for (i = 0; i < LCD_DMA_CH_MAX; i++)
004c8 e3a03000 mov r3, #0
004cc e58d3004 str r3, [sp, #4]
004d0 ea000002 b |$LN3@ActiveCrea|
004d4 |$LN2@ActiveCrea|
004d4 e59d3004 ldr r3, [sp, #4]
004d8 e2833001 add r3, r3, #1
004dc e58d3004 str r3, [sp, #4]
004e0 |$LN3@ActiveCrea|
004e0 e59d3004 ldr r3, [sp, #4]
004e4 e3530005 cmp r3, #5
004e8 2a00000f bcs |$LN1@ActiveCrea|
; 122 : PXA_LCDInitDMADescriptor(&lcd->dma_descs[i], descs_phy + i * sizeof(lcd_dma_descriptor_t), 0, 0);
004ec e3a03000 mov r3, #0
004f0 e3a02000 mov r2, #0
004f4 e59de004 ldr lr, [sp, #4]
004f8 e3a01010 mov r1, #0x10
004fc e000019e mul r0, lr, r1
00500 e59d1010 ldr r1, [sp, #0x10]
00504 e0811000 add r1, r1, r0
00508 e59d0000 ldr r0, [sp]
0050c e2805024 add r5, r0, #0x24
00510 e59d4004 ldr r4, [sp, #4]
00514 e3a00010 mov r0, #0x10
00518 e00e0094 mul lr, r4, r0
0051c e5950000 ldr r0, [r5]
00520 e080000e add r0, r0, lr
00524 eb000000 bl PXA_LCDInitDMADescriptor
00528 eaffffe9 b |$LN2@ActiveCrea|
0052c |$LN1@ActiveCrea|
; 123 :
; 124 : (void*)lcd->base.init = (void*)ActiveInit;
0052c e59f20a4 ldr r2, [pc, #0xA4]
00530 e59d3000 ldr r3, [sp]
00534 e5832000 str r2, [r3]
; 125 : (void*)lcd->base.resume = (void*)ActiveResume;
00538 e59d3000 ldr r3, [sp]
0053c e2832004 add r2, r3, #4
00540 e59f308c ldr r3, [pc, #0x8C]
00544 e5823000 str r3, [r2]
; 126 : (void*)lcd->base.suspend = (void*)ActiveSuspend;
00548 e59d3000 ldr r3, [sp]
0054c e2832008 add r2, r3, #8
00550 e59f3078 ldr r3, [pc, #0x78]
00554 e5823000 str r3, [r2]
; 127 : (void*)lcd->base.flip = (void*)ActiveFlip;
00558 e59d3000 ldr r3, [sp]
0055c e283200c add r2, r3, #0xC
00560 e59f3064 ldr r3, [pc, #0x64]
00564 e5823000 str r3, [r2]
; 128 : (void*)lcd->base.overlay2_enable = (void*)ActiveOverlay2Enable;
00568 e59d3000 ldr r3, [sp]
0056c e2832010 add r2, r3, #0x10
00570 e59f3050 ldr r3, [pc, #0x50]
00574 e5823000 str r3, [r2]
; 129 : (void*)lcd->base.overlay2_disable = (void*)ActiveOverlay2Disable;
00578 e59d3000 ldr r3, [sp]
0057c e2832018 add r2, r3, #0x18
00580 e59f303c ldr r3, [pc, #0x3C]
00584 e5823000 str r3, [r2]
; 130 : (void*)lcd->base.overlay2_dyn_change = (void*)ActiveOverlay2DynChange;
00588 e59d3000 ldr r3, [sp]
0058c e2832014 add r2, r3, #0x14
00590 e59f3028 ldr r3, [pc, #0x28]
00594 e5823000 str r3, [r2]
; 131 : lcd->panel = panel;
00598 e59d3000 ldr r3, [sp]
0059c e2832028 add r2, r3, #0x28
005a0 e59d3040 ldr r3, [sp, #0x40]
005a4 e5823000 str r3, [r2]
; 132 : return (lcd_t*)lcd;
005a8 e59d3000 ldr r3, [sp]
005ac e58d3020 str r3, [sp, #0x20]
005b0 |$LN5@ActiveCrea|
; 133 : }
005b0 e59d0020 ldr r0, [sp, #0x20]
005b4 e28dd030 add sp, sp, #0x30
005b8 e89d6030 ldmia sp, {r4, r5, sp, lr}
005bc e12fff1e bx lr
005c0 |$LN10@ActiveCrea|
005c0 |$LN11@ActiveCrea|
005c0 00000000 DCD |ActiveOverlay2DynChange|
005c4 |$LN12@ActiveCrea|
005c4 00000000 DCD |ActiveOverlay2Disable|
005c8 |$LN13@ActiveCrea|
005c8 00000000 DCD |ActiveOverlay2Enable|
005cc |$LN14@ActiveCrea|
005cc 00000000 DCD |ActiveFlip|
005d0 |$LN15@ActiveCrea|
005d0 00000000 DCD |ActiveSuspend|
005d4 |$LN16@ActiveCrea|
005d4 00000000 DCD |ActiveResume|
005d8 |$LN17@ActiveCrea|
005d8 00000000 DCD |ActiveInit|
005dc |$M41410|
ENDP ; |ActiveCreate|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -