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

📄 glib.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0009c0  00000000          DCD      frameBuffer8Bit
                  |L1.2500|
0009c4  00000000          DCD      frameBuffer4Bit
                  |L1.2504|
0009c8  00000000          DCD      frameBuffer2Bit
                  |L1.2508|
0009cc  00000000          DCD      frameBuffer1Bit
                  |L1.2512|
0009d0  00000000          DCD      _PutStn1Bit
                  |L1.2516|
0009d4  00000000          DCD      ||.bss$2||
                  |L1.2520|
0009d8  00000000          DCD      _PutStn2Bit
                  |L1.2524|
0009dc  00000000          DCD      _PutStn4Bit
                  |L1.2528|
0009e0  00000000          DCD      _PutCstn8Bit
                  |L1.2532|
0009e4  00000000          DCD      _PutCstn12Bit
                  |L1.2536|
0009e8  00000000          DCD      _PutCstn16Bit
                  |L1.2540|
0009ec  00000000          DCD      _PutTft8Bit_240320
                  |L1.2544|
0009f0  00000000          DCD      _PutTft16Bit_240320
                  |L1.2548|
0009f4  00000000          DCD      _PutTft1Bit_640480
                  |L1.2552|
0009f8  00000000          DCD      _PutTft8Bit_640480
                  |L1.2556|
0009fc  00000000          DCD      _PutTft16Bit_640480
                  |L1.2560|
000a00  00000000          DCD      _PutTft24Bit_640480
                  |L1.2564|
000a04  00000000          DCD      _PutTft1Bit_800600
                  |L1.2568|
000a08  00000000          DCD      _PutTft8Bit_800600
                  |L1.2572|
000a0c  00000000          DCD      _PutTft16Bit_800600
                          ENDP

                  Glib_Line PROC
;;;252    void Glib_Line(int x1,int y1,int x2,int y2,int color)
;;;253    {
000a10  e92d4ff8          STMFD    sp!,{r3-r11,lr}
000a14  e1a05000          MOV      r5,r0
000a18  e1a06001          MOV      r6,r1
000a1c  e1a0a002          MOV      r10,r2
000a20  e1a0b003          MOV      r11,r3
000a24  e59d9028          LDR      r9,[sp,#0x28]
;;;254    	int dx,dy,e;
;;;255    	dx=x2-x1; 
000a28  e04a8005          SUB      r8,r10,r5
;;;256    	dy=y2-y1;
000a2c  e04b7006          SUB      r7,r11,r6
;;;257        
;;;258    	if(dx>=0)
000a30  e3580000          CMP      r8,#0
000a34  ba000056          BLT      |L1.2964|
;;;259    	{
;;;260    		if(dy >= 0) // dy>=0
000a38  e3570000          CMP      r7,#0
000a3c  ba000029          BLT      |L1.2792|
;;;261    		{
;;;262    			if(dx>=dy) // 1/8 octant
000a40  e1580007          CMP      r8,r7
000a44  ba000013          BLT      |L1.2712|
;;;263    			{
;;;264    				e=dy-dx/2;
000a48  e1a00008          MOV      r0,r8
000a4c  e0881fa8          ADD      r1,r8,r8,LSR #31
000a50  e04740c1          SUB      r4,r7,r1,ASR #1
;;;265    				while(x1<=x2)
000a54  e1a00000          NOP      
                  |L1.2648|
000a58  e155000a          CMP      r5,r10
000a5c  ca0000a4          BGT      |L1.3316|
;;;266    				{
;;;267    					PutPixel(x1,y1,color);
000a60  e1a02009          MOV      r2,r9
000a64  e1a01006          MOV      r1,r6
000a68  e1a00005          MOV      r0,r5
000a6c  e51f30a0          LDR      r3,|L1.2516|
000a70  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000a74  e1a0e00f          MOV      lr,pc
000a78  e1a0f003          MOV      pc,r3
;;;268    					if(e>0){y1+=1;e-=dx;}	
000a7c  e3540000          CMP      r4,#0
000a80  da000001          BLE      |L1.2700|
000a84  e2866001          ADD      r6,r6,#1
000a88  e0444008          SUB      r4,r4,r8
;;;269    					x1+=1;
                  |L1.2700|
000a8c  e2855001          ADD      r5,r5,#1
;;;270    					e+=dy;
000a90  e0844007          ADD      r4,r4,r7
;;;271    				}
000a94  eaffffef          B        |L1.2648|
;;;272    			}
;;;273    			else		// 2/8 octant
;;;274    			{
;;;275    				e=dx-dy/2;
                  |L1.2712|
000a98  e1a00007          MOV      r0,r7
000a9c  e0871fa7          ADD      r1,r7,r7,LSR #31
000aa0  e04840c1          SUB      r4,r8,r1,ASR #1
;;;276    				while(y1<=y2)
000aa4  e1a00000          NOP      
                  |L1.2728|
000aa8  e156000b          CMP      r6,r11
000aac  ca000090          BGT      |L1.3316|
;;;277    				{
;;;278    					PutPixel(x1,y1,color);
000ab0  e1a02009          MOV      r2,r9
000ab4  e1a01006          MOV      r1,r6
000ab8  e1a00005          MOV      r0,r5
000abc  e51f30f0          LDR      r3,|L1.2516|
000ac0  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000ac4  e1a0e00f          MOV      lr,pc
000ac8  e1a0f003          MOV      pc,r3
;;;279    					if(e>0){x1+=1;e-=dy;}	
000acc  e3540000          CMP      r4,#0
000ad0  da000001          BLE      |L1.2780|
000ad4  e2855001          ADD      r5,r5,#1
000ad8  e0444007          SUB      r4,r4,r7
;;;280    					y1+=1;
                  |L1.2780|
000adc  e2866001          ADD      r6,r6,#1
;;;281    					e+=dx;
000ae0  e0844008          ADD      r4,r4,r8
;;;282    				}
000ae4  eaffffef          B        |L1.2728|
;;;283    			}
;;;284    		}
;;;285    		else		   // dy<0
;;;286    		{
;;;287    			dy=-dy;   // dy=abs(dy)
                  |L1.2792|
000ae8  e2677000          RSB      r7,r7,#0
;;;288    
;;;289    			if(dx>=dy) // 8/8 octant
000aec  e1580007          CMP      r8,r7
000af0  ba000013          BLT      |L1.2884|
;;;290    			{
;;;291    				e=dy-dx/2;
000af4  e1a00008          MOV      r0,r8
000af8  e0881fa8          ADD      r1,r8,r8,LSR #31
000afc  e04740c1          SUB      r4,r7,r1,ASR #1
;;;292    				while(x1<=x2)
000b00  e1a00000          NOP      
                  |L1.2820|
000b04  e155000a          CMP      r5,r10
000b08  ca000079          BGT      |L1.3316|
;;;293    				{
;;;294    					PutPixel(x1,y1,color);
000b0c  e1a02009          MOV      r2,r9
000b10  e1a01006          MOV      r1,r6
000b14  e1a00005          MOV      r0,r5
000b18  e51f314c          LDR      r3,|L1.2516|
000b1c  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000b20  e1a0e00f          MOV      lr,pc
000b24  e1a0f003          MOV      pc,r3
;;;295    					if(e>0){y1-=1;e-=dx;}	
000b28  e3540000          CMP      r4,#0
000b2c  da000001          BLE      |L1.2872|
000b30  e2466001          SUB      r6,r6,#1
000b34  e0444008          SUB      r4,r4,r8
;;;296    					x1+=1;
                  |L1.2872|
000b38  e2855001          ADD      r5,r5,#1
;;;297    					e+=dy;
000b3c  e0844007          ADD      r4,r4,r7
;;;298    				}
000b40  eaffffef          B        |L1.2820|
;;;299    			}
;;;300    			else		// 7/8 octant
;;;301    			{
;;;302    				e=dx-dy/2;
                  |L1.2884|
000b44  e1a00007          MOV      r0,r7
000b48  e0871fa7          ADD      r1,r7,r7,LSR #31
000b4c  e04840c1          SUB      r4,r8,r1,ASR #1
;;;303    				while(y1>=y2)
000b50  e1a00000          NOP      
                  |L1.2900|
000b54  e156000b          CMP      r6,r11
000b58  ba000065          BLT      |L1.3316|
;;;304    				{
;;;305    					PutPixel(x1,y1,color);
000b5c  e1a02009          MOV      r2,r9
000b60  e1a01006          MOV      r1,r6
000b64  e1a00005          MOV      r0,r5
000b68  e51f319c          LDR      r3,|L1.2516|
000b6c  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000b70  e1a0e00f          MOV      lr,pc
000b74  e1a0f003          MOV      pc,r3
;;;306    					if(e>0){x1+=1;e-=dy;}	
000b78  e3540000          CMP      r4,#0
000b7c  da000001          BLE      |L1.2952|
000b80  e2855001          ADD      r5,r5,#1
000b84  e0444007          SUB      r4,r4,r7
;;;307    					y1-=1;
                  |L1.2952|
000b88  e2466001          SUB      r6,r6,#1
;;;308    					e+=dx;
000b8c  e0844008          ADD      r4,r4,r8
;;;309    				}
000b90  eaffffef          B        |L1.2900|
;;;310    			}
;;;311    		}	
;;;312    	}
;;;313    	else //dx<0
;;;314    	{
;;;315    		dx=-dx;		//dx=abs(dx)
                  |L1.2964|
000b94  e2688000          RSB      r8,r8,#0
;;;316    		if(dy >= 0) // dy>=0
000b98  e3570000          CMP      r7,#0
000b9c  ba000029          BLT      |L1.3144|
;;;317    		{
;;;318    			if(dx>=dy) // 4/8 octant
000ba0  e1580007          CMP      r8,r7
000ba4  ba000013          BLT      |L1.3064|
;;;319    			{
;;;320    				e=dy-dx/2;
000ba8  e1a00008          MOV      r0,r8
000bac  e0881fa8          ADD      r1,r8,r8,LSR #31
000bb0  e04740c1          SUB      r4,r7,r1,ASR #1
;;;321    				while(x1>=x2)
000bb4  e1a00000          NOP      
                  |L1.3000|
000bb8  e155000a          CMP      r5,r10
000bbc  ba00004c          BLT      |L1.3316|
;;;322    				{
;;;323    					PutPixel(x1,y1,color);
000bc0  e1a02009          MOV      r2,r9
000bc4  e1a01006          MOV      r1,r6
000bc8  e1a00005          MOV      r0,r5
000bcc  e51f3200          LDR      r3,|L1.2516|
000bd0  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000bd4  e1a0e00f          MOV      lr,pc
000bd8  e1a0f003          MOV      pc,r3
;;;324    					if(e>0){y1+=1;e-=dx;}	
000bdc  e3540000          CMP      r4,#0
000be0  da000001          BLE      |L1.3052|
000be4  e2866001          ADD      r6,r6,#1
000be8  e0444008          SUB      r4,r4,r8
;;;325    					x1-=1;
                  |L1.3052|
000bec  e2455001          SUB      r5,r5,#1
;;;326    					e+=dy;
000bf0  e0844007          ADD      r4,r4,r7
;;;327    				}
000bf4  eaffffef          B        |L1.3000|
;;;328    			}
;;;329    			else		// 3/8 octant
;;;330    			{
;;;331    				e=dx-dy/2;
                  |L1.3064|
000bf8  e1a00007          MOV      r0,r7
000bfc  e0871fa7          ADD      r1,r7,r7,LSR #31
000c00  e04840c1          SUB      r4,r8,r1,ASR #1
;;;332    				while(y1<=y2)
000c04  e1a00000          NOP      
                  |L1.3080|
000c08  e156000b          CMP      r6,r11
000c0c  ca000038          BGT      |L1.3316|
;;;333    				{
;;;334    					PutPixel(x1,y1,color);
000c10  e1a02009          MOV      r2,r9
000c14  e1a01006          MOV      r1,r6
000c18  e1a00005          MOV      r0,r5
000c1c  e51f3250          LDR      r3,|L1.2516|
000c20  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000c24  e1a0e00f          MOV      lr,pc
000c28  e1a0f003          MOV      pc,r3
;;;335    					if(e>0){x1-=1;e-=dy;}	
000c2c  e3540000          CMP      r4,#0
000c30  da000001          BLE      |L1.3132|
000c34  e2455001          SUB      r5,r5,#1
000c38  e0444007          SUB      r4,r4,r7
;;;336    					y1+=1;
                  |L1.3132|
000c3c  e2866001          ADD      r6,r6,#1
;;;337    					e+=dx;
000c40  e0844008          ADD      r4,r4,r8
;;;338    				}
000c44  eaffffef          B        |L1.3080|
;;;339    			}
;;;340    		}
;;;341    		else		   // dy<0
;;;342    		{
;;;343    			dy=-dy;   // dy=abs(dy)
                  |L1.3144|
000c48  e2677000          RSB      r7,r7,#0
;;;344    
;;;345    			if(dx>=dy) // 5/8 octant
000c4c  e1580007          CMP      r8,r7
000c50  ba000013          BLT      |L1.3236|
;;;346    			{

⌨️ 快捷键说明

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