📄 xllp_lcd.cod
字号:
003b8 07b008f8 DCD 0x7b008f8
003bc 03eeffff DCD 0x3eeffff
003c0 3f3f3d3f DCD 0x3f3f3d3f
003c4 00000000 DCD |??_C@_1EC@LGHIFOED@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAE?$AAn?$AAt?$AAe?$AAr?$AA?5?$AAL?$AAC?$AAD?$AAI?$AAn?$AAi?$AAt?$AAC?$AAo@|
003c8 |$M35538|
ENDP ; |LCDInitController|
EXPORT |LCDClearStatusReg|
00000 AREA |.text| { |LCDClearStatusReg| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$LCDClearStatusReg|, PDATA, SELECTION=5, ASSOC=|.text| { |LCDClearStatusReg| } ; comdat associative
|$T35550| DCD |$L35549|
DCD 0x40000800
; Function compile flags: /Ogsy
00000 AREA |.text| { |LCDClearStatusReg| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |LCDClearStatusReg| PROC
; 435 : {
00000 |$L35549|
00000 |$M35547|
; 436 : volatile LCDRegs *p_LCDRegs;
; 437 : p_LCDRegs = (LCDRegs *) pXllpLCD->LCDC;
00000 e5901008 ldr r1, [r0, #8]
; 438 :
; 439 : // Clear the status registers by writing 1's to each bit.
; 440 : p_LCDRegs->LCSR0 = ( LCD_LDD | LCD_SOF0| LCD_BER | LCD_ABC | LCD_IU0 |
; 441 : LCD_IU1 | LCD_OU | LCD_QD | LCD_EOF0| LCD_BS0 |
; 442 : LCD_SINT| LCD_RD_ST | LCD_CMD_INTR );
; 443 :
; 444 : p_LCDRegs->LCSR1 = ( LCD_SOF1| LCD_SOF2| LCD_SOF3| LCD_SOF4| LCD_SOF5 | LCD_SOF6 |
; 445 : LCD_EOF1| LCD_EOF2| LCD_EOF3| LCD_EOF4| LCD_EOF5 | LCD_EOF6 |
; 446 : LCD_BS1 | LCD_BS2 | LCD_BS3 | LCD_BS4 | LCD_BS5 | LCD_BS6 |
; 447 : LCD_IU2 | LCD_IU3 | LCD_IU4 | LCD_IU5 | LCD_IU6 );
00004 e59f2010 ldr r2, [pc, #0x10]
00008 e3a03d7f mov r3, #0x7F, 26
0000c e383303f orr r3, r3, #0x3F
00010 e5813038 str r3, [r1, #0x38]
00014 e5812034 str r2, [r1, #0x34]
; 448 :
; 449 : }
00018 e12fff1e bx lr
0001c |$L35552|
0001c 3e3f3f3f DCD 0x3e3f3f3f
00020 |$M35548|
ENDP ; |LCDClearStatusReg|
EXPORT |LCDSetupGPIOs|
EXPORT |??_C@_1DK@CBOBFONC@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAE?$AAn?$AAt?$AAe?$AAr?$AA?5?$AAL?$AAC?$AAD?$AAS?$AAe?$AAt?$AAu?$AAp?$AAG@| [ DATA ] ; `string'
IMPORT |XllpOstDelayMilliSeconds|
00000 AREA |.text| { |LCDSetupGPIOs| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$LCDSetupGPIOs|, PDATA, SELECTION=5, ASSOC=|.text| { |LCDSetupGPIOs| } ; comdat associative
|$T35560| DCD |$L35559|
DCD 0x40006a02
00000 AREA |.rdata| { |??_C@_1DK@CBOBFONC@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAE?$AAn?$AAt?$AAe?$AAr?$AA?5?$AAL?$AAC?$AAD?$AAS?$AAe?$AAt?$AAu?$AAp?$AAG@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DK@CBOBFONC@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAE?$AAn?$AAt?$AAe?$AAr?$AA?5?$AAL?$AAC?$AAD?$AAS?$AAe?$AAt?$AAu?$AAp?$AAG@| DCB "Z"
DCB 0x0, "G", 0x0, "B", 0x0, ":", 0x0, " ", 0x0, "E", 0x0, "n"
DCB 0x0, "t", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "L", 0x0, "C"
DCB 0x0, "D", 0x0, "S", 0x0, "e", 0x0, "t", 0x0, "u", 0x0, "p"
DCB 0x0, "G", 0x0, "P", 0x0, "I", 0x0, "O", 0x0, "s", 0x0, "("
DCB 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |LCDSetupGPIOs| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |LCDSetupGPIOs| PROC
; 452 : {
00000 |$L35559|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M35557|
00008 e1a05000 mov r5, r0
; 453 : volatile unsigned int APB_Temp;
; 454 : volatile XLLP_GPIO_T *p_GPIORegs;
; 455 :
; 456 : RETAILMSG(ZGB_MSG, (TEXT("ZGB: Enter LCDSetupGPIOs()\r\n")));
0000c e59f0190 ldr r0, [pc, #0x190]
00010 eb000000 bl NKDbgPrintfW
; 457 :
; 458 : p_GPIORegs = (XLLP_GPIO_T *) pXllpLCD->GPIO;
00014 e5954000 ldr r4, [r5]
; 459 :
; 460 : //XllpLock(XLLP_RESOURCE_GPDR1);
; 461 : p_GPIORegs->GPDR1 |= ( XLLP_GPIO_BIT_L_DD0 | XLLP_GPIO_BIT_L_DD1 | XLLP_GPIO_BIT_L_DD2 | XLLP_GPIO_BIT_L_DD3 | XLLP_GPIO_BIT_L_DD4 | XLLP_GPIO_BIT_L_DD5);
; 462 :
; 463 : //XllpLock(XLLP_RESOURCE_GPDR2);
; 464 : p_GPIORegs->GPDR2 |= ( XLLP_GPIO_BIT_L_DD6 | XLLP_GPIO_BIT_L_DD7 | XLLP_GPIO_BIT_L_DD8 | XLLP_GPIO_BIT_L_DD9 | XLLP_GPIO_BIT_L_DD10 |
; 465 : XLLP_GPIO_BIT_L_DD11 | XLLP_GPIO_BIT_L_DD12 | XLLP_GPIO_BIT_L_DD13 | XLLP_GPIO_BIT_L_DD14 | XLLP_GPIO_BIT_L_DD15 |
; 466 : //XLLP_GPIO_BIT_L_FCLK | XLLP_GPIO_BIT_L_LCLK |
; 467 : XLLP_GPIO_BIT_L_PCLK | XLLP_GPIO_BIT_L_BIAS | XLLP_GPIO_BIT_LED_PWM);
00018 e3a02cb3 mov r2, #0xB3, 24
0001c e38220ff orr r2, r2, #0xFF
; 468 :
; 469 : //XllpUnlock(XLLP_RESOURCE_GPDR2);
; 470 :
; 471 : // Program the GAFR1_U to select alternate function 2 for GPIO 58 through 63.
; 472 : //XllpLock(XLLP_RESOURCE_GAFR1_U);
; 473 : p_GPIORegs->GAFR1_U = (p_GPIORegs->GAFR1_U & ~(XLLP_GPIO_AF_BIT_L_DD0_MASK | XLLP_GPIO_AF_BIT_L_DD1_MASK | XLLP_GPIO_AF_BIT_L_DD2_MASK|
; 474 : XLLP_GPIO_AF_BIT_L_DD3_MASK | XLLP_GPIO_AF_BIT_L_DD4_MASK | XLLP_GPIO_AF_BIT_L_DD5_MASK)) |
; 475 : (XLLP_GPIO_AF_BIT_L_DD0 | XLLP_GPIO_AF_BIT_L_DD1 | XLLP_GPIO_AF_BIT_L_DD2 |
; 476 : XLLP_GPIO_AF_BIT_L_DD3 | XLLP_GPIO_AF_BIT_L_DD4 | XLLP_GPIO_AF_BIT_L_DD5 );
00020 e5943010 ldr r3, [r4, #0x10]
00024 e3a0e601 mov lr, #1, 12
00028 e24ee001 sub lr, lr, #1
0002c e383333f orr r3, r3, #0x3F, 6
00030 e5843010 str r3, [r4, #0x10]
00034 e5943014 ldr r3, [r4, #0x14]
00038 e3a014aa mov r1, #0xAA, 8
0003c e381160a orr r1, r1, #0xA, 12
; 477 : //XllpUnlock(XLLP_RESOURCE_GAFR1_U);
; 478 :
; 479 : // Program the GAFR2_L to select alternate function 2 for GPIO 64 through 77.
; 480 : //XllpLock(XLLP_RESOURCE_GAFR2_L);
; 481 : p_GPIORegs->GAFR2_L = (p_GPIORegs->GAFR2_L & ~(XLLP_GPIO_AF_BIT_L_DD6_MASK | XLLP_GPIO_AF_BIT_L_DD7_MASK | XLLP_GPIO_AF_BIT_L_DD8_MASK |
; 482 : XLLP_GPIO_AF_BIT_L_DD9_MASK | XLLP_GPIO_AF_BIT_L_DD10_MASK | XLLP_GPIO_AF_BIT_L_DD11_MASK |
; 483 : XLLP_GPIO_AF_BIT_L_DD12_MASK | XLLP_GPIO_AF_BIT_L_DD13_MASK | XLLP_GPIO_AF_BIT_L_DD14_MASK |
; 484 : XLLP_GPIO_AF_BIT_L_DD15_MASK | XLLP_GPIO_AF_BIT_L_FCLK_RD_MASK | XLLP_GPIO_AF_BIT_L_LCLK_A0_MASK |
; 485 : XLLP_GPIO_AF_BIT_L_PCLK_WR_MASK | XLLP_GPIO_AF_BIT_L_BIAS_MASK | XLLP_GPIO_AF_BIT_PCMCIA_PSKTSEL_MASK)) |
; 486 : (XLLP_GPIO_AF_BIT_L_DD6 | XLLP_GPIO_AF_BIT_L_DD7 | XLLP_GPIO_AF_BIT_L_DD8 |
; 487 : XLLP_GPIO_AF_BIT_L_DD9 | XLLP_GPIO_AF_BIT_L_DD10 | XLLP_GPIO_AF_BIT_L_DD11 |
; 488 : XLLP_GPIO_AF_BIT_L_DD12 | XLLP_GPIO_AF_BIT_L_DD13 | XLLP_GPIO_AF_BIT_L_DD14 |
; 489 : XLLP_GPIO_AF_BIT_L_DD15 |
; 490 : //XLLP_GPIO_AF_BIT_L_FCLK_RD| XLLP_GPIO_AF_BIT_L_LCLK_A0 |
; 491 : XLLP_GPIO_AF_BIT_L_PCLK_WR | XLLP_GPIO_AF_BIT_L_BIAS );
00040 e1833002 orr r3, r3, r2
00044 e5843014 str r3, [r4, #0x14]
00048 e5943060 ldr r3, [r4, #0x60]
0004c e59f214c ldr r2, [pc, #0x14C]
; 492 : //XllpUnlock(XLLP_RESOURCE_GAFR2_L);
; 493 :
; 494 : if (pXllpLCD->DisplayType == TCO28STEA1 || pXllpLCD->DisplayType == ACX333AK)
00050 e59f6144 ldr r6, [pc, #0x144]
00054 e003300e and r3, r3, lr
00058 e1833001 orr r3, r3, r1
0005c e5843060 str r3, [r4, #0x60]
00060 e5943064 ldr r3, [r4, #0x64]
00064 e2033203 and r3, r3, #3, 4
00068 e1833002 orr r3, r3, r2
0006c e5843064 str r3, [r4, #0x64]
00070 e5953014 ldr r3, [r5, #0x14]
00074 e3530007 cmp r3, #7
00078 0a000001 beq |$L35284|
0007c e3530008 cmp r3, #8
00080 1a00000d bne |$L35285|
00084 |$L35284|
; 495 : {
; 496 : // Turn on the backlight...
; 497 : p_GPIORegs->GPDR0 |= XLLP_GPIO_BIT_LED_EN;
00084 e594300c ldr r3, [r4, #0xC]
; 498 : p_GPIORegs->GAFR0_U &= ~XLLP_GPIO_AF_BIT_LED_EN_MASK;
00088 e3833801 orr r3, r3, #1, 16
0008c e584300c str r3, [r4, #0xC]
00090 e5943058 ldr r3, [r4, #0x58]
; 499 : p_GPIORegs->GPSR0 |= XLLP_GPIO_BIT_LED_EN;
00094 e3c33003 bic r3, r3, #3
00098 e5843058 str r3, [r4, #0x58]
0009c e5943018 ldr r3, [r4, #0x18]
000a0 e3833801 orr r3, r3, #1, 16
000a4 e5843018 str r3, [r4, #0x18]
; 500 : }
; 501 :
; 502 : //power on sequence
; 503 : if (pXllpLCD->DisplayType == ACX333AK)
000a8 e5953014 ldr r3, [r5, #0x14]
000ac e3530008 cmp r3, #8
; 504 : {
; 505 : //p_GPIORegs->GPSR0 |= XLLP_GPIO_BIT_L_RST;
; 506 : XllpOstDelayMilliSeconds(pOSTRegs,25);
000b0 05960000 ldreq r0, [r6]
000b4 03a01019 moveq r1, #0x19
000b8 0b000000 bleq XllpOstDelayMilliSeconds
000bc |$L35285|
; 507 : //p_GPIORegs->GPSR0 |= XLLP_GPIO_BIT_L_PCI;
; 508 : }
; 509 : if (pXllpLCD->DisplayType == TCO28STEA1)
000bc e5953014 ldr r3, [r5, #0x14]
000c0 e3530007 cmp r3, #7
000c4 1a00002f bne |$L35286|
; 510 : {
; 511 : p_GPIORegs->GPDR2 |= XLLP_GPIO_BIT_LED_PWM;
000c8 e5943014 ldr r3, [r4, #0x14]
; 512 : p_GPIORegs->GAFR2_L |= XLLP_GPIO_AF_BIT_LED_PWM_MASK; //for lcd backlight!
; 513 : //p_GPIORegs->GAFR2_L &= ~XLLP_GPIO_AF_BIT_LED_PWM_MASK;
; 514 : //p_GPIORegs->GPCR2 |= XLLP_GPIO_BIT_LED_PWM;
; 515 :
; 516 : p_GPIORegs->GPDR2 |= XLLP_GPIO_BIT_L_PWR_EN;
; 517 : p_GPIORegs->GAFR2_U &= ~XLLP_GPIO_AF_BIT_L_PWR_EN_MASK;
; 518 : p_GPIORegs->GPSR2 |= XLLP_GPIO_BIT_L_PWR_EN;
; 519 :
; 520 : p_GPIORegs->GPDR1 |= XLLP_GPIO_BIT_5V_EN;
; 521 : p_GPIORegs->GAFR1_L &= ~XLLP_GPIO_AF_BIT_5V_EN_MASK;
; 522 : p_GPIORegs->GPSR1 |= XLLP_GPIO_BIT_5V_EN;
; 523 : XllpOstDelayMilliSeconds(pOSTRegs,25);
000cc e3a01019 mov r1, #0x19
000d0 e3833902 orr r3, r3, #2, 18
000d4 e5843014 str r3, [r4, #0x14]
000d8 e5943064 ldr r3, [r4, #0x64]
000dc e3833103 orr r3, r3, #3, 2
000e0 e5843064 str r3, [r4, #0x64]
000e4 e5943014 ldr r3, [r4, #0x14]
000e8 e3833502 orr r3, r3, #2, 10
000ec e5843014 str r3, [r4, #0x14]
000f0 e5943068 ldr r3, [r4, #0x68]
000f4 e3c33903 bic r3, r3, #3, 18
000f8 e5843068 str r3, [r4, #0x68]
000fc e5943020 ldr r3, [r4, #0x20]
00100 e3833502 orr r3, r3, #2, 10
00104 e5843020 str r3, [r4, #0x20]
00108 e5943010 ldr r3, [r4, #0x10]
0010c e3833040 orr r3, r3, #0x40
00110 e5843010 str r3, [r4, #0x10]
00114 e594305c ldr r3, [r4, #0x5C]
00118 e3c33a03 bic r3, r3, #3, 20
0011c e584305c str r3, [r4, #0x5C]
00120 e594301c ldr r3, [r4, #0x1C]
00124 e3833040 orr r3, r3, #0x40
00128 e584301c str r3, [r4, #0x1C]
0012c e5960000 ldr r0, [r6]
00130 eb000000 bl XllpOstDelayMilliSeconds
; 524 : p_GPIORegs->GPDR2 |= XLLP_GPIO_BIT_65V_EN;
00134 e5943014 ldr r3, [r4, #0x14]
; 525 : p_GPIORegs->GAFR2_U &= ~XLLP_GPIO_AF_BIT_65V_EN_MASK;
; 526 : p_GPIORegs->GPSR2 |= XLLP_GPIO_BIT_65V_EN;
; 527 : XllpOstDelayMilliSeconds(pOSTRegs,25);
00138 e3a01019 mov r1, #0x19
0013c e3833101 orr r3, r3, #1, 2
00140 e5843014 str r3, [r4, #0x14]
00144 e5943068 ldr r3, [r4, #0x68]
00148 e3c33203 bic r3, r3, #3, 4
0014c e5843068 str r3, [r4, #0x68]
00150 e5943020 ldr r3, [r4, #0x20]
00154 e3833101 orr r3, r3, #1, 2
00158 e5843020 str r3, [r4, #0x20]
0015c e5960000 ldr r0, [r6]
00160 eb000000 bl XllpOstDelayMilliSeconds
; 528 : p_GPIORegs->GPDR3 |= XLLP_GPIO_BIT_10V_EN;
00164 e594310c ldr r3, [r4, #0x10C]
; 529 : p_GPIORegs->GAFR3_L &= ~XLLP_GPIO_AF_BIT_10V_EN_MASK;
00168 e3833b02 orr r3, r3, #2, 22
0016c e584310c str r3, [r4, #0x10C]
00170 e594306c ldr r3, [r4, #0x6C]
; 530 : p_GPIORegs->GPSR3 |= XLLP_GPIO_BIT_10V_EN;
00174 e3c33503 bic r3, r3, #3, 10
00178 e584306c str r3, [r4, #0x6C]
0017c e5943118 ldr r3, [r4, #0x118]
00180 e3833b02 orr r3, r3, #2, 22
00184 e5843118 str r3, [r4, #0x118]
00188 |$L35286|
; 531 : }
; 532 :
; 533 : //
; 534 : // Ensure GPIO writes that have posted complete
; 535 : //
; 536 : APB_Temp = p_GPIORegs->GAFR0_L;
00188 e5943054 ldr r3, [r4, #0x54]
0018c e58d3000 str r3, [sp]
; 537 :
; 538 : }
00190 e28dd004 add sp, sp, #4
00194 e8bd4070 ldmia sp!, {r4 - r6, lr}
00198 e12fff1e bx lr
0019c |$L35562|
0019c 00000000 DCD |pOSTRegs|
001a0 0a0aaaaa DCD 0xa0aaaaa
001a4 00000000 DCD |??_C@_1DK@CBOBFONC@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAE?$AAn?$AAt?$AAe?$AAr?$AA?5?$AAL?$AAC?$AAD?$AAS?$AAe?$AAt?$AAu?$AAp?$AAG@|
001a8 |$M35558|
ENDP ; |LCDSetupGPIOs|
EXPORT |LCDEnableController|
EXPORT |??_C@_1DK@BOABLGJH@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAL?$AAC?$AAD?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo@| [ DATA ] ; `string'
00000 AREA |.text| { |LCDEnableController| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$LCDEnableController|, PDATA, SELECTION=5, ASSOC=|.text| { |LCDEnableController| } ; comdat associative
|$T35570| DCD |$L35569|
DCD 0x40000b01
00000 AREA |.rdata| { |??_C@_1DK@BOABLGJH@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAL?$AAC?$AAD?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DK@BOABLGJH@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAL?$AAC?$AAD?$AAE?$AAn?$AAa?$AAb?$AAl?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo@| DCB "Z"
DCB 0x0, "G", 0x0, "B", 0x0, ":", 0x0, " ", 0x0, "L", 0x0, "C"
DCB 0x0, "D", 0x0, "E", 0x0, "n", 0x0, "a", 0x0, "b", 0x0, "l"
DCB 0x0, "e", 0x0, "C", 0x0, "o", 0x0, "n", 0x0, "t", 0x0, "r"
DCB 0x0, "o", 0x0, "l", 0x0, "l", 0x0, "e", 0x0, "r", 0x0, "("
DCB 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -