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

📄 glib.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;347    				e=dy-dx/2;
000c54  e1a00008          MOV      r0,r8
000c58  e0881fa8          ADD      r1,r8,r8,LSR #31
000c5c  e04740c1          SUB      r4,r7,r1,ASR #1
;;;348    				while(x1>=x2)
000c60  e1a00000          NOP      
                  |L1.3172|
000c64  e155000a          CMP      r5,r10
000c68  ba000021          BLT      |L1.3316|
;;;349    				{
;;;350    					PutPixel(x1,y1,color);
000c6c  e1a02009          MOV      r2,r9
000c70  e1a01006          MOV      r1,r6
000c74  e1a00005          MOV      r0,r5
000c78  e51f32ac          LDR      r3,|L1.2516|
000c7c  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000c80  e1a0e00f          MOV      lr,pc
000c84  e1a0f003          MOV      pc,r3
;;;351    					if(e>0){y1-=1;e-=dx;}	
000c88  e3540000          CMP      r4,#0
000c8c  da000001          BLE      |L1.3224|
000c90  e2466001          SUB      r6,r6,#1
000c94  e0444008          SUB      r4,r4,r8
;;;352    					x1-=1;
                  |L1.3224|
000c98  e2455001          SUB      r5,r5,#1
;;;353    					e+=dy;
000c9c  e0844007          ADD      r4,r4,r7
;;;354    				}
000ca0  eaffffef          B        |L1.3172|
;;;355    			}
;;;356    			else		// 6/8 octant
;;;357    			{
;;;358    				e=dx-dy/2;
                  |L1.3236|
000ca4  e1a00007          MOV      r0,r7
000ca8  e0871fa7          ADD      r1,r7,r7,LSR #31
000cac  e04840c1          SUB      r4,r8,r1,ASR #1
;;;359    				while(y1>=y2)
000cb0  e1a00000          NOP      
                  |L1.3252|
000cb4  e156000b          CMP      r6,r11
000cb8  ba00000d          BLT      |L1.3316|
;;;360    				{
;;;361    					PutPixel(x1,y1,color);
000cbc  e1a02009          MOV      r2,r9
000cc0  e1a01006          MOV      r1,r6
000cc4  e1a00005          MOV      r0,r5
000cc8  e51f32fc          LDR      r3,|L1.2516|
000ccc  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000cd0  e1a0e00f          MOV      lr,pc
000cd4  e1a0f003          MOV      pc,r3
;;;362    					if(e>0){x1-=1;e-=dy;}	
000cd8  e3540000          CMP      r4,#0
000cdc  da000001          BLE      |L1.3304|
000ce0  e2455001          SUB      r5,r5,#1
000ce4  e0444007          SUB      r4,r4,r7
;;;363    					y1-=1;
                  |L1.3304|
000ce8  e2466001          SUB      r6,r6,#1
;;;364    					e+=dx;
000cec  e0844008          ADD      r4,r4,r8
;;;365    				}
000cf0  eaffffef          B        |L1.3252|
;;;366    			}
;;;367    		}	
;;;368    	}
;;;369    }
                  |L1.3316|
000cf4  e8bd8ff8          LDMFD    sp!,{r3-r11,pc}
                          ENDP

                  Glib_Rectangle PROC
;;;225    void Glib_Rectangle(int x1,int y1,int x2,int y2,int color)
;;;226    {
000cf8  e92d41fc          STMFD    sp!,{r2-r8,lr}
000cfc  e1a05000          MOV      r5,r0
000d00  e1a06001          MOV      r6,r1
000d04  e1a07002          MOV      r7,r2
000d08  e1a08003          MOV      r8,r3
000d0c  e59d4020          LDR      r4,[sp,#0x20]
;;;227        Glib_Line(x1,y1,x2,y1,color);
000d10  e1a03006          MOV      r3,r6
000d14  e1a02007          MOV      r2,r7
000d18  e1a01006          MOV      r1,r6
000d1c  e1a00005          MOV      r0,r5
000d20  e58d4000          STR      r4,[sp,#0]
000d24  ebfffffe          BL       Glib_Line
;;;228        Glib_Line(x2,y1,x2,y2,color);
000d28  e1a03008          MOV      r3,r8
000d2c  e1a02007          MOV      r2,r7
000d30  e1a01006          MOV      r1,r6
000d34  e1a00007          MOV      r0,r7
000d38  e58d4000          STR      r4,[sp,#0]
000d3c  ebfffffe          BL       Glib_Line
;;;229        Glib_Line(x1,y2,x2,y2,color);
000d40  e1a03008          MOV      r3,r8
000d44  e1a02007          MOV      r2,r7
000d48  e1a01008          MOV      r1,r8
000d4c  e1a00005          MOV      r0,r5
000d50  e58d4000          STR      r4,[sp,#0]
000d54  ebfffffe          BL       Glib_Line
;;;230        Glib_Line(x1,y1,x1,y2,color);
000d58  e1a03008          MOV      r3,r8
000d5c  e1a02005          MOV      r2,r5
000d60  e1a01006          MOV      r1,r6
000d64  e1a00005          MOV      r0,r5
000d68  e58d4000          STR      r4,[sp,#0]
000d6c  ebfffffe          BL       Glib_Line
;;;231    }
000d70  e8bd81fc          LDMFD    sp!,{r2-r8,pc}
                          ENDP

                  Glib_FilledRectangle PROC
;;;235    void Glib_FilledRectangle(int x1,int y1,int x2,int y2,int color)
;;;236    {
000d74  e92d43f8          STMFD    sp!,{r3-r9,lr}
000d78  e1a08000          MOV      r8,r0
000d7c  e1a06001          MOV      r6,r1
000d80  e1a09002          MOV      r9,r2
000d84  e1a07003          MOV      r7,r3
000d88  e59d5020          LDR      r5,[sp,#0x20]
;;;237        int i;
;;;238    
;;;239        for(i=y1;i<=y2;i++)
000d8c  e1a04006          MOV      r4,r6
                  |L1.3472|
000d90  e1540007          CMP      r4,r7
000d94  ca000009          BGT      |L1.3520|
000d98  ea000001          B        |L1.3492|
                  |L1.3484|
000d9c  e2844001          ADD      r4,r4,#1
000da0  eafffffa          B        |L1.3472|
;;;240    	Glib_Line(x1,i,x2,i,color);
                  |L1.3492|
000da4  e1a03004          MOV      r3,r4
000da8  e1a02009          MOV      r2,r9
000dac  e1a01004          MOV      r1,r4
000db0  e1a00008          MOV      r0,r8
000db4  e58d5000          STR      r5,[sp,#0]
000db8  ebfffffe          BL       Glib_Line
000dbc  eafffff6          B        |L1.3484|
;;;241    }
                  |L1.3520|
000dc0  e8bd83f8          LDMFD    sp!,{r3-r9,pc}
                          ENDP

                  Glib_ClearScr PROC
;;;373    void Glib_ClearScr(U32 c, int type)
;;;374    {	
000dc4  e92d40f8          STMFD    sp!,{r3-r7,lr}
000dc8  e1a07000          MOV      r7,r0
000dcc  e1a06001          MOV      r6,r1
;;;375        //Very inefficient function.
;;;376        int i,j;
;;;377        //if((type==MODE_TFT_1BIT_800600)|(type==MODE_TFT_8BIT_800600)|(type==MODE_TFT_16BIT_800600))
;;;378        if((type&0x4000)&&(type&0x400))
000dd0  e3160c40          TST      r6,#0x4000
000dd4  0a000016          BEQ      |L1.3636|
000dd8  e3160e40          TST      r6,#0x400
000ddc  0a000014          BEQ      |L1.3636|
;;;379    	for(j=0;j<SCR_YSIZE_TFT_800600;j++)
000de0  e3a05000          MOV      r5,#0
                  |L1.3556|
000de4  e3550e4b          CMP      r5,#0x4b0
000de8  aa00006f          BGE      |L1.4012|
000dec  ea000001          B        |L1.3576|
                  |L1.3568|
000df0  e2855001          ADD      r5,r5,#1
000df4  eafffffa          B        |L1.3556|
;;;380                for(i=0;i<SCR_XSIZE_TFT_800600;i++)
                  |L1.3576|
000df8  e3a04000          MOV      r4,#0
                  |L1.3580|
000dfc  e3540e64          CMP      r4,#0x640
000e00  aa00000a          BGE      |L1.3632|
000e04  ea000001          B        |L1.3600|
                  |L1.3592|
000e08  e2844001          ADD      r4,r4,#1
000e0c  eafffffa          B        |L1.3580|
;;;381    		        PutPixel(i,j,c);
                  |L1.3600|
000e10  e1a02007          MOV      r2,r7
000e14  e1a01005          MOV      r1,r5
000e18  e1a00004          MOV      r0,r4
000e1c  e51f3450          LDR      r3,|L1.2516|
000e20  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000e24  e1a0e00f          MOV      lr,pc
000e28  e1a0f003          MOV      pc,r3
000e2c  eafffff5          B        |L1.3592|
                  |L1.3632|
000e30  eaffffee          B        |L1.3568|
;;;382        //else if((type==MODE_TFT_1BIT_640480)|(type==MODE_TFT_8BIT_640480)|(type==MODE_TFT_16BIT_640480))
;;;383        else if((type&0x4000)&&(type&0x200))
                  |L1.3636|
000e34  e3160c40          TST      r6,#0x4000
000e38  0a000016          BEQ      |L1.3736|
000e3c  e3160f80          TST      r6,#0x200
000e40  0a000014          BEQ      |L1.3736|
;;;384    	for(j=0;j<SCR_YSIZE_TFT_640480;j++)
000e44  e3a05000          MOV      r5,#0
                  |L1.3656|
000e48  e3550ff0          CMP      r5,#0x3c0
000e4c  aa000056          BGE      |L1.4012|
000e50  ea000001          B        |L1.3676|
                  |L1.3668|
000e54  e2855001          ADD      r5,r5,#1
000e58  eafffffa          B        |L1.3656|
;;;385                for(i=0;i<SCR_XSIZE_TFT_640480;i++)
                  |L1.3676|
000e5c  e3a04000          MOV      r4,#0
                  |L1.3680|
000e60  e3540e50          CMP      r4,#0x500
000e64  aa00000a          BGE      |L1.3732|
000e68  ea000001          B        |L1.3700|
                  |L1.3692|
000e6c  e2844001          ADD      r4,r4,#1
000e70  eafffffa          B        |L1.3680|
;;;386    		        PutPixel(i,j,c);
                  |L1.3700|
000e74  e1a02007          MOV      r2,r7
000e78  e1a01005          MOV      r1,r5
000e7c  e1a00004          MOV      r0,r4
000e80  e51f34b4          LDR      r3,|L1.2516|
000e84  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000e88  e1a0e00f          MOV      lr,pc
000e8c  e1a0f003          MOV      pc,r3
000e90  eafffff5          B        |L1.3692|
                  |L1.3732|
000e94  eaffffee          B        |L1.3668|
;;;387        //else if((type==MODE_TFT_1BIT_240320)|(type==MODE_TFT_8BIT_240320)|(type==MODE_TFT_16BIT_240320))
;;;388        else if((type&0x4000)&&(type&0x100))
                  |L1.3736|
000e98  e3160c40          TST      r6,#0x4000
000e9c  0a000016          BEQ      |L1.3836|
000ea0  e3160f40          TST      r6,#0x100
000ea4  0a000014          BEQ      |L1.3836|
;;;389    	for(j=0;j<SCR_YSIZE_TFT_240320;j++)
000ea8  e3a05000          MOV      r5,#0
                  |L1.3756|
000eac  e3550fa0          CMP      r5,#0x280
000eb0  aa00003d          BGE      |L1.4012|
000eb4  ea000001          B        |L1.3776|
                  |L1.3768|
000eb8  e2855001          ADD      r5,r5,#1
000ebc  eafffffa          B        |L1.3756|
;;;390                for(i=0;i<SCR_XSIZE_TFT_240320;i++)
                  |L1.3776|
000ec0  e3a04000          MOV      r4,#0
                  |L1.3780|
000ec4  e3540f78          CMP      r4,#0x1e0
000ec8  aa00000a          BGE      |L1.3832|
000ecc  ea000001          B        |L1.3800|
                  |L1.3792|
000ed0  e2844001          ADD      r4,r4,#1
000ed4  eafffffa          B        |L1.3780|
;;;391    		        PutPixel(i,j,c);
                  |L1.3800|
000ed8  e1a02007          MOV      r2,r7
000edc  e1a01005          MOV      r1,r5
000ee0  e1a00004          MOV      r0,r4
000ee4  e51f3518          LDR      r3,|L1.2516|
000ee8  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000eec  e1a0e00f          MOV      lr,pc
000ef0  e1a0f003          MOV      pc,r3
000ef4  eafffff5          B        |L1.3792|
                  |L1.3832|
000ef8  eaffffee          B        |L1.3768|
;;;392        else if(type&0x2000)
                  |L1.3836|
000efc  e3160d80          TST      r6,#0x2000
000f00  0a000014          BEQ      |L1.3928|
;;;393            for(j=0;j<SCR_YSIZE_CSTN;j++)
000f04  e3a05000          MOV      r5,#0
                  |L1.3848|
000f08  e3550f78          CMP      r5,#0x1e0
000f0c  aa000026          BGE      |L1.4012|
000f10  ea000001          B        |L1.3868|
                  |L1.3860|
000f14  e2855001          ADD      r5,r5,#1
000f18  eafffffa          B        |L1.3848|
;;;394        	    for(i=0;i<SCR_XSIZE_CSTN;i++)
                  |L1.3868|
000f1c  e3a04000          MOV      r4,#0
                  |L1.3872|
000f20  e3540fa0          CMP      r4,#0x280
000f24  aa00000a          BGE      |L1.3924|
000f28  ea000001          B        |L1.3892|
                  |L1.3884|
000f2c  e2844001          ADD      r4,r4,#1
000f30  eafffffa          B        |L1.3872|
;;;395    		        PutPixel(i,j,c);
                  |L1.3892|
000f34  e1a02007          MOV      r2,r7
000f38  e1a01005          MOV      r1,r5
000f3c  e1a00004          MOV      r0,r4
0

⌨️ 快捷键说明

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