📄 lcdlib.txt
字号:
;;;96
;;;97 case MODE_CSTN_8BIT:
;;;98 frameBuffer8Bit=(U32 (*)[SCR_XSIZE_CSTN/4])LCDFRAMEBUFFER;
|L1.736|
0002e0 e3a015c6 MOV r1,#0x31800000
0002e4 e59f2b18 LDR r2,|L1.3588|
0002e8 e5821000 STR r1,[r2,#0] ; frameBuffer8Bit
;;;99 rLCDCON1=(CLKVAL_CSTN<<8)|(MVAL_USED<<7)|(2<<5)|(3<<1)|0;
0002ec e59f1b14 LDR r1,|L1.3592|
0002f0 e3a0244d MOV r2,#0x4d000000
0002f4 e5821000 STR r1,[r2,#0]
;;;100 // 8-bit single scan,8bpp CSTN,ENVID=off
;;;101 rLCDCON2=(0<<24)|(LINEVAL_CSTN<<14)|(0<<6)|(0<<0);
0002f8 e3a019ef MOV r1,#0x3bc000
0002fc e3a0244d MOV r2,#0x4d000000
000300 e5821004 STR r1,[r2,#4]
;;;102 rLCDCON3=(WDLY_CSTN<<19)|(HOZVAL_CSTN<<8)|(LINEBLANK_CSTN<<0);
000304 e59f1b00 LDR r1,|L1.3596|
000308 e3a0244d MOV r2,#0x4d000000
00030c e5821008 STR r1,[r2,#8]
;;;103 rLCDCON4=(MVAL<<8)|(WLH_CSTN<<0);
000310 e3a01ed0 MOV r1,#0xd00
000314 e3a0244d MOV r2,#0x4d000000
000318 e582100c STR r1,[r2,#0xc]
;;;104 rLCDCON5=0;
00031c e3a01000 MOV r1,#0
000320 e3a0244d MOV r2,#0x4d000000
000324 e5821010 STR r1,[r2,#0x10]
;;;105 //BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;106 //INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;107 rLCDSADDR1=(((U32)frameBuffer8Bit>>22)<<21 )|M5D((U32)frameBuffer8Bit>>1);
000328 e59f1ad4 LDR r1,|L1.3588|
00032c e5911000 LDR r1,[r1,#0] ; frameBuffer8Bit
000330 e1a01b21 MOV r1,r1,LSR #22
000334 e1a01a81 MOV r1,r1,LSL #21
000338 e59f2ac4 LDR r2,|L1.3588|
00033c e5922000 LDR r2,[r2,#0] ; frameBuffer8Bit
000340 e1a02502 MOV r2,r2,LSL #10
000344 e18115a2 ORR r1,r1,r2,LSR #11
000348 e3a0244d MOV r2,#0x4d000000
00034c e5821014 STR r1,[r2,#0x14]
;;;108 rLCDSADDR2=M5D( ((U32)frameBuffer8Bit+(SCR_XSIZE_CSTN*LCD_YSIZE_CSTN/1))>>1 );
000350 e59f1aac LDR r1,|L1.3588|
000354 e5911000 LDR r1,[r1,#0] ; frameBuffer8Bit
000358 e2811b96 ADD r1,r1,#0x25800
00035c e1a01501 MOV r1,r1,LSL #10
000360 e1a015a1 MOV r1,r1,LSR #11
000364 e3a0244d MOV r2,#0x4d000000
000368 e5821018 STR r1,[r2,#0x18]
;;;109 rLCDSADDR3=(((SCR_XSIZE_CSTN-LCD_XSIZE_CSTN)/2)<<11)|(LCD_XSIZE_CSTN/2);
00036c e59f1a9c LDR r1,|L1.3600|
000370 e3a0244d MOV r2,#0x4d000000
000374 e582101c STR r1,[r2,#0x1c]
;;;110 rDITHMODE=0x0;
000378 e3a01000 MOV r1,#0
00037c e3a0244d MOV r2,#0x4d000000
000380 e582104c STR r1,[r2,#0x4c]
;;;111 rREDLUT =0xfdb96420;
000384 e59f1a88 LDR r1,|L1.3604|
000388 e3a0244d MOV r2,#0x4d000000
00038c e5821020 STR r1,[r2,#0x20]
;;;112 rGREENLUT=0xfdb96420;
000390 e3a0244d MOV r2,#0x4d000000
000394 e5821024 STR r1,[r2,#0x24]
;;;113 rBLUELUT =0xfb40;
000398 e59f1a78 LDR r1,|L1.3608|
00039c e3a0244d MOV r2,#0x4d000000
0003a0 e5821028 STR r1,[r2,#0x28]
;;;114 break;
0003a4 ea000289 B |L1.3536|
;;;115
;;;116 case MODE_CSTN_12BIT:
;;;117 frameBuffer12Bit=(U32 (*)[SCR_XSIZE_CSTN*3/8])LCDFRAMEBUFFER;
|L1.936|
0003a8 e3a015c6 MOV r1,#0x31800000
0003ac e59f2a68 LDR r2,|L1.3612|
0003b0 e5821000 STR r1,[r2,#0] ; frameBuffer12Bit
;;;118 // Packed Type : The L.C.M of 12 and 32 is 96.
;;;119 rLCDCON1=(CLKVAL_CSTN<<8)|(MVAL_USED<<7)|(2<<5)|(4<<1)|0;
0003b4 e59f1a64 LDR r1,|L1.3616|
0003b8 e3a0244d MOV r2,#0x4d000000
0003bc e5821000 STR r1,[r2,#0]
;;;120 // 8-bit single scan,12bpp CSTN,ENVID=off
;;;121 rLCDCON2=(0<<24)|(LINEVAL_CSTN<<14)|(0<<6)|0;
0003c0 e3a019ef MOV r1,#0x3bc000
0003c4 e3a0244d MOV r2,#0x4d000000
0003c8 e5821004 STR r1,[r2,#4]
;;;122 rLCDCON3=(WDLY_CSTN<<19)|(HOZVAL_CSTN<<8)|(LINEBLANK_CSTN<<0);
0003cc e59f1a38 LDR r1,|L1.3596|
0003d0 e3a0244d MOV r2,#0x4d000000
0003d4 e5821008 STR r1,[r2,#8]
;;;123 rLCDCON4=(MVAL<<8)|(WLH_CSTN<<0);
0003d8 e3a01ed0 MOV r1,#0xd00
0003dc e3a0244d MOV r2,#0x4d000000
0003e0 e582100c STR r1,[r2,#0xc]
;;;124 rLCDCON5=0;
0003e4 e3a01000 MOV r1,#0
0003e8 e3a0244d MOV r2,#0x4d000000
0003ec e5821010 STR r1,[r2,#0x10]
;;;125 //BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;126 //INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;127 rLCDSADDR1=(((U32)frameBuffer12Bit>>22)<<21)|M5D((U32)frameBuffer12Bit>>1);
0003f0 e59f1a24 LDR r1,|L1.3612|
0003f4 e5911000 LDR r1,[r1,#0] ; frameBuffer12Bit
0003f8 e1a01b21 MOV r1,r1,LSR #22
0003fc e1a01a81 MOV r1,r1,LSL #21
000400 e59f2a14 LDR r2,|L1.3612|
000404 e5922000 LDR r2,[r2,#0] ; frameBuffer12Bit
000408 e1a02502 MOV r2,r2,LSL #10
00040c e18115a2 ORR r1,r1,r2,LSR #11
000410 e3a0244d MOV r2,#0x4d000000
000414 e5821014 STR r1,[r2,#0x14]
;;;128 rLCDSADDR2=M5D(((U32)frameBuffer12Bit+((SCR_XSIZE_CSTN*3/2)*LCD_YSIZE_CSTN))>>1);
000418 e59f19fc LDR r1,|L1.3612|
00041c e5911000 LDR r1,[r1,#0] ; frameBuffer12Bit
000420 e2811be1 ADD r1,r1,#0x38400
000424 e1a01501 MOV r1,r1,LSL #10
000428 e1a015a1 MOV r1,r1,LSR #11
00042c e3a0244d MOV r2,#0x4d000000
000430 e5821018 STR r1,[r2,#0x18]
;;;129 rLCDSADDR3=(((SCR_XSIZE_CSTN-LCD_XSIZE_CSTN)*3/4)<<11)|(LCD_XSIZE_CSTN*3/4);
000434 e59f19e8 LDR r1,|L1.3620|
000438 e3a0244d MOV r2,#0x4d000000
00043c e582101c STR r1,[r2,#0x1c]
;;;130 rDITHMODE=0;
000440 e3a01000 MOV r1,#0
000444 e3a0244d MOV r2,#0x4d000000
000448 e582104c STR r1,[r2,#0x4c]
;;;131 break;
00044c ea00025f B |L1.3536|
;;;132
;;;133 case MODE_CSTN_12BIT_UP: // for 2442A
;;;134 frameBuffer16Bit=(U32 (*)[SCR_XSIZE_CSTN/2])LCDFRAMEBUFFER;
|L1.1104|
000450 e3a015c6 MOV r1,#0x31800000
000454 e59f29cc LDR r2,|L1.3624|
000458 e5821000 STR r1,[r2,#0] ; frameBuffer16Bit
;;;135 // Unpacked Type : 12
;;;136 rLCDCON1=(CLKVAL_CSTN<<8)|(MVAL_USED<<7)|(2<<5)|(5<<1)|0;
00045c e59f19c8 LDR r1,|L1.3628|
000460 e3a0244d MOV r2,#0x4d000000
000464 e5821000 STR r1,[r2,#0]
;;;137 // 8-bit single scan,16bpp CSTN,ENVID=off
;;;138 rLCDCON2=(0<<24)|(LINEVAL_CSTN<<14)|(0<<6)|0;
000468 e3a019ef MOV r1,#0x3bc000
00046c e3a0244d MOV r2,#0x4d000000
000470 e5821004 STR r1,[r2,#4]
;;;139 rLCDCON3=(WDLY_CSTN<<19)|(HOZVAL_CSTN<<8)|(LINEBLANK_CSTN<<0);
000474 e59f1990 LDR r1,|L1.3596|
000478 e3a0244d MOV r2,#0x4d000000
00047c e5821008 STR r1,[r2,#8]
;;;140 rLCDCON4=(MVAL<<8)|(WLH_CSTN<<0);
000480 e3a01ed0 MOV r1,#0xd00
000484 e3a0244d MOV r2,#0x4d000000
000488 e582100c STR r1,[r2,#0xc]
;;;141 rLCDCON5=0;
00048c e3a01000 MOV r1,#0
000490 e3a0244d MOV r2,#0x4d000000
000494 e5821010 STR r1,[r2,#0x10]
;;;142 //BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;143 //INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;144 rLCDSADDR1=(((U32)frameBuffer16Bit>>22)<<21)|M5D((U32)frameBuffer16Bit>>1);
000498 e59f1988 LDR r1,|L1.3624|
00049c e5911000 LDR r1,[r1,#0] ; frameBuffer16Bit
0004a0 e1a01b21 MOV r1,r1,LSR #22
0004a4 e1a01a81 MOV r1,r1,LSL #21
0004a8 e59f2978 LDR r2,|L1.3624|
0004ac e5922000 LDR r2,[r2,#0] ; frameBuffer16Bit
0004b0 e1a02502 MOV r2,r2,LSL #10
0004b4 e18115a2 ORR r1,r1,r2,LSR #11
0004b8 e3a0244d MOV r2,#0x4d000000
0004bc e5821014 STR r1,[r2,#0x14]
;;;145 rLCDSADDR2=M5D(((U32)frameBuffer16Bit+(SCR_XSIZE_CSTN*LCD_YSIZE_CSTN*2))>>1);
0004c0 e59f1960 LDR r1,|L1.3624|
0004c4 e5911000 LDR r1,[r1,#0] ; frameBuffer16Bit
0004c8 e2811a4b ADD r1,r1,#0x4b000
0004cc e1a01501 MOV r1,r1,LSL #10
0004d0 e1a015a1 MOV r1,r1,LSR #11
0004d4 e3a0244d MOV r2,#0x4d000000
0004d8 e5821018 STR r1,[r2,#0x18]
;;;146 rLCDSADDR3=((SCR_XSIZE_CSTN-LCD_XSIZE_CSTN)<<11)|(LCD_XSIZE_CSTN);
0004dc e59f194c LDR r1,|L1.3632|
0004e0 e3a0244d MOV r2,#0x4d000000
0004e4 e582101c STR r1,[r2,#0x1c]
;;;147 rDITHMODE=0;
0004e8 e3a01000 MOV r1,#0
0004ec e3a0244d MOV r2,#0x4d000000
0004f0 e582104c STR r1,[r2,#0x4c]
;;;148 break;
0004f4 ea000235 B |L1.3536|
;;;149
;;;150 case MODE_CSTN_16BIT: // for 2442A
;;;151 frameBuffer16Bit=(U32 (*)[SCR_XSIZE_CSTN/2])LCDFRAMEBUFFER;
|L1.1272|
0004f8 e3a015c6 MOV r1,#0x31800000
0004fc e59f2924 LDR r2,|L1.3624|
000500 e5821000 STR r1,[r2,#0] ; frameBuffer16Bit
;;;152 // Packed Type : 16.
;;;153 rLCDCON1=(CLKVAL_CSTN<<8)|(MVAL_USED<<7)|(2<<5)|(6<<1)|0;
000504 e59f1928 LDR r1,|L1.3636|
000508 e3a0244d MOV r2,#0x4d000000
00050c e5821000 STR r1,[r2,#0]
;;;154 // 8-bit single scan,16bpp CSTN,ENVID=off
;;;155 rLCDCON2=(0<<24)|(LINEVAL_CSTN<<14)|(0<<6)|0;
000510 e3a019ef MOV r1,#0x3bc000
000514 e3a0244d MOV r2,#0x4d000000
000518 e5821004 STR r1,[r2,#4]
;;;156 rLCDCON3=(WDLY_CSTN<<19)|(HOZVAL_CSTN<<8)|(LINEBLANK_CSTN<<0);
00051c e59f18e8 LDR r1,|L1.3596|
000520 e3a0244d MOV r2,#0x4d000000
000524 e5821008 STR r1,[r2,#8]
;;;157 rLCDCON4=(MVAL<<8)|(WLH_CSTN<<0);
000528 e3a01ed0 MOV r1,#0xd00
00052c e3a0244d MOV r2,#0x4d000000
000530 e582100c STR r1,[r2,#0xc]
;;;158 rLCDCON5=0;
000534 e3a01000 MOV r1,#0
000538 e3a0244d MOV r2,#0x4d000000
00053c e5821010 STR r1,[r2,#0x10]
;;;159 //BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;160 //INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;161 rLCDSADDR1=(((U32)frameBuffer16Bit>>22)<<21)|M5D((U32)frameBuffer16Bit>>1);
000540 e59f18e0 LDR r1,|L1.3624|
000544 e5911000 LDR r1,[r1,#0] ; frameBuffer16Bit
000548 e1a01b21 MOV r1,r1,LSR #22
00054c e1a01a81 MOV r1,r1,LSL #21
000550 e59f28d0 LDR r2,|L1.3624|
000554 e5922000 LDR r2,[r2,#0] ; frameBuffer16Bit
000558 e1a02502 MOV r2,r2,LSL #10
00055c e18115a2 ORR r1,r1,r2,LSR #11
000560 e3a0244d MOV r2,#0x4d000000
000564 e5821014 STR r1,[r2,#0x14]
;;;162 rLCDSADDR2=M5D(((U32)frameBuffer16Bit+(SCR_XSIZE_CSTN*LCD_YSIZE_CSTN*2))>>1);
000568 e59f18b8 LDR r1,|L1.3624|
00056c e5911000 LDR r1,[r1,#0] ; frameBuffer16Bit
000570 e2811a4b ADD r1,r1,#0x4b000
000574 e1a01501 MOV r1,r1,LSL #10
000578 e1a015a1 MOV r1,r1,LSR #11
00057c e3a0244d MOV r2,#0x4d000000
000580 e5821018 STR r1,[r2,#0x18]
;;;163 rLCDSADDR3=((SCR_XSIZE_CSTN-LCD_XSIZE_CSTN)<<11)|(LCD_XSIZE_CSTN);
000584 e59f18a4 LDR r1,|L1.3632|
000588 e3a0244d MOV r2,#0x4d000000
00058c e582101c STR r1,[r2,#0x1c]
;;;164 rDITHMODE=0;
000590 e3a01000 MOV r1,#0
000594 e3a0244d MOV r2,#0x4d000000
000598 e582104c STR r1,[r2,#0x4c]
;;;165 break;
00059c ea00020b B |L1.3536|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -