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

📄 lcdlib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000b48  e3c11940          BIC      r1,r1,#0x100000
000b4c  e3a0244a          MOV      r2,#0x4a000000
000b50  e5821000          STR      r1,[r2,#0]
;;;607    			break;
000b54  ea000006          B        |L1.2932|
;;;608    		case FGBUFFER2:
;;;609    			rLCDCON1=(rLCDCON1&~(1<<20))|(1<<20);			
                  |L1.2904|
000b58  e3a0144a          MOV      r1,#0x4a000000
000b5c  e5911000          LDR      r1,[r1,#0]
000b60  e3811940          ORR      r1,r1,#0x100000
000b64  e3a0244a          MOV      r2,#0x4a000000
000b68  e5821000          STR      r1,[r2,#0]
;;;610    			break;
000b6c  ea000000          B        |L1.2932|
;;;611    		default:
;;;612    			break;
                  |L1.2928|
000b70  e1a00000          NOP      
;;;613    	}		
;;;614    }
                  |L1.2932|
000b74  e12fff1e          BX       lr
                          ENDP

                  LcdSetFrameInterrupt PROC
;;;616    void LcdSetFrameInterrupt(U32 framesel0, U32 framesel1)
;;;617    {
000b78  e3a0244a          MOV      r2,#0x4a000000
;;;618    	rLCDINTCON=(rLCDINTCON&~(0xf<<8))|((0x3&framesel0)<<10)|((0x3&framesel1)<<8)|(1<<7)|(1);
000b7c  e5922050          LDR      r2,[r2,#0x50]
000b80  e3c22ef0          BIC      r2,r2,#0xf00
000b84  e2003003          AND      r3,r0,#3
000b88  e1822503          ORR      r2,r2,r3,LSL #10
000b8c  e2013003          AND      r3,r1,#3
000b90  e1822403          ORR      r2,r2,r3,LSL #8
000b94  e3822081          ORR      r2,r2,#0x81
000b98  e3a0344a          MOV      r3,#0x4a000000
000b9c  e5832050          STR      r2,[r3,#0x50]
;;;619    }
000ba0  e12fff1e          BX       lr
                          ENDP

                  LcdEnableFrameInterrupt PROC
;;;621    void LcdEnableFrameInterrupt(U32 framesel0, U32 framesel1)
;;;622    {
000ba4  e3a0244a          MOV      r2,#0x4a000000
;;;623    	
;;;624    	rLCDCON1 &= (~3); // ENVID Off
000ba8  e5922000          LDR      r2,[r2,#0]
000bac  e3c22003          BIC      r2,r2,#3
000bb0  e3a0344a          MOV      r3,#0x4a000000
000bb4  e5832000          STR      r2,[r3,#0]
;;;625    	while(((rLCDCON2>>15)&0x3ff)); //waiting for end of current frame.
000bb8  e1a00000          NOP      
                  |L1.3004|
000bbc  e3a0244a          MOV      r2,#0x4a000000
000bc0  e5922004          LDR      r2,[r2,#4]
000bc4  e1a02382          MOV      r2,r2,LSL #7
000bc8  e1b02b22          MOVS     r2,r2,LSR #22
000bcc  1afffffa          BNE      |L1.3004|
;;;626    	rLCDCON1 = rLCDCON1|(3); // ENVID On using Per Frame method
000bd0  e3a0244a          MOV      r2,#0x4a000000
000bd4  e5922000          LDR      r2,[r2,#0]
000bd8  e3822003          ORR      r2,r2,#3
000bdc  e3a0344a          MOV      r3,#0x4a000000
000be0  e5832000          STR      r2,[r3,#0]
;;;627    	rLCDINTCON=(rLCDINTCON&~(0xf<<8))|((0x3&framesel0)<<10)|((0x3&framesel1)<<8)|(1<<7)|(1);
000be4  e3a0244a          MOV      r2,#0x4a000000
000be8  e5922050          LDR      r2,[r2,#0x50]
000bec  e3c22ef0          BIC      r2,r2,#0xf00
000bf0  e2003003          AND      r3,r0,#3
000bf4  e1822503          ORR      r2,r2,r3,LSL #10
000bf8  e2013003          AND      r3,r1,#3
000bfc  e1822403          ORR      r2,r2,r3,LSL #8
000c00  e3822081          ORR      r2,r2,#0x81
000c04  e3a0344a          MOV      r3,#0x4a000000
000c08  e5832050          STR      r2,[r3,#0x50]
;;;628    }
000c0c  e12fff1e          BX       lr
                          ENDP

                  LcdDisableFrameInterrupt PROC
;;;630    void LcdDisableFrameInterrupt(void)
;;;631    {
000c10  e3a0044a          MOV      r0,#0x4a000000
;;;632    	
;;;633    	rLCDINTCON &=~((1<<7)|1);
000c14  e5900050          LDR      r0,[r0,#0x50]
000c18  e3c00081          BIC      r0,r0,#0x81
000c1c  e3a0144a          MOV      r1,#0x4a000000
000c20  e5810050          STR      r0,[r1,#0x50]
;;;634    	rLCDCON1 &= (~3); // ENVID Off
000c24  e3a0044a          MOV      r0,#0x4a000000
000c28  e5900000          LDR      r0,[r0,#0]
000c2c  e3c00003          BIC      r0,r0,#3
000c30  e3a0144a          MOV      r1,#0x4a000000
000c34  e5810000          STR      r0,[r1,#0]
;;;635    }
000c38  e12fff1e          BX       lr
                          ENDP

                  LcdEnableFifoInterrupt PROC
;;;637    void LcdEnableFifoInterrupt(U32 fifosel, U32 fifolevel)
;;;638    {
000c3c  e3a0244a          MOV      r2,#0x4a000000
;;;639    	
;;;640    	rLCDCON1 &= (~3); // ENVID Off
000c40  e5922000          LDR      r2,[r2,#0]
000c44  e3c22003          BIC      r2,r2,#3
000c48  e3a0344a          MOV      r3,#0x4a000000
000c4c  e5832000          STR      r2,[r3,#0]
;;;641    	while(((rLCDCON2>>15)&0x3ff)); //waiting for end of current frame.
000c50  e1a00000          NOP      
                  |L1.3156|
000c54  e3a0244a          MOV      r2,#0x4a000000
000c58  e5922004          LDR      r2,[r2,#4]
000c5c  e1a02382          MOV      r2,r2,LSL #7
000c60  e1b02b22          MOVS     r2,r2,LSR #22
000c64  1afffffa          BNE      |L1.3156|
;;;642    	rLCDCON1 = rLCDCON1|(3); // ENVID On using Per Frame method
000c68  e3a0244a          MOV      r2,#0x4a000000
000c6c  e5922000          LDR      r2,[r2,#0]
000c70  e3822003          ORR      r2,r2,#3
000c74  e3a0344a          MOV      r3,#0x4a000000
000c78  e5832000          STR      r2,[r3,#0]
;;;643    	rLCDINTCON=(rLCDINTCON&~(0x7f))|((0x3&fifosel)<<5)|((0x7&fifolevel)<<2)|(1<<1)|(1);
000c7c  e3a0244a          MOV      r2,#0x4a000000
000c80  e5922050          LDR      r2,[r2,#0x50]
000c84  e3c2207f          BIC      r2,r2,#0x7f
000c88  e2003003          AND      r3,r0,#3
000c8c  e1822283          ORR      r2,r2,r3,LSL #5
000c90  e2013007          AND      r3,r1,#7
000c94  e1822103          ORR      r2,r2,r3,LSL #2
000c98  e3822003          ORR      r2,r2,#3
000c9c  e3a0344a          MOV      r3,#0x4a000000
000ca0  e5832050          STR      r2,[r3,#0x50]
;;;644    
;;;645    }
000ca4  e12fff1e          BX       lr
                          ENDP

                  LcdDisableFifoInterrupt PROC
;;;647    void LcdDisableFifoInterrupt(void)
;;;648    {
000ca8  e3a0044a          MOV      r0,#0x4a000000
;;;649    	
;;;650    	rLCDINTCON &=~(3);
000cac  e5900050          LDR      r0,[r0,#0x50]
000cb0  e3c00003          BIC      r0,r0,#3
000cb4  e3a0144a          MOV      r1,#0x4a000000
000cb8  e5810050          STR      r0,[r1,#0x50]
;;;651    	rLCDCON1 &= (~3); // ENVID Off
000cbc  e3a0044a          MOV      r0,#0x4a000000
000cc0  e5900000          LDR      r0,[r0,#0]
000cc4  e3c00003          BIC      r0,r0,#3
000cc8  e3a0144a          MOV      r1,#0x4a000000
000ccc  e5810000          STR      r0,[r1,#0]
;;;652    }
000cd0  e12fff1e          BX       lr
                          ENDP

                  LcdSetFifoInterrupt PROC
;;;654    void LcdSetFifoInterrupt(U32 fifosel, U32 fifolevel)
;;;655    {
000cd4  e3a0244a          MOV      r2,#0x4a000000
;;;656    	rLCDINTCON=(rLCDINTCON&~(0x1f<<2))|((0x3&fifosel)<<10)|((0x7&fifolevel)<<8)|(1<<1)|(1);
000cd8  e5922050          LDR      r2,[r2,#0x50]
000cdc  e3c2207c          BIC      r2,r2,#0x7c
000ce0  e2003003          AND      r3,r0,#3
000ce4  e1822503          ORR      r2,r2,r3,LSL #10
000ce8  e2013007          AND      r3,r1,#7
000cec  e1822403          ORR      r2,r2,r3,LSL #8
000cf0  e3822003          ORR      r2,r2,#3
000cf4  e3a0344a          MOV      r3,#0x4a000000
000cf8  e5832050          STR      r2,[r3,#0x50]
;;;657    }
000cfc  e12fff1e          BX       lr
                          ENDP

                  LcdOsdEnDiable PROC
;;;660    void LcdOsdEnDiable(U32 endisable)
;;;661    {
000d00  e3500001          CMP      r0,#1
;;;662    	if(endisable==1)
000d04  1a000005          BNE      |L1.3360|
;;;663    		rLCDOSD1 |= (1<<9); 
000d08  e3a0144a          MOV      r1,#0x4a000000
000d0c  e5911014          LDR      r1,[r1,#0x14]
000d10  e3811f80          ORR      r1,r1,#0x200
000d14  e3a0244a          MOV      r2,#0x4a000000
000d18  e5821014          STR      r1,[r2,#0x14]
000d1c  ea000004          B        |L1.3380|
;;;664    	else
;;;665    		rLCDOSD1 &= (~(1<<9));
                  |L1.3360|
000d20  e3a0144a          MOV      r1,#0x4a000000
000d24  e5911014          LDR      r1,[r1,#0x14]
000d28  e3c11f80          BIC      r1,r1,#0x200
000d2c  e3a0244a          MOV      r2,#0x4a000000
000d30  e5821014          STR      r1,[r2,#0x14]
;;;666    }  
                  |L1.3380|
000d34  e12fff1e          BX       lr
                          ENDP

                  LcdOsdSetAlpha PROC
;;;668    void LcdOsdSetAlpha(U32 alpha)
;;;669    {
000d38  e3a0144a          MOV      r1,#0x4a000000
;;;670    	rLCDOSD1 = (rLCDOSD1 & ~(0xff))|(alpha & 0xff); 
000d3c  e5911014          LDR      r1,[r1,#0x14]
000d40  e3c110ff          BIC      r1,r1,#0xff
000d44  e20020ff          AND      r2,r0,#0xff
000d48  e1811002          ORR      r1,r1,r2
000d4c  e3a0244a          MOV      r2,#0x4a000000
000d50  e5821014          STR      r1,[r2,#0x14]
;;;671    }
000d54  e12fff1e          BX       lr
                          ENDP

                  LcdOsdSelectFunction PROC
;;;673    void LcdOsdSelectFunction(U32 function)
;;;674    {
000d58  e3500001          CMP      r0,#1
;;;675    	if(function==OSD_COLORKEY)
000d5c  1a000005          BNE      |L1.3448|
;;;676    		rLCDKEYCON|=(1<<25);
000d60  e3a0144a          MOV      r1,#0x4a000000
000d64  e5911054          LDR      r1,[r1,#0x54]
000d68  e3811780          ORR      r1,r1,#0x2000000
000d6c  e3a0244a          MOV      r2,#0x4a000000
000d70  e5821054          STR      r1,[r2,#0x54]
000d74  ea000006          B        |L1.3476|
;;;677    	else if(function==OSD_BLENDING)
                  |L1.3448|
000d78  e3500000          CMP      r0,#0
000d7c  1a000004          BNE      |L1.3476|
;;;678    		rLCDKEYCON&=(~(1<<25));
000d80  e3a0144a          MOV      r1,#0x4a000000
000d84  e5911054          LDR      r1,[r1,#0x54]
000d88  e3c11780          BIC      r1,r1,#0x2000000
000d8c  e3a0244a          MOV      r2,#0x4a000000
000d90  e5821054          STR      r1,[r2,#0x54]
;;;679    }
                  |L1.3476|
000d94  e12fff1e          BX       lr
                          ENDP

                  LcdOsdChangeCoordination PROC
;;;681    void LcdOsdChangeCoordination(U32 topx, U32 topy, U32 botx, U32 boty)
;;;682    {
000d98  e52de004          STR      lr,[sp,#-4]!
;;;683    	rLCDOSD2=(rLCDOSD2&~(0x3fffff))|((0x3ff&topx)<<11)|(0x3ff&topy);
000d9c  e3a0c44a          MOV      r12,#0x4a000000
000da0  e59cc018          LDR      r12,[r12,#0x18]
000da4  e1a0cb2c          MOV      r12,r12,LSR #22
000da8  e1a0cb0c          MOV      r12,r12,LSL #22
000dac  e1a0eb00          MOV      lr,r0,LSL #22
000db0  e1a0eb2e          MOV      lr,lr,LSR #22
000db4  e18cc58e          ORR      r12,r12,lr,LSL #11
000db8  e1a0eb01          MOV      lr,r1,LSL #22
000dbc  e1a0eb2e          MOV      lr,lr,LSR #22
000dc0  e18cc00e          ORR      r12,r12,lr
000dc4  e3a0e44a          MOV      lr,#0x4a000000
000dc8  e58ec018          STR      r12,[lr,#0x18]
;;;684    	rLCDOSD3=(rLCDOSD3&~(0x3fffff))|((0x3ff&botx)<<11)|(0x3ff&boty);
000dcc  e3a0c44a          MOV      r12,#0x4a000000
000dd0  e59cc01c          LDR      r12,[r12,#0x1c]
000dd4  e1a0cb2c          MOV      r12,r12,LSR #22
000dd8  e1a0cb0c          MOV      r12,r12,LSL #22
000ddc  e1a0eb02          MOV      lr,r2,LSL #22
000de0  e1a0eb2e          MOV      lr,lr,LSR #22
000de4  e18cc58e          ORR      r12,r12,lr,LSL #11
000de8  e1a0eb03          MOV      lr,r3,LSL #22
000dec  e1a0eb2e          MOV      lr,lr,LSR #22
000df0  e18cc00e          ORR      r12,r12,lr
000df4  e3a0e44a          MOV      lr,#0x4a000000
000df8  e58ec01c          STR      r12,[lr,#0x1c]
;;;685    }
000dfc  e49df004          LDR      pc,[sp],#4
                          ENDP

                  LcdDitheringEnDisable PROC
;;;686    void LcdDitheringEnDisable(U32 endisable)
;;;687    {
000e00  e3500001          CMP      r0,#1
;;;688    	if(endisable==1)
000e04  1a000005          BNE      |L1.3616|
;;;689    		rLCDDITHCON|=1;
000e08  e3a0144a          MOV      r1,#0x4a000000
000e0c  e5911064          LDR      r1,[r1,#0x64]
000e10  e3811001          ORR      r1,r1,#1
000e14  e3a0244a          MOV      r2,#0x4a000000
000e18  e5821064          STR      r1,[r2,#0x64]
000e1c  ea000004          B        |L1.3636|
;;;690    	else
;;;691    		rLCDDITHCON&=(~1);
                  |L1.3616|
000e20  e3a0144a          MOV      r1,#0x4a000000
000e24  e5911064          LDR      r1,[r1,#0x64]
000e28  e3c11001          BIC      r1,r1,#1
000e2c  e3a0244a          MOV      r2,#0x4a000000
000e30  e5821064          STR      r1,[r2,#0x64]
;;;692    }
                  |L1.3636|
000e34  e12fff1e          BX       lr
                          ENDP

                  LcdBGColorMap PROC
;;;695    void LcdBGColorMap(U32 endisable, U32 bgcolor)
;;;696    {
000e38  e3a0244a          MOV      r2,#0x4a000000
;;;697    	rLCDBGCON=(rLCDBGCON&~(0xffffff))|(0xffffff&bgcolor);
000e3c  e592205c          LDR      r2,[r2,#0x5c]
000e40  e20224ff          AND      r2,r2,#0xff000000
000e44  e3c134ff          BIC      r3,r1

⌨️ 快捷键说明

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