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

📄 lcdlib.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000280  e58d0008          STR      r0,[sp,#8]
;;;171    	}
;;;172    	if(displaytype&MODE_NO_VIRTUAL_24B) {
                  |L1.644|
000284  e59d0014          LDR      r0,[sp,#0x14]
000288  e3100020          TST      r0,#0x20
00028c  0a000002          BEQ      |L1.668|
;;;173    		offsize=0;
000290  e3a02000          MOV      r2,#0
;;;174    		hwswp=0;
000294  e3a00000          MOV      r0,#0
000298  e58d0008          STR      r0,[sp,#8]
;;;175    	}
;;;176    /*	if(displaytype&MODE_MPEG_DISPLAY_16B) {
;;;177    		offsize=0;
;;;178    		hwswp=1;
;;;179    		framebuffer1=mpegframebuffer;
;;;180    	}
;;;181    	if(displaytype&MODE_MPEG_DISPLAY_24B) {
;;;182    		offsize=0;
;;;183    		hwswp=0;
;;;184    		framebuffer1=mpegframebuffer;
;;;185    	}	*/
;;;186    #endif
;;;187    
;;;188    	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  e59fb7e0          LDR      r11,|L1.2700|
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]
;;;189    	//rLCDCON1=(0<<21)|(1<<19)|(clkval<<13)|(1<<12)|(pnrmode<<9)|(bppmode<<2)|0; 
;;;190    	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]
;;;191    	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]
;;;192    	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]
;;;193    	rLCDTCON3=(lineval<<11)|(hozval);
000304  e18a058e          ORR      r0,r10,lr,LSL #11
000308  e3a0b44a          MOV      r11,#0x4a000000
00030c  e58b0010          STR      r0,[r11,#0x10]
;;;194    	rLCDSADDRB1=LCDFRAMEBUFFERBG1;
000310  e3a0054c          MOV      r0,#0x13000000
000314  e3a0b44a          MOV      r11,#0x4a000000
000318  e58b0020          STR      r0,[r11,#0x20]
;;;195    	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]
;;;196    	rLCDVSCRB1=(offsize<<13)|(pagewidth);
000334  e1830682          ORR      r0,r3,r2,LSL #13
000338  e3a0b44a          MOV      r11,#0x4a000000
00033c  e58b0040          STR      r0,[r11,#0x40]
;;;197    	rLCDSADDRB2=LCDFRAMEBUFFERBG2;
000340  e59f0748          LDR      r0,|L1.2704|
000344  e3a0b44a          MOV      r11,#0x4a000000
000348  e58b0024          STR      r0,[r11,#0x24]
;;;198    	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]
;;;199    	rLCDVSCRB2=(offsize<<13)|(pagewidth);
000368  e1830682          ORR      r0,r3,r2,LSL #13
00036c  e3a0b44a          MOV      r11,#0x4a000000
000370  e58b0044          STR      r0,[r11,#0x44]
;;;200    
;;;201    
;;;202    }
000374  e28dd018          ADD      sp,sp,#0x18
000378  e8bd8ff0          LDMFD    sp!,{r4-r11,pc}
                          ENDP

                  LcdFGInit PROC
;;;352    void LcdFGInit(U32 displaytype)
;;;353    {
00037c  e92d43f0          STMFD    sp!,{r4-r9,lr}
;;;354    
;;;355    	U32 pagewidth, offsize, bytefactor;
;;;356    	U32 bppmode;
;;;357    	U32 lefttopx, lefttopy, rightbotx, rightboty;
;;;358    	U32 lineval;
;;;359    
;;;360    	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|
;;;361    		case 0x3:
;;;362    			bytefactor=8;
                  |L1.936|
0003a8  e3a01008          MOV      r1,#8
;;;363    			bppmode=BPPMODE_8BPP;
0003ac  e3a04003          MOV      r4,#3
;;;364    			break;
0003b0  ea00000c          B        |L1.1000|
;;;365    		case 0x4:	
;;;366    			bytefactor=8;
                  |L1.948|
0003b4  e3a01008          MOV      r1,#8
;;;367    			bppmode=BPPMODE_8BPPNP;
0003b8  e3a04004          MOV      r4,#4
;;;368    			break;
0003bc  ea000009          B        |L1.1000|
;;;369    		case 0x5:
;;;370    			bytefactor=16;
                  |L1.960|
0003c0  e3a01010          MOV      r1,#0x10
;;;371    			bppmode=BPPMODE_16BPP565;
0003c4  e3a04005          MOV      r4,#5
;;;372    			break;
0003c8  ea000006          B        |L1.1000|
;;;373    		case 0x6:
;;;374    			bytefactor=16;
                  |L1.972|
0003cc  e3a01010          MOV      r1,#0x10
;;;375    			bppmode=BPPMODE_16BPP5551;
0003d0  e3a04006          MOV      r4,#6
;;;376    			break;
0003d4  ea000003          B        |L1.1000|
;;;377    		case 0x7:
;;;378    			bytefactor=32;
                  |L1.984|
0003d8  e3a01020          MOV      r1,#0x20
;;;379    			bppmode=BPPMODE_18BPP;
0003dc  e3a04007          MOV      r4,#7
;;;380    			break;			
0003e0  ea000000          B        |L1.1000|
;;;381    		default:
;;;382    			break;
                  |L1.996|
0003e4  e1a00000          NOP      
;;;383    	}		
;;;384    			
;;;385    	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|
;;;386    		case 0x4100:	
;;;387    			lefttopx=lefttopy=0;
                  |L1.1040|
000410  e3a02000          MOV      r2,#0
000414  e1a03002          MOV      r3,r2
;;;388    			rightbotx=lefttopx+FG_XSIZE_176220-1;
000418  e2826057          ADD      r6,r2,#0x57
;;;389    			rightboty=lefttopy+FG_YSIZE_176220-1;
00041c  e1a02003          MOV      r2,r3
000420  e283705f          ADD      r7,r3,#0x5f
;;;390    			lineval=FG_YSIZE_176220-1;
000424  e3a0505f          MOV      r5,#0x5f
;;;391    			pagewidth=FG_XSIZE_176220*bytefactor/8;
000428  e3a08058          MOV      r8,#0x58
00042c  e0090198          MUL      r9,r8,r1
000430  e1a0e1a9          MOV      lr,r9,LSR #3
;;;392    			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
;;;393    			break;
000440  ea00002a          B        |L1.1264|
;;;394    		case 0x4200:
;;;395    			lefttopx=lefttopy=0;
                  |L1.1092|
000444  e3a02000          MOV      r2,#0
000448  e1a03002          MOV      r3,r2
;;;396    			rightbotx=lefttopx+FG_XSIZE_240320-1;
00044c  e2826077          ADD      r6,r2,#0x77
;;;397    			rightboty=lefttopy+FG_YSIZE_240320-1;
000450  e1a02003          MOV      r2,r3
000454  e283709f          ADD      r7,r3,#0x9f
;;;398    			lineval=FG_YSIZE_240320-1;
000458  e3a0509f          MOV      r5,#0x9f
;;;399    			pagewidth=FG_XSIZE_240320*bytefactor/8;
00045c  e3a08078          MOV      r8,#0x78
000460  e0090198          MUL      r9,r8,r1
000464  e1a0e1a9          MOV      lr,r9,LSR #3
;;;400    			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
;;;401    			break;
000474  ea00001d          B        |L1.1264|
;;;402    		case 0x4400:
;;;403    			lefttopx=lefttopy=0;
                  |L1.1144|
000478  e3a02000          MOV      r2,#0
00047c  e1a03002          MOV      r3,r2
;;;404    			rightbotx=lefttopx+FG_XSIZE_640480-1;
000480  e2826f40          ADD      r6,r2,#0x100
000484  e286603f          ADD      r6,r6,#0x3f
;;;405    			rightboty=lefttopy+FG_YSIZE_640480-1;
000488  e1a02003          MOV      r2,r3
00048c  e28370ef          ADD      r7,r3,#0xef
;;;406    			lineval=FG_YSIZE_640480-1;
000490  e3a050ef          MOV      r5,#0xef
;;;407    			pagewidth=FG_XSIZE_640480*bytefactor/8;
000494  e3a08f50          MOV      r8,#0x140
000498  e0090198          MUL      r9,r8,r1
00049c  e1a0e1a9          MOV      lr,r9,LSR #3
;;;408    			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
;;;409    			break;
0004ac  ea00000f          B        |L1.1264|
;;;410    		case 0x4800:
;;;411    			lefttopx=lefttopy=0;
                  |L1.1200|
0004b0  e3a02000          MOV      r2,#0
0004b4  e1a03002          MOV      r3,r2
;;;412    			rightbotx=lefttopx+FG_XSIZE_800600-1;
0004b8  e2826f40          ADD      r6,r2,#0x100
0004bc  e286608f          ADD      r6,r6,#0x8f
;;;413    			rightboty=lefttopy+FG_YSIZE_800600-1;
0004c0  e1a02003          MOV      r2,r3
0004c4  e2837f40          ADD      r7,r3,#0x100
0004c8  e287702b          ADD      r7,r7,#0x2b
;;;414    			lineval=FG_YSIZE_800600-1;			
0004cc  e59f55c0          LDR      r5,|L1.2708|
;;;415    			pagewidth=FG_XSIZE_800600*bytefactor/8;
0004d0  e3a08f64          MOV      r8,#0x190
0004d4  e0090198          MUL      r9,r8,r1
0004d8  e1a0e1a9          MOV      lr,r9,LSR #3
;;;416    			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
;;;417    			break;
0004e8  ea000000          B        |L1.1264|
;;;418    		default:
;;;419    			break;
                  |L1.1260|
0004ec  e1a00000          NOP      
;;;420    	}	
;;;421    
;;;422    
;;;423    	if((displaytype&MODE_NO_VIRTUAL_16B)||(displaytype&MODE_NO_VIRTUAL_24B))
                  |L1.1264|
0004f0  e3100030          TST      r0,#0x30
0004f4  0a000000          BEQ      |L1.1276|
;;;424    		offsize=0;
0004f8  e3a0c000          MOV      r12,#0
;;;425    
;;;426    	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]
;;;427    	rLCDOSD1=(0<<9)|(0<<8)|(0xff);
000518  e3a080ff          MOV      r8,#0xff
00051c  e3a0944a          MOV      r9,#0x4a000000
000520  e5898014          STR      r8,[r9,#0x14]
;;;428    	rLCDOSD2=(lefttopx<<11)|(lefttopy);
000524  e1838582          ORR      r8,r3,r2,LSL #11
000528  e3a0944a          MOV      r9,#0x4a000000
00052c  e5898018          STR      r8,[r9,#0x18]
;;;429    	rLCDOSD3=(rightbotx<<11)|(rightboty);
000530  e1878586          ORR      r8,r7,r6,LSL #11
000534  e3a0944a          MOV      r9,#0x4a000000
000538  e589801c          STR      r8,[r9,#0x1c]
;;;430    	rLCDSADDRF1=LCDFRAMEBUFFERFG1;
00053c  e3a0854d          MOV      r8,#0x13400000
000540  e3a0944a          MOV      r9,#0x4a000000
000544  e5898028          STR      r8,[r9,#0x28]
;;;431    	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]
;;;432    	rLCDVSCRF1=(offsize<<13)|(pagewidth);
000564  e18e868c          ORR      r8,lr,r12,LSL #13

⌨️ 快捷键说明

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