⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xllp_lcd.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 315  : 	else if (CCCR_L < 17) // L = [8 - 16] 

  001d4	e3520011	 cmp         r2, #0x11

; 316  : 		LCLK = ((13 * CCCR_L) * 100) >> 1;

  001d8	33a03e51	 movcc       r3, #0x51, 28
  001dc	33833004	 orrcc       r3, r3, #4
  001e0	30030392	 mulcc       r3, r2, r3
  001e4	31a070a3	 movcc       r7, r3, lsr #1
  001e8	3a000004	 bcc         |$L35242|

; 317  : 	else if (CCCR_L < 32) // L = [17 - 31]

  001ec	e3520020	 cmp         r2, #0x20

; 318  : 		LCLK = ((13 * CCCR_L) * 100) >> 2;

  001f0	33a03e51	 movcc       r3, #0x51, 28
  001f4	33833004	 orrcc       r3, r3, #4
  001f8	30030392	 mulcc       r3, r2, r3
  001fc	31a07123	 movcc       r7, r3, lsr #2
  00200		 |$L35242|

; 319  : 	
; 320  : 	//WHEN entering 13M mode, we must know and set the LCLK!
; 321  : 	//...
; 322  : 	
; 323  : 	// Convert the bpp setting into a value that the LCD controller understands.
; 324  : 	switch(pXllpLCD->BPP)

  00200	e5943028	 ldr         r3, [r4, #0x28]
  00204	e3530020	 cmp         r3, #0x20
  00208	8a000014	 bhi         |$L35525|
  0020c	0a000011	 beq         |$L35252|
  00210	e3530001	 cmp         r3, #1
  00214	0a00001b	 beq         |$L35258|
  00218	e3530002	 cmp         r3, #2
  0021c	0a00000b	 beq         |$L35248|
  00220	e3530004	 cmp         r3, #4
  00224	0a000007	 beq         |$L35249|
  00228	e3530008	 cmp         r3, #8
  0022c	0a000003	 beq         |$L35250|
  00230	e3530010	 cmp         r3, #0x10
  00234	1a000013	 bne         |$L35258|

; 338  : 		case BPP_16:
; 339  : 			BPP = 4;

  00238	e3a06004	 mov         r6, #4

; 340  : 			break;

  0023c	ea00001c	 b           |$L35244|
  00240		 |$L35250|

; 335  : 		case BPP_8:
; 336  : 			BPP = 3;

  00240	e3a06003	 mov         r6, #3

; 337  : 			break;

  00244	ea00001a	 b           |$L35244|
  00248		 |$L35249|

; 332  : 		case BPP_4:
; 333  : 			BPP = 2;

  00248	e3a06002	 mov         r6, #2

; 334  : 			break;

  0024c	ea000018	 b           |$L35244|
  00250		 |$L35248|

; 325  : 	{
; 326  : 		case BPP_1:
; 327  : 			BPP = 0;
; 328  : 			break;
; 329  : 		case BPP_2:
; 330  : 			BPP = 1;

  00250	e3a06001	 mov         r6, #1

; 331  : 			break;

  00254	ea000016	 b           |$L35244|
  00258		 |$L35252|

; 341  : 		case BPP_18:
; 342  : 			BPP = 5;

  00258	e3a06005	 mov         r6, #5

; 343  : 			break;

  0025c	ea000014	 b           |$L35244|
  00260		 |$L35525|

; 319  : 	
; 320  : 	//WHEN entering 13M mode, we must know and set the LCLK!
; 321  : 	//...
; 322  : 	
; 323  : 	// Convert the bpp setting into a value that the LCD controller understands.
; 324  : 	switch(pXllpLCD->BPP)

  00260	e3530040	 cmp         r3, #0x40
  00264	0a000011	 beq         |$L35253|
  00268	e3530080	 cmp         r3, #0x80
  0026c	0a00000d	 beq         |$L35254|
  00270	e3530c01	 cmp         r3, #1, 24
  00274	0a000009	 beq         |$L35255|
  00278	e3530c02	 cmp         r3, #2, 24
  0027c	0a000005	 beq         |$L35256|
  00280	e3530b01	 cmp         r3, #1, 22
  00284	0a000001	 beq         |$L35257|
  00288		 |$L35258|

; 359  : 		default:
; 360  : 		{
; 361  : 			BPP = 0;

  00288	e3a06000	 mov         r6, #0

; 362  : 			break;

  0028c	ea000008	 b           |$L35244|
  00290		 |$L35257|

; 356  : 		case BPP_25:
; 357  : 			BPP = 10;

  00290	e3a0600a	 mov         r6, #0xA

; 358  : 			break;

  00294	ea000006	 b           |$L35244|
  00298		 |$L35256|

; 353  : 		case BPP_24:
; 354  : 			BPP = 9;

  00298	e3a06009	 mov         r6, #9

; 355  : 			break;

  0029c	ea000004	 b           |$L35244|
  002a0		 |$L35255|

; 350  : 		case BPP_19_PACKED:
; 351  : 			BPP = 8;

  002a0	e3a06008	 mov         r6, #8

; 352  : 			break;

  002a4	ea000002	 b           |$L35244|
  002a8		 |$L35254|

; 346  : 			break;
; 347  : 		case BPP_19:
; 348  : 			BPP = 7;

  002a8	e3a06007	 mov         r6, #7

; 349  : 			break;

  002ac	ea000000	 b           |$L35244|
  002b0		 |$L35253|

; 344  : 		case BPP_18_PACKED:
; 345  : 			BPP = 6;

  002b0	e3a06006	 mov         r6, #6
  002b4		 |$L35244|

; 363  : 		}
; 364  : 	}
; 365  : 
; 366  : 	switch(pXllpLCD->DisplayType)

  002b4	e5943014	 ldr         r3, [r4, #0x14]
  002b8	e3530007	 cmp         r3, #7
  002bc	0a000014	 beq         |$L35266|
  002c0	e3530008	 cmp         r3, #8
  002c4	1a000031	 bne         |$L35268|

; 367  : 	{
; 368  : 	  case ACX333AK: // 240x320 16bpp active matrix
; 369  : 		{
; 370  : 
; 371  : 			PCD = (LCLK / (2 * ACX333AK_PIXEL_CLOCK_FREQUENCY)) - 1;   //why not reduce 1, in the intel code?
; 372  : 
; 373  : 			// Configure the LCD Controller Control Registers
; 374  : 			p_LCDRegs->LCCR0 = (LCD_LDM | LCD_SFM | LCD_IUM | LCD_EFM | 
; 375  : 								LCD_PAS | LCD_QDM | LCD_BM  | LCD_OUM |
; 376  : 								LCD_RDSTM | LCD_CMDIM | LCD_OUC | LCD_LDDALT);

  002c8	e59f30e8	 ldr         r3, [pc, #0xE8]
  002cc	e59f20e0	 ldr         r2, [pc, #0xE0]

; 377  : 
; 378  : 			p_LCDRegs->LCCR1 = (LCD_PPL(0xEF) | LCD_HSW(0x03) | 
; 379  : 								LCD_ELW(0x07)  | LCD_BLW(0x0B) );

  002d0	e59f10d8	 ldr         r1, [pc, #0xD8]

; 380  : 			
; 381  : 			p_LCDRegs->LCCR2 = (LCD_LPP(0x13f) | LCD_VSW(0x01) |
; 382  : 								LCD_EFW(0x04)  | LCD_BFW(0x02) );

  002d4	e59f00d0	 ldr         r0, [pc, #0xD0]
  002d8	e5853000	 str         r3, [r5]
  002dc	e0c3e297	 smull       lr, r3, r7, r2
  002e0	e5881000	 str         r1, [r8]
  002e4	e5850008	 str         r0, [r5, #8]

; 383  : 
; 384  : 			p_LCDRegs->LCCR3 = (LCD_PCD(PCD)  | LCD_BPP(BPP) | LCD_PCP | LCD_HSP | LCD_VSP | 
; 385  : 								LCD_PDFOR(pXllpLCD->PixelDataFormat));

  002e8	e594202c	 ldr         r2, [r4, #0x2C]
  002ec	e1a01343	 mov         r1, r3, asr #6
  002f0	e2063008	 and         r3, r6, #8
  002f4	e1832202	 orr         r2, r3, r2, lsl #4
  002f8	e2063007	 and         r3, r6, #7
  002fc	e0811fa1	 add         r1, r1, r1, lsr #31
  00300	e1832102	 orr         r2, r3, r2, lsl #2
  00304	e2413001	 sub         r3, r1, #1
  00308	e1833c02	 orr         r3, r3, r2, lsl #24
  0030c	e3833607	 orr         r3, r3, #7, 12

; 386  : 			
; 387  : 			p_LCDRegs->LCCR4 = LCD_PAL_FOR(0);
; 388  : 			if ( (p_LCDRegs->OVL1C1 & LCD_O1EN) || (p_LCDRegs->OVL2C1 & LCD_O2EN))
; 389  : 			{
; 390  : 				p_LCDRegs->LCCR4 = LCD_PAL_FOR(1) | LCD_K1(7) | LCD_K2(7) | LCD_K3(7);
; 391  : 			}
; 392  : 		}
; 393  : 		break;

  00310	ea000013	 b           |$L35536|
  00314		 |$L35266|

; 394  : 
; 395  :     case TCO28STEA1: // 240x320 16bpp active matrix
; 396  : 		{
; 397  : 
; 398  :     		RETAILMSG(ZGB_MSG, (TEXT("ZGB: TCO28STEA1\r\n")));

  00314	e59f008c	 ldr         r0, [pc, #0x8C]
  00318	eb000000	 bl          NKDbgPrintfW

; 399  : 
; 400  : 			PCD = (LCLK / (2 * TCO28STEA1_PIXEL_CLOCK_FREQUENCY)) - 1;   //why not reduce 1 in intel code?  wnen 13m, how?
; 401  : 
; 402  : 			// Configure the LCD Controller Control Registers
; 403  : 			p_LCDRegs->LCCR0 = (LCD_LDM | LCD_IUM | LCD_SFM | //LCD_EFM | 
; 404  : 								LCD_PAS | LCD_QDM | LCD_BM  | LCD_OUM |
; 405  : 								LCD_RDSTM | LCD_CMDIM | LCD_OUC | LCD_LDDALT);

  0031c	e59f3080	 ldr         r3, [pc, #0x80]
  00320	e59f2078	 ldr         r2, [pc, #0x78]

; 406  : 
; 407  : 			p_LCDRegs->LCCR1 = (LCD_PPL(0xEF) | LCD_HSW(0x0F) | 
; 408  : 								LCD_ELW(0x1F) | LCD_BLW(0x1F) );

  00324	e59f1070	 ldr         r1, [pc, #0x70]

; 409  : 			
; 410  : 			p_LCDRegs->LCCR2 = (LCD_LPP(0x13f) | LCD_VSW(0x01) |
; 411  : 								LCD_EFW(0x05)  | LCD_BFW(0x06) );

  00328	e59f0068	 ldr         r0, [pc, #0x68]
  0032c	e5853000	 str         r3, [r5]
  00330	e0c3e297	 smull       lr, r3, r7, r2
  00334	e5881000	 str         r1, [r8]
  00338	e5850008	 str         r0, [r5, #8]

; 412  : 
; 413  : 			p_LCDRegs->LCCR3 = (LCD_PCD(PCD)  | LCD_BPP(BPP) | LCD_PCP |
; 414  : 								LCD_PDFOR(pXllpLCD->PixelDataFormat));

  0033c	e594202c	 ldr         r2, [r4, #0x2C]
  00340	e1a014c3	 mov         r1, r3, asr #9
  00344	e2063008	 and         r3, r6, #8
  00348	e1832202	 orr         r2, r3, r2, lsl #4
  0034c	e2063007	 and         r3, r6, #7
  00350	e0811fa1	 add         r1, r1, r1, lsr #31
  00354	e1832102	 orr         r2, r3, r2, lsl #2
  00358	e2413001	 sub         r3, r1, #1
  0035c	e1833c02	 orr         r3, r3, r2, lsl #24
  00360	e3833501	 orr         r3, r3, #1, 10
  00364		 |$L35536|
  00364	e585300c	 str         r3, [r5, #0xC]

; 415  : 			
; 416  : 			p_LCDRegs->LCCR4 = LCD_PAL_FOR(0);

  00368	e5859010	 str         r9, [r5, #0x10]

; 417  : 			if ( (p_LCDRegs->OVL1C1 & LCD_O1EN) || (p_LCDRegs->OVL2C1 & LCD_O2EN))

  0036c	e5953050	 ldr         r3, [r5, #0x50]
  00370	e3130102	 tst         r3, #2, 2
  00374	1a000002	 bne         |$L35269|
  00378	e5953070	 ldr         r3, [r5, #0x70]
  0037c	e3130102	 tst         r3, #2, 2
  00380	0a000002	 beq         |$L35268|
  00384		 |$L35269|

; 418  : 			{
; 419  : 				p_LCDRegs->LCCR4 = LCD_PAL_FOR(1) | LCD_K1(7) | LCD_K2(7) | LCD_K3(7);

  00384	e3a03c81	 mov         r3, #0x81, 24
  00388	e38330ff	 orr         r3, r3, #0xFF
  0038c	e5853010	 str         r3, [r5, #0x10]
  00390		 |$L35268|

; 420  : 			}
; 421  : 		}
; 422  : 		break;
; 423  : 
; 424  : 	default:
; 425  : 		{
; 426  : 
; 427  : 		}
; 428  : 		break;
; 429  : 	}
; 430  : 
; 431  : }

  00390	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  00394	e12fff1e	 bx          lr
  00398		 |$L35542|
  00398	0605053f	 DCD         0x605053f
  0039c	1f1f3cef	 DCD         0x1f1f3cef
  003a0	66666667	 DCD         0x66666667
  003a4	07b008b8	 DCD         0x7b008b8
  003a8	00000000	 DCD         |??_C@_1CE@OBJENNOH@?$AAZ?$AAG?$AAB?$AA?3?$AA?5?$AAT?$AAC?$AAO?$AA2?$AA8?$AAS?$AAT?$AAE?$AAA?$AA1?$AA?$AN?$AA?6?$AA?$AA@|
  003ac	0204053f	 DCD         0x204053f
  003b0	0b070cef	 DCD         0xb070cef
  003b4	10624dd3	 DCD         0x10624dd3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -