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

📄 lcdlib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000878  2a000006          BCS      |L1.2200|
00087c  ea000001          B        |L1.2184|
                  |L1.2176|
000880  e2844001          ADD      r4,r4,#1
000884  eafffffa          B        |L1.2164|
;;;480    				*palette++=4369*i;
                  |L1.2184|
000888  e0840404          ADD      r0,r4,r4,LSL #8
00088c  e0800200          ADD      r0,r0,r0,LSL #4
000890  e4830004          STR      r0,[r3],#4
000894  eafffff9          B        |L1.2176|
;;;481    			*palette=0xffff;	//white		
                  |L1.2200|
000898  e59f0204          LDR      r0,|L1.2724|
00089c  e5830000          STR      r0,[r3,#0]
;;;482    			break;	
0008a0  ea000077          B        |L1.2692|
;;;483    		case PAL_565_8BPPBG:
;;;484    			rLCDCON2|=(2<<9);			
                  |L1.2212|
0008a4  e3a0044a          MOV      r0,#0x4a000000
0008a8  e5900004          LDR      r0,[r0,#4]
0008ac  e3800e40          ORR      r0,r0,#0x400
0008b0  e3a0144a          MOV      r1,#0x4a000000
0008b4  e5810004          STR      r0,[r1,#4]
;;;485    			palette=(U32 *)PALETTEBG;
0008b8  e2813d40          ADD      r3,r1,#0x1000
;;;486    			for(i=0;i<256;i++)
0008bc  e3a04000          MOV      r4,#0
                  |L1.2240|
0008c0  e3540f40          CMP      r4,#0x100
0008c4  2a000007          BCS      |L1.2280|
0008c8  ea000001          B        |L1.2260|
                  |L1.2252|
0008cc  e2844001          ADD      r4,r4,#1
0008d0  eafffffa          B        |L1.2240|
;;;487    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2260|
0008d4  e59f01c4          LDR      r0,|L1.2720|
0008d8  e0800084          ADD      r0,r0,r4,LSL #1
0008dc  e1d000b0          LDRH     r0,[r0,#0]
0008e0  e4830004          STR      r0,[r3],#4
0008e4  eafffff8          B        |L1.2252|
;;;488    			break;
                  |L1.2280|
0008e8  ea000065          B        |L1.2692|
;;;489    		case PAL_565_8BPPFG:
;;;490    			rLCDCON2|=(2<<9);			
                  |L1.2284|
0008ec  e3a0044a          MOV      r0,#0x4a000000
0008f0  e5900004          LDR      r0,[r0,#4]
0008f4  e3800e40          ORR      r0,r0,#0x400
0008f8  e3a0144a          MOV      r1,#0x4a000000
0008fc  e5810004          STR      r0,[r1,#4]
;;;491    			palette=(U32 *)PALETTEFG;
000900  e2813d80          ADD      r3,r1,#0x2000
;;;492    			for(i=0;i<256;i++)
000904  e3a04000          MOV      r4,#0
                  |L1.2312|
000908  e3540f40          CMP      r4,#0x100
00090c  2a000007          BCS      |L1.2352|
000910  ea000001          B        |L1.2332|
                  |L1.2324|
000914  e2844001          ADD      r4,r4,#1
000918  eafffffa          B        |L1.2312|
;;;493    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2332|
00091c  e59f017c          LDR      r0,|L1.2720|
000920  e0800084          ADD      r0,r0,r4,LSL #1
000924  e1d000b0          LDRH     r0,[r0,#0]
000928  e4830004          STR      r0,[r3],#4
00092c  eafffff8          B        |L1.2324|
;;;494    			break;
                  |L1.2352|
000930  ea000053          B        |L1.2692|
;;;495    		case PAL_5551_1BPP:
;;;496    			rLCDCON2|=(3<<9);
                  |L1.2356|
000934  e3a0044a          MOV      r0,#0x4a000000
000938  e5900004          LDR      r0,[r0,#4]
00093c  e3800e60          ORR      r0,r0,#0x600
000940  e3a0144a          MOV      r1,#0x4a000000
000944  e5810004          STR      r0,[r1,#4]
;;;497    			palette=(U32 *)PALETTEBG;
000948  e2813d40          ADD      r3,r1,#0x1000
;;;498    			*palette++=0x0;//black
00094c  e3a00000          MOV      r0,#0
000950  e4830004          STR      r0,[r3],#4
;;;499    			*palette=0xffff;//white
000954  e59f0148          LDR      r0,|L1.2724|
000958  e5830000          STR      r0,[r3,#0]
;;;500    			break;
00095c  ea000048          B        |L1.2692|
;;;501    		case PAL_5551_2BPP:
;;;502    			rLCDCON2|=(3<<9);
                  |L1.2400|
000960  e3a0044a          MOV      r0,#0x4a000000
000964  e5900004          LDR      r0,[r0,#4]
000968  e3800e60          ORR      r0,r0,#0x600
00096c  e3a0144a          MOV      r1,#0x4a000000
000970  e5810004          STR      r0,[r1,#4]
;;;503    			palette=(U32 *)PALETTEBG;
000974  e2813d40          ADD      r3,r1,#0x1000
;;;504    			*palette++=0xf801; // red
000978  e59f0128          LDR      r0,|L1.2728|
00097c  e4830004          STR      r0,[r3],#4
;;;505    			*palette++=0x7c1; //green
000980  e59f0124          LDR      r0,|L1.2732|
000984  e4830004          STR      r0,[r3],#4
;;;506    			*palette++=0x3f;	// blue		
000988  e3a0003f          MOV      r0,#0x3f
00098c  e4830004          STR      r0,[r3],#4
;;;507    			*palette=0xffff; // white
000990  e59f010c          LDR      r0,|L1.2724|
000994  e5830000          STR      r0,[r3,#0]
;;;508    			break;
000998  ea000039          B        |L1.2692|
;;;509    		case PAL_5551_4BPP:
;;;510    			rLCDCON2|=(3<<9);
                  |L1.2460|
00099c  e3a0044a          MOV      r0,#0x4a000000
0009a0  e5900004          LDR      r0,[r0,#4]
0009a4  e3800e60          ORR      r0,r0,#0x600
0009a8  e3a0144a          MOV      r1,#0x4a000000
0009ac  e5810004          STR      r0,[r1,#4]
;;;511    			palette=(U32 *)PALETTEBG;
0009b0  e2813d40          ADD      r3,r1,#0x1000
;;;512    			*palette++=0x0; //black
0009b4  e3a00000          MOV      r0,#0
0009b8  e4830004          STR      r0,[r3],#4
;;;513    			for(i=0; i<14; i++)
0009bc  e3a04000          MOV      r4,#0
                  |L1.2496|
0009c0  e354000e          CMP      r4,#0xe
0009c4  2a000006          BCS      |L1.2532|
0009c8  ea000001          B        |L1.2516|
                  |L1.2508|
0009cc  e2844001          ADD      r4,r4,#1
0009d0  eafffffa          B        |L1.2496|
;;;514    				*palette++=4369*i;
                  |L1.2516|
0009d4  e0840404          ADD      r0,r4,r4,LSL #8
0009d8  e0800200          ADD      r0,r0,r0,LSL #4
0009dc  e4830004          STR      r0,[r3],#4
0009e0  eafffff9          B        |L1.2508|
;;;515    			*palette=0xffff;	//white		
                  |L1.2532|
0009e4  e59f00b8          LDR      r0,|L1.2724|
0009e8  e5830000          STR      r0,[r3,#0]
;;;516    			break;	
0009ec  ea000024          B        |L1.2692|
;;;517    		case PAL_5551_8BPPBG:
;;;518    			rLCDCON2|=(3<<9);			
                  |L1.2544|
0009f0  e3a0044a          MOV      r0,#0x4a000000
0009f4  e5900004          LDR      r0,[r0,#4]
0009f8  e3800e60          ORR      r0,r0,#0x600
0009fc  e3a0144a          MOV      r1,#0x4a000000
000a00  e5810004          STR      r0,[r1,#4]
;;;519    			palette=(U32 *)PALETTEBG;
000a04  e2813d40          ADD      r3,r1,#0x1000
;;;520    			for(i=0;i<256;i++)
000a08  e3a04000          MOV      r4,#0
                  |L1.2572|
000a0c  e3540f40          CMP      r4,#0x100
000a10  2a000007          BCS      |L1.2612|
000a14  ea000001          B        |L1.2592|
                  |L1.2584|
000a18  e2844001          ADD      r4,r4,#1
000a1c  eafffffa          B        |L1.2572|
;;;521    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2592|
000a20  e59f0078          LDR      r0,|L1.2720|
000a24  e0800084          ADD      r0,r0,r4,LSL #1
000a28  e1d000b0          LDRH     r0,[r0,#0]
000a2c  e4830004          STR      r0,[r3],#4
000a30  eafffff8          B        |L1.2584|
;;;522    			break;
                  |L1.2612|
000a34  ea000012          B        |L1.2692|
;;;523    		case PAL_5551_8BPPFG:
;;;524    			rLCDCON2|=(3<<9);			
                  |L1.2616|
000a38  e3a0044a          MOV      r0,#0x4a000000
000a3c  e5900004          LDR      r0,[r0,#4]
000a40  e3800e60          ORR      r0,r0,#0x600
000a44  e3a0144a          MOV      r1,#0x4a000000
000a48  e5810004          STR      r0,[r1,#4]
;;;525    			palette=(U32 *)PALETTEFG;
000a4c  e2813d80          ADD      r3,r1,#0x2000
;;;526    			for(i=0;i<256;i++)
000a50  e3a04000          MOV      r4,#0
                  |L1.2644|
000a54  e3540f40          CMP      r4,#0x100
000a58  2a000007          BCS      |L1.2684|
000a5c  ea000001          B        |L1.2664|
                  |L1.2656|
000a60  e2844001          ADD      r4,r4,#1
000a64  eafffffa          B        |L1.2644|
;;;527    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2664|
000a68  e59f0030          LDR      r0,|L1.2720|
000a6c  e0800084          ADD      r0,r0,r4,LSL #1
000a70  e1d000b0          LDRH     r0,[r0,#0]
000a74  e4830004          STR      r0,[r3],#4
000a78  eafffff8          B        |L1.2656|
;;;528    			break;		
                  |L1.2684|
000a7c  ea000000          B        |L1.2692|
;;;529    		default:
;;;530    		break;
                  |L1.2688|
000a80  e1a00000          NOP      
;;;531    	}
;;;532    }	
                  |L1.2692|
000a84  e8bd8030          LDMFD    sp!,{r4,r5,pc}
                  |L1.2696|
000a88  001001c0          DCD      0x001001c0
                  |L1.2700|
000a8c  13200000          DCD      0x13200000
                  |L1.2704|
000a90  0000012b          DCD      0x0000012b
                  |L1.2708|
000a94  13600000          DCD      0x13600000
                  |L1.2712|
000a98  0003ffff          DCD      0x0003ffff
                  |L1.2716|
000a9c  00004444          DCD      0x00004444
                  |L1.2720|
000aa0  00000000          DCD      ||.constdata$1||
                  |L1.2724|
000aa4  0000ffff          DCD      0x0000ffff
                  |L1.2728|
000aa8  0000f801          DCD      0x0000f801
                  |L1.2732|
000aac  000007c1          DCD      0x000007c1
                          ENDP

                  LcdEnvidOnOffDirect PROC
;;;575    void LcdEnvidOnOffDirect(U32 onoff)
;;;576    {
000ab0  e3500001          CMP      r0,#1
;;;577    #if 1
;;;578    	if(onoff==1) 
000ab4  1a000006          BNE      |L1.2772|
;;;579    		rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
000ab8  e3a0144a          MOV      r1,#0x4a000000
000abc  e5911000          LDR      r1,[r1,#0]
000ac0  e3c11003          BIC      r1,r1,#3
000ac4  e3811002          ORR      r1,r1,#2
000ac8  e3a0244a          MOV      r2,#0x4a000000
000acc  e5821000          STR      r1,[r2,#0]
000ad0  ea000004          B        |L1.2792|
;;;580    	else  
;;;581    		rLCDCON1 &= (~3); // ENVID Off for using Direct method
                  |L1.2772|
000ad4  e3a0144a          MOV      r1,#0x4a000000
000ad8  e5911000          LDR      r1,[r1,#0]
000adc  e3c11003          BIC      r1,r1,#3
000ae0  e3a0244a          MOV      r2,#0x4a000000
000ae4  e5821000          STR      r1,[r2,#0]
;;;582    #else
;;;583    	if(onoff==1) {
;;;584    		rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
;;;585    		LcdSetFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);
;;;586    	}
;;;587    	else {
;;;588    		rLCDCON1 &= (~3); // ENVID Off for using Direct method
;;;589    		rLCDINTCON &= ~((1<<7)|(3));		
;;;590    	}
;;;591    #endif
;;;592    }    
                  |L1.2792|
000ae8  e12fff1e          BX       lr
                          ENDP

                  LcdSelectBuffer PROC
;;;594    void LcdSelectBuffer(U32 whichbuffer)
;;;595    {
000aec  e3500000          CMP      r0,#0
;;;596    
;;;597    	//WhichFrameBuffer=whichbuffer;
;;;598    	switch(whichbuffer) {
000af0  0a000006          BEQ      |L1.2832|
000af4  e3500001          CMP      r0,#1
000af8  0a00000a          BEQ      |L1.2856|
000afc  e3500002          CMP      r0,#2
000b00  0a00000e          BEQ      |L1.2880|
000b04  e3500003          CMP      r0,#3
000b08  1a000018          BNE      |L1.2928|
000b0c  ea000011          B        |L1.2904|
;;;599    		case BGBUFFER1:
;;;600    			rLCDCON1=(rLCDCON1&~(1<<21))|(0<<21);
                  |L1.2832|
000b10  e3a0144a          MOV      r1,#0x4a000000
000b14  e5911000          LDR      r1,[r1,#0]
000b18  e3c11980          BIC      r1,r1,#0x200000
000b1c  e3a0244a          MOV      r2,#0x4a000000
000b20  e5821000          STR      r1,[r2,#0]
;;;601    			break;
000b24  ea000012          B        |L1.2932|
;;;602    		case BGBUFFER2:
;;;603    			rLCDCON1=(rLCDCON1&~(1<<21))|(1<<21);
                  |L1.2856|
000b28  e3a0144a          MOV      r1,#0x4a000000
000b2c  e5911000          LDR      r1,[r1,#0]
000b30  e3811980          ORR      r1,r1,#0x200000
000b34  e3a0244a          MOV      r2,#0x4a000000
000b38  e5821000          STR      r1,[r2,#0]
;;;604    			break;
000b3c  ea00000c          B        |L1.2932|
;;;605    		case FGBUFFER1:
;;;606    			rLCDCON1=(rLCDCON1&~(1<<20))|(0<<20);			
                  |L1.2880|
000b40  e3a0144a          MOV      r1,#0x4a000000
000b44  e5911000          LDR      r1,[r1,#0]

⌨️ 快捷键说明

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