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

📄 lcdlib.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000880  e2844001          ADD      r4,r4,#1
000884  eafffffa          B        |L1.2164|
;;;503    				*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|
;;;504    			*palette=0xffff;	//white		
                  |L1.2200|
000898  e59f0208          LDR      r0,|L1.2728|
00089c  e5830000          STR      r0,[r3,#0]
;;;505    			break;	
0008a0  ea000077          B        |L1.2692|
;;;506    		case PAL_565_8BPPBG:
;;;507    			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]
;;;508    			palette=(U32 *)PALETTEBG;
0008b8  e2813d40          ADD      r3,r1,#0x1000
;;;509    			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|
;;;510    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2260|
0008d4  e59f01c8          LDR      r0,|L1.2724|
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|
;;;511    			break;
                  |L1.2280|
0008e8  ea000065          B        |L1.2692|
;;;512    		case PAL_565_8BPPFG:
;;;513    			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]
;;;514    			palette=(U32 *)PALETTEFG;
000900  e2813d80          ADD      r3,r1,#0x2000
;;;515    			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|
;;;516    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2332|
00091c  e59f0180          LDR      r0,|L1.2724|
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|
;;;517    			break;
                  |L1.2352|
000930  ea000053          B        |L1.2692|
;;;518    		case PAL_5551_1BPP:
;;;519    			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]
;;;520    			palette=(U32 *)PALETTEBG;
000948  e2813d40          ADD      r3,r1,#0x1000
;;;521    			*palette++=0x0;//black
00094c  e3a00000          MOV      r0,#0
000950  e4830004          STR      r0,[r3],#4
;;;522    			*palette=0xffff;//white
000954  e59f014c          LDR      r0,|L1.2728|
000958  e5830000          STR      r0,[r3,#0]
;;;523    			break;
00095c  ea000048          B        |L1.2692|
;;;524    		case PAL_5551_2BPP:
;;;525    			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]
;;;526    			palette=(U32 *)PALETTEBG;
000974  e2813d40          ADD      r3,r1,#0x1000
;;;527    			*palette++=0xf801; // red
000978  e59f012c          LDR      r0,|L1.2732|
00097c  e4830004          STR      r0,[r3],#4
;;;528    			*palette++=0x7c1; //green
000980  e59f0128          LDR      r0,|L1.2736|
000984  e4830004          STR      r0,[r3],#4
;;;529    			*palette++=0x3f;	// blue		
000988  e3a0003f          MOV      r0,#0x3f
00098c  e4830004          STR      r0,[r3],#4
;;;530    			*palette=0xffff; // white
000990  e59f0110          LDR      r0,|L1.2728|
000994  e5830000          STR      r0,[r3,#0]
;;;531    			break;
000998  ea000039          B        |L1.2692|
;;;532    		case PAL_5551_4BPP:
;;;533    			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]
;;;534    			palette=(U32 *)PALETTEBG;
0009b0  e2813d40          ADD      r3,r1,#0x1000
;;;535    			*palette++=0x0; //black
0009b4  e3a00000          MOV      r0,#0
0009b8  e4830004          STR      r0,[r3],#4
;;;536    			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|
;;;537    				*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|
;;;538    			*palette=0xffff;	//white		
                  |L1.2532|
0009e4  e59f00bc          LDR      r0,|L1.2728|
0009e8  e5830000          STR      r0,[r3,#0]
;;;539    			break;	
0009ec  ea000024          B        |L1.2692|
;;;540    		case PAL_5551_8BPPBG:
;;;541    			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]
;;;542    			palette=(U32 *)PALETTEBG;
000a04  e2813d40          ADD      r3,r1,#0x1000
;;;543    			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|
;;;544    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2592|
000a20  e59f007c          LDR      r0,|L1.2724|
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|
;;;545    			break;
                  |L1.2612|
000a34  ea000012          B        |L1.2692|
;;;546    		case PAL_5551_8BPPFG:
;;;547    			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]
;;;548    			palette=(U32 *)PALETTEFG;
000a4c  e2813d80          ADD      r3,r1,#0x2000
;;;549    			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|
;;;550    				*palette++=DEMO256pal[i];// correction is needed
                  |L1.2664|
000a68  e59f0034          LDR      r0,|L1.2724|
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|
;;;551    			break;		
                  |L1.2684|
000a7c  ea000000          B        |L1.2692|
;;;552    		default:
;;;553    		break;
                  |L1.2688|
000a80  e1a00000          NOP      
;;;554    	}
;;;555    }	
                  |L1.2692|
000a84  e8bd8030          LDMFD    sp!,{r4,r5,pc}
                  |L1.2696|
000a88  0000013f          DCD      0x0000013f
                  |L1.2700|
000a8c  001001c0          DCD      0x001001c0
                  |L1.2704|
000a90  13200000          DCD      0x13200000
                  |L1.2708|
000a94  0000012b          DCD      0x0000012b
                  |L1.2712|
000a98  13600000          DCD      0x13600000
                  |L1.2716|
000a9c  0003ffff          DCD      0x0003ffff
                  |L1.2720|
000aa0  00004444          DCD      0x00004444
                  |L1.2724|
000aa4  00000000          DCD      ||.constdata$1||
                  |L1.2728|
000aa8  0000ffff          DCD      0x0000ffff
                  |L1.2732|
000aac  0000f801          DCD      0x0000f801
                  |L1.2736|
000ab0  000007c1          DCD      0x000007c1
                          ENDP

                  LcdEnvidOnOffDirect PROC
;;;598    void LcdEnvidOnOffDirect(U32 onoff)
;;;599    {
000ab4  e3500001          CMP      r0,#1
;;;600    #if 1
;;;601    	if(onoff==1) 
000ab8  1a000005          BNE      |L1.2772|
;;;602    //		rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
;;;603    		rLCDCON1 |= (1<<1);
000abc  e3a0144a          MOV      r1,#0x4a000000
000ac0  e5911000          LDR      r1,[r1,#0]
000ac4  e3811002          ORR      r1,r1,#2
000ac8  e3a0244a          MOV      r2,#0x4a000000
000acc  e5821000          STR      r1,[r2,#0]
000ad0  ea000004          B        |L1.2792|
;;;604    	else  
;;;605    		rLCDCON1 &= ~(1<<1);
                  |L1.2772|
000ad4  e3a0144a          MOV      r1,#0x4a000000
000ad8  e5911000          LDR      r1,[r1,#0]
000adc  e3c11002          BIC      r1,r1,#2
000ae0  e3a0244a          MOV      r2,#0x4a000000
000ae4  e5821000          STR      r1,[r2,#0]
;;;606    //		rLCDCON1 &= (~3); // ENVID Off for using Direct method
;;;607    #else
;;;608    	if(onoff==1) {
;;;609    		rLCDCON1 = (rLCDCON1 & ~(3))|(1<<1); // ENVID On using Direct method
;;;610    		LcdSetFrameInterrupt(FRAMESEL0_VSYNC, FRAMESEL1_NONE);
;;;611    	}
;;;612    	else {
;;;613    		rLCDCON1 &= (~3); // ENVID Off for using Direct method
;;;614    		rLCDINTCON &= ~((1<<7)|(3));		
;;;615    	}
;;;616    #endif
;;;617    }    
                  |L1.2792|
000ae8  e12fff1e          BX       lr
                          ENDP

                  LcdSelectBuffer PROC
;;;619    void LcdSelectBuffer(U32 whichbuffer)
;;;620    {
000aec  e3500000          CMP      r0,#0
;;;621    
;;;622    	//WhichFrameBuffer=whichbuffer;
;;;623    	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|
;;;624    		case BGBUFFER1:
;;;625    			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]
;;;626    			break;
000b24  ea000012          B        |L1.2932|
;;;627    		case BGBUFFER2:
;;;628    			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]
;;;629    			break;
000b3c  ea00000c          B        |L1.2932|
;;;630    		case FGBUFFER1:
;;;631    			rLCDCON1=(rLCDCON1&~(1<<20))|(0<<20);			
                  |L1.2880|
000b40  e3a0144a          MOV      r1,#0x4a000000
000b44  e5911000          LDR      r1,[r1,#0]
000b48  e3c11940          BIC      r1,r1,#0x100000

⌨️ 快捷键说明

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