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

📄 lcdlib.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
00027c  e3a00001          MOV      r0,#1
000280  e58d0008          STR      r0,[sp,#8]
;;;148    	}
;;;149    	if(displaytype&MODE_NO_VIRTUAL_24B) {
                  |L1.644|
000284  e59d0014          LDR      r0,[sp,#0x14]
000288  e3100020          TST      r0,#0x20
00028c  0a000002          BEQ      |L1.668|
;;;150    		offsize=0;
000290  e3a02000          MOV      r2,#0
;;;151    		hwswp=0;
000294  e3a00000          MOV      r0,#0
000298  e58d0008          STR      r0,[sp,#8]
;;;152    	}
;;;153    /*	if(displaytype&MODE_MPEG_DISPLAY_16B) {
;;;154    		offsize=0;
;;;155    		hwswp=1;
;;;156    		framebuffer1=mpegframebuffer;
;;;157    	}
;;;158    	if(displaytype&MODE_MPEG_DISPLAY_24B) {
;;;159    		offsize=0;
;;;160    		hwswp=0;
;;;161    		framebuffer1=mpegframebuffer;
;;;162    	}	*/
;;;163    #endif
;;;164    
;;;165    	rLCDCON1=(rLCDCON1&((1<<20)|(7<<6)))|(0<<21)|(1<<19)|(clkval<<13)|(1<<12)|(pnrmode<<9)|(bppmode<<2)|0; 
                  |L1.668|
00029c  e3a0044a          MOV      r0,#0x4a000000
0002a0  e5900000          LDR      r0,[r0,#0]
0002a4  e59fb7dc          LDR      r11,|L1.2696|
0002a8  e000000b          AND      r0,r0,r11
0002ac  e59db010          LDR      r11,[sp,#0x10]
0002b0  e180068b          ORR      r0,r0,r11,LSL #13
0002b4  e59db00c          LDR      r11,[sp,#0xc]
0002b8  e180048b          ORR      r0,r0,r11,LSL #9
0002bc  e180010c          ORR      r0,r0,r12,LSL #2
0002c0  e3800a81          ORR      r0,r0,#0x81000
0002c4  e3a0b44a          MOV      r11,#0x4a000000
0002c8  e58b0000          STR      r0,[r11,#0]
;;;166    	//rLCDCON1=(0<<21)|(1<<19)|(clkval<<13)|(1<<12)|(pnrmode<<9)|(bppmode<<2)|0; 
;;;167    	rLCDCON2=(2<<9)|(1<<6)|(1<<5)|(hwswp);
0002cc  e59d0008          LDR      r0,[sp,#8]
0002d0  e3800e46          ORR      r0,r0,#0x460
0002d4  e3a0b44a          MOV      r11,#0x4a000000
0002d8  e58b0004          STR      r0,[r11,#4]
;;;168    	rLCDTCON1=(vbpd<<16)|(vfpd<<8)|(vspw);
0002dc  e1a00804          MOV      r0,r4,LSL #16
0002e0  e1800405          ORR      r0,r0,r5,LSL #8
0002e4  e1800006          ORR      r0,r0,r6
0002e8  e3a0b44a          MOV      r11,#0x4a000000
0002ec  e58b0008          STR      r0,[r11,#8]
;;;169    	rLCDTCON2=(hbpd<<16)|(hfpd<<8)|(hspw);		
0002f0  e1a00807          MOV      r0,r7,LSL #16
0002f4  e1800408          ORR      r0,r0,r8,LSL #8
0002f8  e1800009          ORR      r0,r0,r9
0002fc  e3a0b44a          MOV      r11,#0x4a000000
000300  e58b000c          STR      r0,[r11,#0xc]
;;;170    	rLCDTCON3=(lineval<<11)|(hozval);
000304  e18a058e          ORR      r0,r10,lr,LSL #11
000308  e3a0b44a          MOV      r11,#0x4a000000
00030c  e58b0010          STR      r0,[r11,#0x10]
;;;171    	rLCDSADDRB1=LCDFRAMEBUFFERBG1;
000310  e3a0054c          MOV      r0,#0x13000000
000314  e3a0b44a          MOV      r11,#0x4a000000
000318  e58b0020          STR      r0,[r11,#0x20]
;;;172    	rLCDEADDRB1=LCDBASEL(LCDFRAMEBUFFERBG1+(pagewidth+offsize)*(lineval+1));
00031c  e0830002          ADD      r0,r3,r2
000320  e28eb001          ADD      r11,lr,#1
000324  e000009b          MUL      r0,r11,r0
000328  e3c004ff          BIC      r0,r0,#0xff000000
00032c  e3a0b44a          MOV      r11,#0x4a000000
000330  e58b0030          STR      r0,[r11,#0x30]
;;;173    	rLCDVSCRB1=(offsize<<13)|(pagewidth);
000334  e1830682          ORR      r0,r3,r2,LSL #13
000338  e3a0b44a          MOV      r11,#0x4a000000
00033c  e58b0040          STR      r0,[r11,#0x40]
;;;174    	rLCDSADDRB2=LCDFRAMEBUFFERBG2;
000340  e59f0744          LDR      r0,|L1.2700|
000344  e3a0b44a          MOV      r11,#0x4a000000
000348  e58b0024          STR      r0,[r11,#0x24]
;;;175    	rLCDEADDRB2=LCDBASEL(LCDFRAMEBUFFERBG2+(pagewidth+offsize)*(lineval+1));
00034c  e0830002          ADD      r0,r3,r2
000350  e28eb001          ADD      r11,lr,#1
000354  e000009b          MUL      r0,r11,r0
000358  e2800980          ADD      r0,r0,#0x200000
00035c  e3c004ff          BIC      r0,r0,#0xff000000
000360  e3a0b44a          MOV      r11,#0x4a000000
000364  e58b0034          STR      r0,[r11,#0x34]
;;;176    	rLCDVSCRB2=(offsize<<13)|(pagewidth);
000368  e1830682          ORR      r0,r3,r2,LSL #13
00036c  e3a0b44a          MOV      r11,#0x4a000000
000370  e58b0044          STR      r0,[r11,#0x44]
;;;177    
;;;178    
;;;179    }
000374  e28dd018          ADD      sp,sp,#0x18
000378  e8bd8ff0          LDMFD    sp!,{r4-r11,pc}
                          ENDP

                  LcdFGInit PROC
;;;329    void LcdFGInit(U32 displaytype)
;;;330    {
00037c  e92d43f0          STMFD    sp!,{r4-r9,lr}
;;;331    
;;;332    	U32 pagewidth, offsize, bytefactor;
;;;333    	U32 bppmode;
;;;334    	U32 lefttopx, lefttopy, rightbotx, rightboty;
;;;335    	U32 lineval;
;;;336    
;;;337    	switch(displaytype&0xf) {
000380  e200800f          AND      r8,r0,#0xf
000384  e2488003          SUB      r8,r8,#3
000388  e3580004          CMP      r8,#4
00038c  908ff108          ADDLS    pc,pc,r8,LSL #2
000390  ea000013          B        |L1.996|
000394  ea000003          B        |L1.936|
000398  ea000005          B        |L1.948|
00039c  ea000007          B        |L1.960|
0003a0  ea000009          B        |L1.972|
0003a4  ea00000b          B        |L1.984|
;;;338    		case 0x3:
;;;339    			bytefactor=8;
                  |L1.936|
0003a8  e3a01008          MOV      r1,#8
;;;340    			bppmode=BPPMODE_8BPP;
0003ac  e3a04003          MOV      r4,#3
;;;341    			break;
0003b0  ea00000c          B        |L1.1000|
;;;342    		case 0x4:	
;;;343    			bytefactor=8;
                  |L1.948|
0003b4  e3a01008          MOV      r1,#8
;;;344    			bppmode=BPPMODE_8BPPNP;
0003b8  e3a04004          MOV      r4,#4
;;;345    			break;
0003bc  ea000009          B        |L1.1000|
;;;346    		case 0x5:
;;;347    			bytefactor=16;
                  |L1.960|
0003c0  e3a01010          MOV      r1,#0x10
;;;348    			bppmode=BPPMODE_16BPP565;
0003c4  e3a04005          MOV      r4,#5
;;;349    			break;
0003c8  ea000006          B        |L1.1000|
;;;350    		case 0x6:
;;;351    			bytefactor=16;
                  |L1.972|
0003cc  e3a01010          MOV      r1,#0x10
;;;352    			bppmode=BPPMODE_16BPP5551;
0003d0  e3a04006          MOV      r4,#6
;;;353    			break;
0003d4  ea000003          B        |L1.1000|
;;;354    		case 0x7:
;;;355    			bytefactor=32;
                  |L1.984|
0003d8  e3a01020          MOV      r1,#0x20
;;;356    			bppmode=BPPMODE_18BPP;
0003dc  e3a04007          MOV      r4,#7
;;;357    			break;			
0003e0  ea000000          B        |L1.1000|
;;;358    		default:
;;;359    			break;
                  |L1.996|
0003e4  e1a00000          NOP      
;;;360    	}		
;;;361    			
;;;362    	switch(displaytype&0xff00) {
                  |L1.1000|
0003e8  e2008cff          AND      r8,r0,#0xff00
0003ec  e3580c41          CMP      r8,#0x4100
0003f0  0a000006          BEQ      |L1.1040|
0003f4  e3580c42          CMP      r8,#0x4200
0003f8  0a000011          BEQ      |L1.1092|
0003fc  e3580c44          CMP      r8,#0x4400
000400  0a00001c          BEQ      |L1.1144|
000404  e3580c48          CMP      r8,#0x4800
000408  1a000037          BNE      |L1.1260|
00040c  ea000027          B        |L1.1200|
;;;363    		case 0x4100:	
;;;364    			lefttopx=lefttopy=0;
                  |L1.1040|
000410  e3a02000          MOV      r2,#0
000414  e1a03002          MOV      r3,r2
;;;365    			rightbotx=lefttopx+FG_XSIZE_176220-1;
000418  e2826057          ADD      r6,r2,#0x57
;;;366    			rightboty=lefttopy+FG_YSIZE_176220-1;
00041c  e1a02003          MOV      r2,r3
000420  e283705f          ADD      r7,r3,#0x5f
;;;367    			lineval=FG_YSIZE_176220-1;
000424  e3a0505f          MOV      r5,#0x5f
;;;368    			pagewidth=FG_XSIZE_176220*bytefactor/8;
000428  e3a08058          MOV      r8,#0x58
00042c  e0090198          MUL      r9,r8,r1
000430  e1a0e1a9          MOV      lr,r9,LSR #3
;;;369    			offsize=(FG_VXSIZE_176220-FG_XSIZE_176220)*bytefactor/8;			
000434  e3a08058          MOV      r8,#0x58
000438  e0090198          MUL      r9,r8,r1
00043c  e1a0c1a9          MOV      r12,r9,LSR #3
;;;370    			break;
000440  ea00002a          B        |L1.1264|
;;;371    		case 0x4200:
;;;372    			lefttopx=lefttopy=0;
                  |L1.1092|
000444  e3a02000          MOV      r2,#0
000448  e1a03002          MOV      r3,r2
;;;373    			rightbotx=lefttopx+FG_XSIZE_240320-1;
00044c  e2826077          ADD      r6,r2,#0x77
;;;374    			rightboty=lefttopy+FG_YSIZE_240320-1;
000450  e1a02003          MOV      r2,r3
000454  e283709f          ADD      r7,r3,#0x9f
;;;375    			lineval=FG_YSIZE_240320-1;
000458  e3a0509f          MOV      r5,#0x9f
;;;376    			pagewidth=FG_XSIZE_240320*bytefactor/8;
00045c  e3a08078          MOV      r8,#0x78
000460  e0090198          MUL      r9,r8,r1
000464  e1a0e1a9          MOV      lr,r9,LSR #3
;;;377    			offsize=(FG_VXSIZE_240320-FG_XSIZE_240320)*bytefactor/8;			
000468  e3a08078          MOV      r8,#0x78
00046c  e0090198          MUL      r9,r8,r1
000470  e1a0c1a9          MOV      r12,r9,LSR #3
;;;378    			break;
000474  ea00001d          B        |L1.1264|
;;;379    		case 0x4400:
;;;380    			lefttopx=lefttopy=0;
                  |L1.1144|
000478  e3a02000          MOV      r2,#0
00047c  e1a03002          MOV      r3,r2
;;;381    			rightbotx=lefttopx+FG_XSIZE_640480-1;
000480  e2826f40          ADD      r6,r2,#0x100
000484  e286603f          ADD      r6,r6,#0x3f
;;;382    			rightboty=lefttopy+FG_YSIZE_640480-1;
000488  e1a02003          MOV      r2,r3
00048c  e28370ef          ADD      r7,r3,#0xef
;;;383    			lineval=FG_YSIZE_640480-1;
000490  e3a050ef          MOV      r5,#0xef
;;;384    			pagewidth=FG_XSIZE_640480*bytefactor/8;
000494  e3a08f50          MOV      r8,#0x140
000498  e0090198          MUL      r9,r8,r1
00049c  e1a0e1a9          MOV      lr,r9,LSR #3
;;;385    			offsize=(FG_VXSIZE_640480-FG_XSIZE_640480)*bytefactor/8;			
0004a0  e3a08f50          MOV      r8,#0x140
0004a4  e0090198          MUL      r9,r8,r1
0004a8  e1a0c1a9          MOV      r12,r9,LSR #3
;;;386    			break;
0004ac  ea00000f          B        |L1.1264|
;;;387    		case 0x4800:
;;;388    			lefttopx=lefttopy=0;
                  |L1.1200|
0004b0  e3a02000          MOV      r2,#0
0004b4  e1a03002          MOV      r3,r2
;;;389    			rightbotx=lefttopx+FG_XSIZE_800600-1;
0004b8  e2826f40          ADD      r6,r2,#0x100
0004bc  e286608f          ADD      r6,r6,#0x8f
;;;390    			rightboty=lefttopy+FG_YSIZE_800600-1;
0004c0  e1a02003          MOV      r2,r3
0004c4  e2837f40          ADD      r7,r3,#0x100
0004c8  e287702b          ADD      r7,r7,#0x2b
;;;391    			lineval=FG_YSIZE_800600-1;			
0004cc  e59f55bc          LDR      r5,|L1.2704|
;;;392    			pagewidth=FG_XSIZE_800600*bytefactor/8;
0004d0  e3a08f64          MOV      r8,#0x190
0004d4  e0090198          MUL      r9,r8,r1
0004d8  e1a0e1a9          MOV      lr,r9,LSR #3
;;;393    			offsize=(FG_VXSIZE_800600-FG_XSIZE_800600)*bytefactor/8;			
0004dc  e3a08f64          MOV      r8,#0x190
0004e0  e0090198          MUL      r9,r8,r1
0004e4  e1a0c1a9          MOV      r12,r9,LSR #3
;;;394    			break;
0004e8  ea000000          B        |L1.1264|
;;;395    		default:
;;;396    			break;
                  |L1.1260|
0004ec  e1a00000          NOP      
;;;397    	}	
;;;398    
;;;399    
;;;400    	if((displaytype&MODE_NO_VIRTUAL_16B)||(displaytype&MODE_NO_VIRTUAL_24B))
                  |L1.1264|
0004f0  e3100030          TST      r0,#0x30
0004f4  0a000000          BEQ      |L1.1276|
;;;401    		offsize=0;
0004f8  e3a0c000          MOV      r12,#0
;;;402    
;;;403    	rLCDCON1=(rLCDCON1&~((1<<20)|(7<<6)))|(bppmode<<6);
                  |L1.1276|
0004fc  e3a0844a          MOV      r8,#0x4a000000
000500  e5988000          LDR      r8,[r8,#0]
000504  e3c88940          BIC      r8,r8,#0x100000
000508  e3c88f70          BIC      r8,r8,#0x1c0
00050c  e1888304          ORR      r8,r8,r4,LSL #6
000510  e3a0944a          MOV      r9,#0x4a000000
000514  e5898000          STR      r8,[r9,#0]
;;;404    	rLCDOSD1=(0<<9)|(0<<8)|(0xff);
000518  e3a080ff          MOV      r8,#0xff
00051c  e3a0944a          MOV      r9,#0x4a000000
000520  e5898014          STR      r8,[r9,#0x14]
;;;405    	rLCDOSD2=(lefttopx<<11)|(lefttopy);
000524  e1838582          ORR      r8,r3,r2,LSL #11
000528  e3a0944a          MOV      r9,#0x4a000000
00052c  e5898018          STR      r8,[r9,#0x18]
;;;406    	rLCDOSD3=(rightbotx<<11)|(rightboty);
000530  e1878586          ORR      r8,r7,r6,LSL #11
000534  e3a0944a          MOV      r9,#0x4a000000
000538  e589801c          STR      r8,[r9,#0x1c]
;;;407    	rLCDSADDRF1=LCDFRAMEBUFFERFG1;
00053c  e3a0854d          MOV      r8,#0x13400000
000540  e3a0944a          MOV      r9,#0x4a000000
000544  e5898028          STR      r8,[r9,#0x28]
;;;408    	rLCDEADDRF1=LCDBASEL(LCDFRAMEBUFFERFG1+(pagewidth+offsize)*(lineval+1));
000548  e08e800c          ADD      r8,lr,r12
00054c  e2859001          ADD      r9,r5,#1
000550  e0080899          MUL      r8,r9,r8
000554  e288854d          ADD      r8,r8,#0x13400000
000558  e3c884ff          BIC      r8,r8,#0xff000000
00055c  e3a0944a          MOV      r9,#0x4a000000
000560  e5898038          STR      r8,[r9,#0x38]

⌨️ 快捷键说明

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