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

📄 lcdlib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;409    	rLCDVSCRF1=(offsize<<13)|(pagewidth);
000564  e18e868c          ORR      r8,lr,r12,LSL #13
000568  e3a0944a          MOV      r9,#0x4a000000
00056c  e5898048          STR      r8,[r9,#0x48]
;;;410    	rLCDSADDRF2=LCDFRAMEBUFFERFG2;
000570  e59f851c          LDR      r8,|L1.2708|
000574  e3a0944a          MOV      r9,#0x4a000000
000578  e589802c          STR      r8,[r9,#0x2c]
;;;411    	rLCDEADDRF2=LCDBASEL(LCDFRAMEBUFFERFG2+(pagewidth+offsize)*(lineval+1));
00057c  e08e800c          ADD      r8,lr,r12
000580  e2859001          ADD      r9,r5,#1
000584  e0080899          MUL      r8,r9,r8
000588  e2888860          ADD      r8,r8,#0x600000
00058c  e3c884ff          BIC      r8,r8,#0xff000000
000590  e3a0944a          MOV      r9,#0x4a000000
000594  e589803c          STR      r8,[r9,#0x3c]
;;;412    	rLCDVSCRF2=(offsize<<13)|(pagewidth);	
000598  e18e868c          ORR      r8,lr,r12,LSL #13
00059c  e3a0944a          MOV      r9,#0x4a000000
0005a0  e589804c          STR      r8,[r9,#0x4c]
;;;413    
;;;414    }
0005a4  e8bd83f0          LDMFD    sp!,{r4-r9,pc}
                          ENDP

                  LcdEnvidOnOff PROC
;;;555    void LcdEnvidOnOff(U32 onoff)
;;;556    {
0005a8  e3500001          CMP      r0,#1
;;;557    
;;;558    #if 1
;;;559    	if(onoff==1)
0005ac  1a000005          BNE      |L1.1480|
;;;560    		rLCDCON1 = rLCDCON1|(3); // ENVID On using Per Frame method
0005b0  e3a0144a          MOV      r1,#0x4a000000
0005b4  e5911000          LDR      r1,[r1,#0]
0005b8  e3811003          ORR      r1,r1,#3
0005bc  e3a0244a          MOV      r2,#0x4a000000
0005c0  e5821000          STR      r1,[r2,#0]
0005c4  ea000004          B        |L1.1500|
;;;561    	else 
;;;562    		rLCDCON1 &= (~3); // ENVID Off using Per Frame method
                  |L1.1480|
0005c8  e3a0144a          MOV      r1,#0x4a000000
0005cc  e5911000          LDR      r1,[r1,#0]
0005d0  e3c11003          BIC      r1,r1,#3
0005d4  e3a0244a          MOV      r2,#0x4a000000
0005d8  e5821000          STR      r1,[r2,#0]
;;;563    #else
;;;564    	if(onoff==1) {
;;;565    		rLCDCON1 = rLCDCON1|(3); // ENVID On using Per Frame method
;;;566    		LcdSetFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);
;;;567    	}	
;;;568    	else {
;;;569    		rLCDCON1 &= (~3); // ENVID Off using Per Frame method
;;;570    		rLCDINTCON &= ~((1<<7)|(3));
;;;571    	}
;;;572    #endif
;;;573    }    
                  |L1.1500|
0005dc  e12fff1e          BX       lr
                          ENDP

                  PaletteInit PROC
;;;418    void PaletteInit(U32 type)
;;;419    {
0005e0  e92d4030          STMFD    sp!,{r4,r5,lr}
0005e4  e1a05000          MOV      r5,r0
;;;420    	U32 *palette;
;;;421    	U32 i;
;;;422    
;;;423    	LcdEnvidOnOff (0); // Envid Off for updating palette ram.
0005e8  e3a00000          MOV      r0,#0
0005ec  ebfffffe          BL       LcdEnvidOnOff
;;;424    	while(((rLCDCON2>>15)&0x3ff)); //waiting for line-end
0005f0  e1a00000          NOP      
                  |L1.1524|
0005f4  e3a0044a          MOV      r0,#0x4a000000
0005f8  e5900004          LDR      r0,[r0,#4]
0005fc  e1a00380          MOV      r0,r0,LSL #7
000600  e1b00b20          MOVS     r0,r0,LSR #22
000604  1afffffa          BNE      |L1.1524|
;;;425     	
;;;426    	switch(type) {	
000608  e3550024          CMP      r5,#0x24
00060c  0a00008f          BEQ      |L1.2128|
000610  ca000010          BGT      |L1.1624|
000614  e3550018          CMP      r5,#0x18
000618  0a00004e          BEQ      |L1.1880|
00061c  ca000006          BGT      |L1.1596|
000620  e3550011          CMP      r5,#0x11
000624  0a00001c          BEQ      |L1.1692|
000628  e3550012          CMP      r5,#0x12
00062c  0a000025          BEQ      |L1.1736|
000630  e3550014          CMP      r5,#0x14
000634  1a000111          BNE      |L1.2688|
000638  ea000031          B        |L1.1796|
                  |L1.1596|
00063c  e355001a          CMP      r5,#0x1a
000640  0a000056          BEQ      |L1.1952|
000644  e3550021          CMP      r5,#0x21
000648  0a000066          BEQ      |L1.2024|
00064c  e3550022          CMP      r5,#0x22
000650  1a00010a          BNE      |L1.2688|
000654  ea00006e          B        |L1.2068|
                  |L1.1624|
000658  e3550042          CMP      r5,#0x42
00065c  0a0000bf          BEQ      |L1.2400|
000660  ca000006          BGT      |L1.1664|
000664  e3550028          CMP      r5,#0x28
000668  0a00008d          BEQ      |L1.2212|
00066c  e355002a          CMP      r5,#0x2a
000670  0a00009d          BEQ      |L1.2284|
000674  e3550041          CMP      r5,#0x41
000678  1a000100          BNE      |L1.2688|
00067c  ea0000ac          B        |L1.2356|
                  |L1.1664|
000680  e3550044          CMP      r5,#0x44
000684  0a0000c4          BEQ      |L1.2460|
000688  e3550048          CMP      r5,#0x48
00068c  0a0000d7          BEQ      |L1.2544|
000690  e355004a          CMP      r5,#0x4a
000694  1a0000f9          BNE      |L1.2688|
000698  ea0000e6          B        |L1.2616|
;;;427    		case PAL_666_1BPP:
;;;428    			rLCDCON2|=(1<<9);
                  |L1.1692|
00069c  e3a0044a          MOV      r0,#0x4a000000
0006a0  e5900004          LDR      r0,[r0,#4]
0006a4  e3800f80          ORR      r0,r0,#0x200
0006a8  e3a0144a          MOV      r1,#0x4a000000
0006ac  e5810004          STR      r0,[r1,#4]
;;;429    			palette=(U32 *)PALETTEBG;
0006b0  e2813d40          ADD      r3,r1,#0x1000
;;;430    			*palette++=0x0; //black
0006b4  e3a00000          MOV      r0,#0
0006b8  e4830004          STR      r0,[r3],#4
;;;431    			*palette=0x3ffff; //white
0006bc  e59f03d4          LDR      r0,|L1.2712|
0006c0  e5830000          STR      r0,[r3,#0]
;;;432    			break;
0006c4  ea0000ee          B        |L1.2692|
;;;433    		case PAL_666_2BPP:
;;;434    			rLCDCON2|=(1<<9);
                  |L1.1736|
0006c8  e3a0044a          MOV      r0,#0x4a000000
0006cc  e5900004          LDR      r0,[r0,#4]
0006d0  e3800f80          ORR      r0,r0,#0x200
0006d4  e3a0144a          MOV      r1,#0x4a000000
0006d8  e5810004          STR      r0,[r1,#4]
;;;435    			palette=(U32 *)PALETTEBG;
0006dc  e2813d40          ADD      r3,r1,#0x1000
;;;436    			*palette++=0x3f000; // red
0006e0  e3a00bfc          MOV      r0,#0x3f000
0006e4  e4830004          STR      r0,[r3],#4
;;;437    			*palette++=0xfc0; //green
0006e8  e3a00efc          MOV      r0,#0xfc0
0006ec  e4830004          STR      r0,[r3],#4
;;;438    			*palette++=0x3f;	// blue		
0006f0  e3a0003f          MOV      r0,#0x3f
0006f4  e4830004          STR      r0,[r3],#4
;;;439    			*palette=0x3ffff; // white
0006f8  e59f0398          LDR      r0,|L1.2712|
0006fc  e5830000          STR      r0,[r3,#0]
;;;440    			break;
000700  ea0000df          B        |L1.2692|
;;;441    		case PAL_666_4BPP:
;;;442    			rLCDCON2|=(1<<9);
                  |L1.1796|
000704  e3a0044a          MOV      r0,#0x4a000000
000708  e5900004          LDR      r0,[r0,#4]
00070c  e3800f80          ORR      r0,r0,#0x200
000710  e3a0144a          MOV      r1,#0x4a000000
000714  e5810004          STR      r0,[r1,#4]
;;;443    			palette=(U32 *)PALETTEBG;
000718  e2813d40          ADD      r3,r1,#0x1000
;;;444    			*palette++=0x0; //black
00071c  e3a00000          MOV      r0,#0
000720  e4830004          STR      r0,[r3],#4
;;;445    			for(i=0; i<14; i++)
000724  e3a04000          MOV      r4,#0
                  |L1.1832|
000728  e354000e          CMP      r4,#0xe
00072c  2a000006          BCS      |L1.1868|
000730  ea000001          B        |L1.1852|
                  |L1.1844|
000734  e2844001          ADD      r4,r4,#1
000738  eafffffa          B        |L1.1832|
;;;446    				*palette++=17476*i;
                  |L1.1852|
00073c  e59f0358          LDR      r0,|L1.2716|
000740  e0010490          MUL      r1,r0,r4
000744  e4831004          STR      r1,[r3],#4
000748  eafffff9          B        |L1.1844|
;;;447    			*palette=0x3ffff;	//white		
                  |L1.1868|
00074c  e59f0344          LDR      r0,|L1.2712|
000750  e5830000          STR      r0,[r3,#0]
;;;448    			break;	
000754  ea0000ca          B        |L1.2692|
;;;449    		case PAL_666_8BPPBG:
;;;450    			rLCDCON2|=(1<<9);			
                  |L1.1880|
000758  e3a0044a          MOV      r0,#0x4a000000
00075c  e5900004          LDR      r0,[r0,#4]
000760  e3800f80          ORR      r0,r0,#0x200
000764  e3a0144a          MOV      r1,#0x4a000000
000768  e5810004          STR      r0,[r1,#4]
;;;451    			palette=(U32 *)PALETTEBG;
00076c  e2813d40          ADD      r3,r1,#0x1000
;;;452    			for(i=0;i<256;i++)
000770  e3a04000          MOV      r4,#0
                  |L1.1908|
000774  e3540f40          CMP      r4,#0x100
000778  2a000007          BCS      |L1.1948|
00077c  ea000001          B        |L1.1928|
                  |L1.1920|
000780  e2844001          ADD      r4,r4,#1
000784  eafffffa          B        |L1.1908|
;;;453    				*palette++=DEMO256pal[i]; // correction is needed
                  |L1.1928|
000788  e59f0310          LDR      r0,|L1.2720|
00078c  e0800084          ADD      r0,r0,r4,LSL #1
000790  e1d000b0          LDRH     r0,[r0,#0]
000794  e4830004          STR      r0,[r3],#4
000798  eafffff8          B        |L1.1920|
;;;454    			break;
                  |L1.1948|
00079c  ea0000b8          B        |L1.2692|
;;;455    		case PAL_666_8BPPFG:
;;;456    			rLCDCON2|=(1<<9);			
                  |L1.1952|
0007a0  e3a0044a          MOV      r0,#0x4a000000
0007a4  e5900004          LDR      r0,[r0,#4]
0007a8  e3800f80          ORR      r0,r0,#0x200
0007ac  e3a0144a          MOV      r1,#0x4a000000
0007b0  e5810004          STR      r0,[r1,#4]
;;;457    			palette=(U32 *)PALETTEFG;
0007b4  e2813d80          ADD      r3,r1,#0x2000
;;;458    			for(i=0;i<256;i++)
0007b8  e3a04000          MOV      r4,#0
                  |L1.1980|
0007bc  e3540f40          CMP      r4,#0x100
0007c0  2a000007          BCS      |L1.2020|
0007c4  ea000001          B        |L1.2000|
                  |L1.1992|
0007c8  e2844001          ADD      r4,r4,#1
0007cc  eafffffa          B        |L1.1980|
;;;459    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2000|
0007d0  e59f02c8          LDR      r0,|L1.2720|
0007d4  e0800084          ADD      r0,r0,r4,LSL #1
0007d8  e1d000b0          LDRH     r0,[r0,#0]
0007dc  e4830004          STR      r0,[r3],#4
0007e0  eafffff8          B        |L1.1992|
;;;460    			break;
                  |L1.2020|
0007e4  ea0000a6          B        |L1.2692|
;;;461    		case PAL_565_1BPP:
;;;462    			rLCDCON2|=(2<<9);
                  |L1.2024|
0007e8  e3a0044a          MOV      r0,#0x4a000000
0007ec  e5900004          LDR      r0,[r0,#4]
0007f0  e3800e40          ORR      r0,r0,#0x400
0007f4  e3a0144a          MOV      r1,#0x4a000000
0007f8  e5810004          STR      r0,[r1,#4]
;;;463    			palette=(U32 *)PALETTEBG;
0007fc  e2813d40          ADD      r3,r1,#0x1000
;;;464    			*palette++=0x0;//black
000800  e3a00000          MOV      r0,#0
000804  e4830004          STR      r0,[r3],#4
;;;465    			*palette=0xffff;//white
000808  e59f0294          LDR      r0,|L1.2724|
00080c  e5830000          STR      r0,[r3,#0]
;;;466    			break;
000810  ea00009b          B        |L1.2692|
;;;467    		case PAL_565_2BPP:
;;;468    			rLCDCON2|=(2<<9);
                  |L1.2068|
000814  e3a0044a          MOV      r0,#0x4a000000
000818  e5900004          LDR      r0,[r0,#4]
00081c  e3800e40          ORR      r0,r0,#0x400
000820  e3a0144a          MOV      r1,#0x4a000000
000824  e5810004          STR      r0,[r1,#4]
;;;469    			palette=(U32 *)PALETTEBG;
000828  e2813d40          ADD      r3,r1,#0x1000
;;;470    			*palette++=0xf800; // red
00082c  e3a00cf8          MOV      r0,#0xf800
000830  e4830004          STR      r0,[r3],#4
;;;471    			*palette++=0x7e0; //green
000834  e3a00e7e          MOV      r0,#0x7e0
000838  e4830004          STR      r0,[r3],#4
;;;472    			*palette++=0x1f;	// blue		
00083c  e3a0001f          MOV      r0,#0x1f
000840  e4830004          STR      r0,[r3],#4
;;;473    			*palette=0xffff; // white
000844  e59f0258          LDR      r0,|L1.2724|
000848  e5830000          STR      r0,[r3,#0]
;;;474    			break;
00084c  ea00008c          B        |L1.2692|
;;;475    		case PAL_565_4BPP:
;;;476    			rLCDCON2|=(2<<9);
                  |L1.2128|
000850  e3a0044a          MOV      r0,#0x4a000000
000854  e5900004          LDR      r0,[r0,#4]
000858  e3800e40          ORR      r0,r0,#0x400
00085c  e3a0144a          MOV      r1,#0x4a000000
000860  e5810004          STR      r0,[r1,#4]
;;;477    			palette=(U32 *)PALETTEBG;
000864  e2813d40          ADD      r3,r1,#0x1000
;;;478    			*palette++=0x0; //black
000868  e3a00000          MOV      r0,#0
00086c  e4830004          STR      r0,[r3],#4
;;;479    			for(i=0; i<14; i++)
000870  e3a04000          MOV      r4,#0
                  |L1.2164|
000874  e354000e          CMP      r4,#0xe

⌨️ 快捷键说明

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