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

📄 modemif.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;484    		rINT2MDM=0x7ff;
000600  e1800080          ORR      r0,r0,r0,LSL #1
000604  e1c11000          BIC      r1,r1,r0
000608  e5810004          STR      r0,[r1,#4]
;;;485    		Uart_Printf("INT2AP:0x%3x,INT2MDM:0x%3x\n",rINT2AP,rINT2MDM);
00060c  e1c10000          BIC      r0,r1,r0
000610  e5900004          LDR      r0,[r0,#4]
000614  e1a02000          MOV      r2,r0
000618  e1a00001          MOV      r0,r1
00061c  e5900000          LDR      r0,[r0,#0]
000620  e1a01000          MOV      r1,r0
000624  e28f0f69          ADR      r0,|L1.2000|
000628  ebfffffe          BL       _printf
;;;486    		//programmable IRQ port address
;;;487    		
;;;488    		/*
;;;489    			rEXTINTCR1=rEXTINTCR1&~(7<<4)|(2<<4);
;;;490    			//EINT12(GP12)=MODEM_INT=falling edge
;;;491    		*/	
;;;492    			rEXTINTC2=rEXTINTC2&~(7<<4)|(2<<4);
00062c  e51f00e4          LDR      r0,|L1.1360|
000630  e5900020          LDR      r0,[r0,#0x20]
000634  e3c00070          BIC      r0,r0,#0x70
000638  e3800020          ORR      r0,r0,#0x20
00063c  e51f10f4          LDR      r1,|L1.1360|
000640  e5810020          STR      r0,[r1,#0x20]
;;;493    			//EINT12(GP12)=MODEM_INT=falling edge
;;;494    
;;;495    		
;;;496    		ClearPending(BIT_EINT11_14);//to clear the previous pending states
000644  e3a00008          MOV      r0,#8
000648  e2411646          SUB      r1,r1,#0x4600000
00064c  e5810000          STR      r0,[r1,#0]
000650  e1c10000          BIC      r0,r1,r0
000654  e5900010          LDR      r0,[r0,#0x10]
000658  e5810010          STR      r0,[r1,#0x10]
00065c  e1a00001          MOV      r0,r1
000660  e5900010          LDR      r0,[r0,#0x10]
;;;497    		
;;;498    		pISR_EINT11_14= (unsigned)MODEM_Int_Rx;//MODEM_INT
000664  e59f0180          LDR      r0,|L1.2028|
000668  e51f12cc          LDR      r1,|L1.932|
00066c  e5810f2c          STR      r0,[r1,#0xf2c]
;;;499    		rINTMSK=~(BIT_EINT11_14);  
000670  e3e00008          MVN      r0,#8
000674  e51f1574          LDR      r1,|L1.264|
000678  e5810008          STR      r0,[r1,#8]
;;;500    		
;;;501    		rEINTMASK=~(1<<12); //EINTMASK[12]=enable interrupt.
00067c  e3e00d40          MVN      r0,#0x1000
000680  e2811646          ADD      r1,r1,#0x4600000
000684  e5810034          STR      r0,[r1,#0x34]
;;;502    
;;;503    	
;;;504    		// Initialize TX Buffer ----------------INIT
;;;505    		txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
000688  e59f6160          LDR      r6,|L1.2032|
;;;506    		for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
00068c  e3a04000          MOV      r4,#0
                  |L1.1680|
000690  e254cfc0          SUBS     r12,r4,#0x300
000694  225cc0ff          SUBCSS   r12,r12,#0xff
000698  2a000004          BCS      |L1.1712|
00069c  ea000001          B        |L1.1704|
                  |L1.1696|
0006a0  e2844001          ADD      r4,r4,#1
0006a4  eafffff9          B        |L1.1680|
;;;507    			*(txdata+i) = i; 
                  |L1.1704|
0006a8  e7c64004          STRB     r4,[r6,r4]
0006ac  eafffffb          B        |L1.1696|
;;;508    		txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
                  |L1.1712|
0006b0  e59f6138          LDR      r6,|L1.2032|
;;;509    
;;;510    		// Zero Initialize RX Buffer ----------------INIT
;;;511    		rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
0006b4  e2867e80          ADD      r7,r6,#0x800
;;;512    		for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0006b8  e3a04000          MOV      r4,#0
                  |L1.1724|
0006bc  e254cfc0          SUBS     r12,r4,#0x300
0006c0  225cc0ff          SUBCSS   r12,r12,#0xff
0006c4  2a000005          BCS      |L1.1760|
0006c8  ea000001          B        |L1.1748|
                  |L1.1740|
0006cc  e2844001          ADD      r4,r4,#1
0006d0  eafffff9          B        |L1.1724|
;;;513    			*(rxdata+i) = 0x0; 
                  |L1.1748|
0006d4  e3a00000          MOV      r0,#0
0006d8  e7c70004          STRB     r0,[r7,r4]
0006dc  eafffffa          B        |L1.1740|
;;;514    		rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);	
                  |L1.1760|
0006e0  e51f7140          LDR      r7,|L1.1448|
;;;515    		
;;;516    		//	Uart_Printf("[ MODEM RX first, then start any key]\n");
;;;517    		//	Uart_Getch();
;;;518    	
;;;519    		for(j=0;j<REPEAT;j++)
0006e4  e3a05000          MOV      r5,#0
                  |L1.1768|
0006e8  e3550032          CMP      r5,#0x32
0006ec  2a000020          BCS      |L1.1908|
0006f0  ea000001          B        |L1.1788|
                  |L1.1780|
0006f4  e2855001          ADD      r5,r5,#1
0006f8  eafffffa          B        |L1.1768|
;;;520    		{
;;;521    			//Request irq to MODEM--------------START
;;;522    			Uart_Printf("[ AP Tx Start: %d ]\n",j);
                  |L1.1788|
0006fc  e1a01005          MOV      r1,r5
000700  e28f00ec          ADR      r0,|L1.2036|
000704  ebfffffe          BL       _printf
;;;523    			*(unsigned char *)(_AP_TX_Queue_Irq_Port)=0xff;
000708  e3a000ff          MOV      r0,#0xff
00070c  e51f15a8          LDR      r1,|L1.364|
000710  e5c107ff          STRB     r0,[r1,#0x7ff]
;;;524    			
;;;525    			// Write data into DPSRAM
;;;526    			Uart_Printf("[ AP Writing.......]\n");
000714  e28f00f0          ADR      r0,|L1.2060|
000718  ebfffffe          BL       _printf
;;;527    			for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
00071c  e3a04000          MOV      r4,#0
                  |L1.1824|
000720  e254cfc0          SUBS     r12,r4,#0x300
000724  225cc0ff          SUBCSS   r12,r12,#0xff
000728  2a00000b          BCS      |L1.1884|
00072c  ea000001          B        |L1.1848|
                  |L1.1840|
000730  e2844001          ADD      r4,r4,#1
000734  eafffff9          B        |L1.1824|
;;;528    			{
;;;529    				*(unsigned char *)(_AP_TX_Queue+i) = *(txdata+i);				// put the data into fifo		
                  |L1.1848|
000738  e7d60004          LDRB     r0,[r6,r4]
00073c  e59f10e0          LDR      r1,|L1.2084|
000740  e7c10004          STRB     r0,[r1,r4]
;;;530    				Tx_Done_Flag++;
000744  e51f0404          LDR      r0,|L1.840|
000748  e5900000          LDR      r0,[r0,#0]  ; Tx_Done_Flag
00074c  e2800001          ADD      r0,r0,#1
000750  e51f1410          LDR      r1,|L1.840|
000754  e5810000          STR      r0,[r1,#0]  ; Tx_Done_Flag
;;;531    		//		if(Tx_Done_Flag == _DPSRAM_TXRX_BUFLEN)
;;;532    		//		{
;;;533    		//			txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
;;;534    		//		}
;;;535    			}
000758  eafffff4          B        |L1.1840|
;;;536    		
;;;537    			//Request irq to MODEM---------------STOP
;;;538    			Uart_Printf("[ AP Tx Stop]\n");
                  |L1.1884|
00075c  e28f00c4          ADR      r0,|L1.2088|
000760  ebfffffe          BL       _printf
;;;539    			*(unsigned char *)(_AP_TX_Queue_Irq_Port)=0x00;
000764  e3a00000          MOV      r0,#0
000768  e51f1604          LDR      r1,|L1.364|
00076c  e5c107ff          STRB     r0,[r1,#0x7ff]
;;;540    		
;;;541    		/*
;;;542    			txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
;;;543    			for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
;;;544    				Uart_Printf("0x%x=%03x	",(txdata+i),*(txdata+i));	
;;;545    		*/		
;;;546    		}
000770  eaffffdf          B        |L1.1780|
;;;547    		rINTMSK|=(BIT_EINT11_14);  
                  |L1.1908|
000774  e51f0674          LDR      r0,|L1.264|
000778  e5900008          LDR      r0,[r0,#8]
00077c  e3800008          ORR      r0,r0,#8
000780  e51f1680          LDR      r1,|L1.264|
000784  e5810008          STR      r0,[r1,#8]
;;;548    	rEINTMASK|=(1<<12); //EINTMASK[12]=MASK interrupt.			
000788  e2810646          ADD      r0,r1,#0x4600000
00078c  e5900034          LDR      r0,[r0,#0x34]
000790  e3800d40          ORR      r0,r0,#0x1000
000794  e2811646          ADD      r1,r1,#0x4600000
000798  e5810034          STR      r0,[r1,#0x34]
;;;549    		Uart_Printf("[ AP Tx with RX test END]\n");	
00079c  e28f0094          ADR      r0,|L1.2104|
0007a0  ebfffffe          BL       _printf
;;;550    
;;;551    }
0007a4  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.1960|
0007a8  5041205b          DCB      "[ AP"
0007ac  20785420          DCB      " Tx "
0007b0  68746977          DCB      "with"
0007b4  20585220          DCB      " RX "
0007b8  74736574          DCB      "test"
0007bc  69737520          DCB      " usi"
0007c0  4d20676e          DCB      "ng M"
0007c4  6d65646f          DCB      "odem"
0007c8  462f4920          DCB      " I/F"
0007cc  000a5d20          DCB      " ]\n\0"
                  |L1.2000|
0007d0  32544e49          DCB      "INT2"
0007d4  303a5041          DCB      "AP:0"
0007d8  78332578          DCB      "x%3x"
0007dc  544e492c          DCB      ",INT"
0007e0  4d444d32          DCB      "2MDM"
0007e4  2578303a          DCB      ":0x%"
0007e8  000a7833          DCB      "3x\n\0"
                  |L1.2028|
0007ec  00000000          DCD      MODEM_Int_Rx
                  |L1.2032|
0007f0  11000400          DCD      0x11000400
                  |L1.2036|
0007f4  5041205b          DCB      "[ AP"
0007f8  20785420          DCB      " Tx "
0007fc  72617453          DCB      "Star"
000800  25203a74          DCB      "t: %"
000804  0a5d2064          DCB      "d ]\n"
000808  00000000          DCB      "\0\0\0\0"
                  |L1.2060|
00080c  5041205b          DCB      "[ AP"
000810  69725720          DCB      " Wri"
000814  676e6974          DCB      "ting"
000818  2e2e2e2e          DCB      "...."
00081c  5d2e2e2e          DCB      "...]"
000820  0000000a          DCB      "\n\0\0\0"
                  |L1.2084|
000824  41100400          DCD      0x41100400
                  |L1.2088|
000828  5041205b          DCB      "[ AP"
00082c  20785420          DCB      " Tx "
000830  706f7453          DCB      "Stop"
000834  00000a5d          DCB      "]\n\0\0"
                  |L1.2104|
000838  5041205b          DCB      "[ AP"
00083c  20785420          DCB      " Tx "
000840  68746977          DCB      "with"
000844  20585220          DCB      " RX "
000848  74736574          DCB      "test"
00084c  444e4520          DCB      " END"
000850  00000a5d          DCB      "]\n\0\0"
                          ENDP

                  MODEM_Rx PROC
;;;257    void MODEM_Rx(void)
;;;258    {
000854  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;259    
;;;260    	unsigned int i;
;;;261    	unsigned char *rxdata;
;;;262    
;;;263    	Rx_Done_Flag = 0;
000858  e3a00000          MOV      r0,#0
00085c  e51f16f4          LDR      r1,|L1.368|
000860  e5810000          STR      r0,[r1,#0]  ; Rx_Done_Flag
;;;264    	Start_Detect = 0;
000864  e3a00000          MOV      r0,#0
000868  e51f1764          LDR      r1,|L1.268|
00086c  e5810000          STR      r0,[r1,#0]  ; Start_Detect
;;;265    	End_Detect = 0;
000870  e3a00000          MOV      r0,#0
000874  e51f174c          LDR      r1,|L1.304|
000878  e5810000          STR      r0,[r1,#0]  ; End_Detect
;;;266    	Uart_TxEmpty(0);
00087c  e3a00000          MOV      r0,#0
000880  ebfffffe          BL       Uart_TxEmpty
;;;267    
;;;268    	Uart_Printf("[ MODEM Rx test using Modem I/F ]\n");
000884  e28f00b0          ADR      r0,|L1.2364|
000888  ebfffffe          BL       _printf
;;;269    
;;;270    	// Zero Initialize RX Buffer ----------------INIT
;;;271    	rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
00088c  e51f52ec          LDR      r5,|L1.1448|
;;;272    	for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
000890  e3a04000          MOV      r4,#0
                  |L1.2196|
000894  e254cfc0          SUBS     r12,r4,#0x300
000898  225cc0ff          SUBCSS   r12,r12,#0xff
00089c  2a000005          BCS      |L1.2232|
0008a0  ea000001          B        |L1.2220|
                  |L1.2212|
0008a4  e2844001          ADD      r4,r4,#1
0008a8  eafffff9          B        |L1.2196|
;;;273    		*(rxdata+i) = 0x0; 
                  |L1.2220|
0008ac  e3a00000          MOV      r0,#0
0008b0  e7c50004          STRB     r0,[r5,r4]
0008b4  eafffffa          B        |L1.2212|
;;;274    	rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
                  |L1.2232|
0008b8  e51f5318          LDR      r5,|L1.1448|
;;;275    
;;;276    	Uart_Printf("[ MODEM RX Start]\n");
0008bc  e28f009c          ADR      r0,|L1.2400|
0008c0  ebfffffe          BL       _printf
;;;277    	Uart_Getch();
0008c4  ebfffffe          BL       Uart_Getch
;;;278    
;;;279    	while(!Rx_Done_Flag);
0008c8  e1a00000          NOP      
                  |L1.2252|
0008cc  e51f0764          LDR      r0,|L1.368|
0008d0  e5900000          LDR      r0,[r0,#0]  ; Rx_Done_Flag
0008d4  e3500000          CMP      r0,#0
0008d8  0afffffb          BEQ      |L1.2252|
;;;280    	rINTMSK|=(BIT_EINT11_14);  
0008dc  e51f07dc          LDR      r0,|L1.264|
0008e0  e5900008          LDR      r0,[r0,#8]
0008e4  e3800008          ORR      r0,r0,#8
0008e8  e51f17e8          LDR      r1,|L1.264|
0008ec  e5810008          STR      r0,[r1,#8]
;;;281    	rEINTMASK=rEINTMASK&~(1<<12)|(1<<12); //EINTMASK[12]=MASK interrupt.	
0008f0  e2810646          ADD      r0,r1,#0x4600000
0008f4  e5900034          LDR      r0,[r0,#0x34]
0008f8  e3800d40          ORR      r0,r0,#0x1000
0008fc  e2811646          ADD      r1,r1,#0x4600000

⌨️ 快捷键说明

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