📄 samsunglcd.cod
字号:
00000 AREA |.pdata$$XllpInitSspLink|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpInitSspLink| } ; comdat associative
|$T42944| DCD |$L42943|
DCD 0x40003901
00000 AREA |.rdata| { |??_C@_0BI@FPOJCNOE@pSSPRegs?9?$DOssr?5?$DN?50x?$CFX?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@FPOJCNOE@pSSPRegs?9?$DOssr?5?$DN?50x?$CFX?4?$AN?6?$AA@| DCB "p"
DCB "SSPRegs->ssr = 0x%X.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BE@DEJFNFJC@dwTmpData?5?$DN?50x?$CFX?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BE@DEJFNFJC@dwTmpData?5?$DN?50x?$CFX?4?$AN?6?$AA@| DCB "dwTmpData"
DCB " = 0x%X.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpInitSspLink| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpInitSspLink| PROC
; 119 : {
00000 |$L42943|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M42941|
00004 e1a05000 mov r5, r0
; 120 : DWORD dwTmpData;
; 121 :
; 122 : g_pClkRegs->cken |= (1 << 23);
00008 e59f40d0 ldr r4, [pc, #0xD0]
; 123 : GPIOSetController((XLLP_GPIO_T *)g_pGPIORegs, SSPCLK | GPIO_AF2 | GPIO_OUT);
0000c e3a01c22 mov r1, #0x22, 24
00010 e3811017 orr r1, r1, #0x17
00014 e5942004 ldr r2, [r4, #4]
00018 e5923004 ldr r3, [r2, #4]
0001c e3833502 orr r3, r3, #2, 10
00020 e5823004 str r3, [r2, #4]
00024 e5940000 ldr r0, [r4]
00028 eb000000 bl GPIOSetController
; 124 : GPIOSetController((XLLP_GPIO_T *)g_pGPIORegs, SSPTXD | GPIO_AF2 | GPIO_OUT);
0002c e5940000 ldr r0, [r4]
00030 e3a01c22 mov r1, #0x22, 24
00034 e3811019 orr r1, r1, #0x19
00038 eb000000 bl GPIOSetController
; 125 : GPIOSetController((XLLP_GPIO_T *)g_pGPIORegs, SSPRXD | GPIO_AF1 | GPIO_IN);
0003c e5940000 ldr r0, [r4]
00040 e3a01c11 mov r1, #0x11, 24
00044 e381101a orr r1, r1, #0x1A
00048 eb000000 bl GPIOSetController
; 126 : GPIOSetController((XLLP_GPIO_T *)g_pGPIORegs, SSPTXD | GPIO_AF2 | GPIO_OUT);
0004c e5940000 ldr r0, [r4]
00050 e3a01c22 mov r1, #0x22, 24
00054 e3811019 orr r1, r1, #0x19
00058 eb000000 bl GPIOSetController
; 127 : GPIOSetController((XLLP_GPIO_T *)g_pGPIORegs, LCDCSB | GPIO_AF0 | GPIO_OUT);
0005c e5940000 ldr r0, [r4]
00060 e3a01a02 mov r1, #2, 20
00064 e3811013 orr r1, r1, #0x13
00068 eb000000 bl GPIOSetController
; 128 : GPIOSetControllerValue((XLLP_GPIO_T *)g_pGPIORegs, LCDCSB | GPIO_OUT_1);
0006c e5940000 ldr r0, [r4]
00070 e3a01e11 mov r1, #0x11, 28
00074 e3811003 orr r1, r1, #3
00078 eb000000 bl GPIOSetControllerValue
; 129 :
; 130 : pSSPRegs->sscr0 = XLLP_SSCR0_TIM | XLLP_SSCR0_RIM | XLLP_SSCR0_SCR_62K | XLLP_SSCR0_DSS_8BIT | XLLP_SSCR0_EDSS;
0007c e59f3058 ldr r3, [pc, #0x58]
; 131 : pSSPRegs->sscr1 = XLLP_SSCR1_SPO | XXLP_SSCR1_SPH;
00080 e3a02018 mov r2, #0x18
; 132 : pSSPRegs->sscr0 |= XLLP_SSCR0_SSE;
; 133 :
; 134 : while(pSSPRegs->ssr & XXLP_SSSP_RNE)
00084 e1a04005 mov r4, r5
00088 e5853000 str r3, [r5]
0008c e5852004 str r2, [r5, #4]
00090 e5953000 ldr r3, [r5]
00094 e3833080 orr r3, r3, #0x80
00098 e5853000 str r3, [r5]
0009c e5b43008 ldr r3, [r4, #8]!
000a0 ea000003 b |$L42940|
000a4 |$L42899|
; 135 : {
; 136 : dwTmpData = pSSPRegs->ssdr;
000a4 e5951010 ldr r1, [r5, #0x10]
; 137 : EdbgOutputDebugString("dwTmpData = 0x%X.\r\n", dwTmpData);
000a8 e59f0028 ldr r0, [pc, #0x28]
000ac eb000000 bl EdbgOutputDebugString
000b0 e5943000 ldr r3, [r4]
000b4 |$L42940|
000b4 e3130008 tst r3, #8
000b8 1afffff9 bne |$L42899|
; 138 : }
; 139 : EdbgOutputDebugString("pSSPRegs->ssr = 0x%X.\r\n", pSSPRegs->ssr);
000bc e5941000 ldr r1, [r4]
000c0 e59f000c ldr r0, [pc, #0xC]
000c4 eb000000 bl EdbgOutputDebugString
; 140 :
; 141 : return TRUE;
000c8 e3a00001 mov r0, #1
; 142 : }
000cc e8bd4030 ldmia sp!, {r4, r5, lr}
000d0 e12fff1e bx lr
000d4 |$L42946|
000d4 00000000 DCD |??_C@_0BI@FPOJCNOE@pSSPRegs?9?$DOssr?5?$DN?50x?$CFX?4?$AN?6?$AA@|
000d8 00000000 DCD |??_C@_0BE@DEJFNFJC@dwTmpData?5?$DN?50x?$CFX?4?$AN?6?$AA@|
000dc 00d2cf07 DCD 0xd2cf07
000e0 00000000 DCD |g_pGPIORegs|
000e4 |$M42942|
ENDP ; |XllpInitSspLink|
EXPORT |SamsungLCDPowerOn|
EXPORT |??_C@_0N@POGKFH@Size?5?$DN?5?$CFd?4?$AN?6?$AA@| [ DATA ] ; `string'
IMPORT |Wait|
00000 AREA |.text| { |SamsungLCDPowerOn| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SamsungLCDPowerOn|, PDATA, SELECTION=5, ASSOC=|.text| { |SamsungLCDPowerOn| } ; comdat associative
|$T42970| DCD |$L42969|
DCD 0x40003a01
00000 AREA |.rdata| { |??_C@_0N@POGKFH@Size?5?$DN?5?$CFd?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0N@POGKFH@Size?5?$DN?5?$CFd?4?$AN?6?$AA@| DCB "Size = %d.", 0xd, 0xa
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |SamsungLCDPowerOn| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SamsungLCDPowerOn| PROC
; 89 : {
00000 |$L42969|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M42967|
; 90 : DWORD i;
; 91 : DWORD dwTempData;
; 92 :
; 93 : ResetLCD();
00004 eb000000 bl ResetLCD
; 94 : XllpInitSspLink(g_pSSP1Regs);
00008 e59f40d4 ldr r4, [pc, #0xD4]
0000c e5940000 ldr r0, [r4]
00010 eb000000 bl XllpInitSspLink
; 95 : EdbgOutputDebugString("Size = %d.\r\n", sizeof(LcmInitTable) / 6);
00014 e59f00c4 ldr r0, [pc, #0xC4]
00018 e3a01026 mov r1, #0x26
0001c eb000000 bl EdbgOutputDebugString
00020 e59f50b4 ldr r5, [pc, #0xB4]
00024 e3a06026 mov r6, #0x26
00028 |$L42869|
; 96 : for(i = 0; i < sizeof(LcmInitTable) / 6; i++)
; 97 : {
; 98 : GPIOSetControllerValue((XLLP_GPIO_T *)g_pGPIORegs, LCDCSB | GPIO_OUT_0);
00028 e5940004 ldr r0, [r4, #4]
0002c e3a01013 mov r1, #0x13
00030 eb000000 bl GPIOSetControllerValue
; 99 : dwTempData = (0x74 << 16) | LcmInitTable[i][0];
; 100 : g_pSSP1Regs->ssdr = dwTempData;
00034 e1d530b0 ldrh r3, [r5]
00038 e5942000 ldr r2, [r4]
0003c e383371d orr r3, r3, #0x1D, 14
00040 e5823010 str r3, [r2, #0x10]
00044 e5942000 ldr r2, [r4]
00048 |$L42874|
; 101 : while(g_pSSP1Regs->ssr & XXLP_SSSP_TFL_MASK);
00048 e5923008 ldr r3, [r2, #8]
0004c e3130c0f tst r3, #0xF, 24
00050 1afffffc bne |$L42874|
00054 |$L42877|
; 102 : while(g_pSSP1Regs->ssr & XXLP_SSSP_BSY);
00054 e5923008 ldr r3, [r2, #8]
00058 e3130010 tst r3, #0x10
0005c 1afffffc bne |$L42877|
; 103 : //EdbgOutputDebugString("dwTempData = 0x%X.\r\n", dwTempData);
; 104 : GPIOSetControllerValue((XLLP_GPIO_T *)g_pGPIORegs, LCDCSB | GPIO_OUT_1);
00060 e5940004 ldr r0, [r4, #4]
00064 e3a01e11 mov r1, #0x11, 28
00068 e3811003 orr r1, r1, #3
0006c eb000000 bl GPIOSetControllerValue
; 105 :
; 106 : Wait(1);
00070 e3a00001 mov r0, #1
00074 eb000000 bl Wait
; 107 : GPIOSetControllerValue((XLLP_GPIO_T *)g_pGPIORegs, LCDCSB | GPIO_OUT_0);
00078 e5940004 ldr r0, [r4, #4]
0007c e3a01013 mov r1, #0x13
00080 eb000000 bl GPIOSetControllerValue
; 108 : dwTempData = (0x76 << 16) | LcmInitTable[i][1];
; 109 : g_pSSP1Regs->ssdr = dwTempData;
00084 e1d530b2 ldrh r3, [r5, #2]
00088 e5942000 ldr r2, [r4]
0008c e3833876 orr r3, r3, #0x76, 16
00090 e5823010 str r3, [r2, #0x10]
00094 e5942000 ldr r2, [r4]
00098 |$L42882|
; 110 : while(g_pSSP1Regs->ssr & XXLP_SSSP_TFL_MASK);
00098 e5923008 ldr r3, [r2, #8]
0009c e3130c0f tst r3, #0xF, 24
000a0 1afffffc bne |$L42882|
000a4 |$L42885|
; 111 : while(g_pSSP1Regs->ssr & XXLP_SSSP_BSY);
000a4 e5923008 ldr r3, [r2, #8]
000a8 e3130010 tst r3, #0x10
000ac 1afffffc bne |$L42885|
; 112 : //EdbgOutputDebugString("dwTempData = 0x%X.\r\n", dwTempData);
; 113 : GPIOSetControllerValue((XLLP_GPIO_T *)g_pGPIORegs, LCDCSB | GPIO_OUT_1);
000b0 e5940004 ldr r0, [r4, #4]
000b4 e3a01e11 mov r1, #0x11, 28
000b8 e3811003 orr r1, r1, #3
000bc eb000000 bl GPIOSetControllerValue
; 114 : msWait(LcmInitTable[i][2]);
000c0 e1d500b4 ldrh r0, [r5, #4]
000c4 eb000000 bl msWait
000c8 e2855006 add r5, r5, #6
000cc e2566001 subs r6, r6, #1
000d0 1affffd4 bne |$L42869|
; 115 : }
; 116 : }
000d4 e8bd4070 ldmia sp!, {r4 - r6, lr}
000d8 e12fff1e bx lr
000dc |$L42972|
000dc 00000000 DCD |LcmInitTable|
000e0 00000000 DCD |??_C@_0N@POGKFH@Size?5?$DN?5?$CFd?4?$AN?6?$AA@|
000e4 00000000 DCD |g_pSSP1Regs|
000e8 |$M42968|
ENDP ; |SamsungLCDPowerOn|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -