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

📄 modemif.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\modemif.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  AP_Int_Rx PROC
;;;425    void __irq AP_Int_Rx(void)
;;;426    {
                  |L1.0|
000000  e92d50ff          STMFD    sp!,{r0-r7,r12,lr}
;;;427    	unsigned int i;
;;;428    	unsigned char *rxdata,temp;	
;;;429    	unsigned int queue_depth=0;
000004  e3a06000          MOV      r6,#0
;;;430    
;;;431    
;;;432    	ClearPending(BIT_MODEM);	
000008  e3a00a80          MOV      r0,#0x80000
00000c  e59f10f4          LDR      r1,|L1.264|
000010  e5810000          STR      r0,[r1,#0]
000014  e1c10000          BIC      r0,r1,r0
000018  e5900010          LDR      r0,[r0,#0x10]
00001c  e5810010          STR      r0,[r1,#0x10]
000020  e1a00001          MOV      r0,r1
000024  e5900010          LDR      r0,[r0,#0x10]
;;;433    	rINTMSK|=(BIT_MODEM);  	
000028  e1a00001          MOV      r0,r1
00002c  e5900008          LDR      r0,[r0,#8]
000030  e3800a80          ORR      r0,r0,#0x80000
000034  e5810008          STR      r0,[r1,#8]
;;;434    	
;;;435    	temp=(*(unsigned char *)_AP_RX_Queue_Irq_Port)&0xff;
000038  e28108f0          ADD      r0,r1,#0xf00000
00003c  e5d053ff          LDRB     r5,[r0,#0x3ff]
;;;436    	if( temp == 0xff)
000040  e35500ff          CMP      r5,#0xff
000044  1a000009          BNE      |L1.112|
;;;437    	{
;;;438    
;;;439    	Uart_Printf("[ MODEM Tx Start Detect: %d ]\n",Start_Detect++);
000048  e59f00bc          LDR      r0,|L1.268|
00004c  e5900000          LDR      r0,[r0,#0]  ; Start_Detect
000050  e2803001          ADD      r3,r0,#1
000054  e59f00b0          LDR      r0,|L1.268|
000058  e5902000          LDR      r2,[r0,#0]  ; Start_Detect
00005c  e5803000          STR      r3,[r0,#0]  ; Start_Detect
000060  e1a01002          MOV      r1,r2
000064  e28f00a4          ADR      r0,|L1.272|
000068  ebfffffe          BL       _printf
00006c  ea000020          B        |L1.244|
;;;440    
;;;441    	}
;;;442    	else if(temp == 0x00)
                  |L1.112|
000070  e3550000          CMP      r5,#0
000074  1a00001b          BNE      |L1.232|
;;;443    	{
;;;444    	
;;;445    	Uart_Printf("[ MODEM Tx End Detect: %d ]\n",End_Detect++);
000078  e59f00b0          LDR      r0,|L1.304|
00007c  e5900000          LDR      r0,[r0,#0]  ; End_Detect
000080  e2803001          ADD      r3,r0,#1
000084  e59f00a4          LDR      r0,|L1.304|
000088  e5902000          LDR      r2,[r0,#0]  ; End_Detect
00008c  e5803000          STR      r3,[r0,#0]  ; End_Detect
000090  e1a01002          MOV      r1,r2
000094  e28f0098          ADR      r0,|L1.308|
000098  ebfffffe          BL       _printf
;;;446    
;;;447    	// Read data from DPSRAM
;;;448    	Uart_Printf("[ AP Reading.......]\n");		
00009c  e28f00b0          ADR      r0,|L1.340|
0000a0  ebfffffe          BL       _printf
;;;449    	rxdata = (unsigned char *)(_MEM_AP_RX_Buffer);
0000a4  e3a07544          MOV      r7,#0x11000000
;;;450    	for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0000a8  e3a04000          MOV      r4,#0
                  |L1.172|
0000ac  e254cfc0          SUBS     r12,r4,#0x300
0000b0  225cc0ff          SUBCSS   r12,r12,#0xff
0000b4  2a000007          BCS      |L1.216|
0000b8  ea000001          B        |L1.196|
                  |L1.188|
0000bc  e2844001          ADD      r4,r4,#1
0000c0  eafffff9          B        |L1.172|
;;;451    		{
;;;452    		*(unsigned char *)(rxdata+i) = *(unsigned char *)(_AP_RX_Queue+i); 				// pop the data from DPSRAM		
                  |L1.196|
0000c4  e59f00a0          LDR      r0,|L1.364|
0000c8  e7d00004          LDRB     r0,[r0,r4]
0000cc  e7c70004          STRB     r0,[r7,r4]
;;;453    		queue_depth++;
0000d0  e2866001          ADD      r6,r6,#1
;;;454    		/*
;;;455    		if(queue_depth == _DPSRAM_TXRX_BUFLEN)
;;;456    			{
;;;457    			rxdata = (unsigned char *)(_MEM_AP_RX_Buffer);
;;;458    			queue_depth = 0;
;;;459    			}
;;;460    		*/	
;;;461    		}
0000d4  eafffff8          B        |L1.188|
;;;462    	Rx_Done_Flag=1;
                  |L1.216|
0000d8  e3a00001          MOV      r0,#1
0000dc  e59f108c          LDR      r1,|L1.368|
0000e0  e5810000          STR      r0,[r1,#0]  ; Rx_Done_Flag
0000e4  ea000002          B        |L1.244|
;;;463    	}
;;;464    	else
;;;465    		Uart_Printf("[ Error!!!: 0x%x ]\n",temp);	
                  |L1.232|
0000e8  e1a01005          MOV      r1,r5
0000ec  e28f0080          ADR      r0,|L1.372|
0000f0  ebfffffe          BL       _printf
;;;466    	rINTMSK=~(BIT_MODEM);  
                  |L1.244|
0000f4  e3e00a80          MVN      r0,#0x80000
0000f8  e59f1008          LDR      r1,|L1.264|
0000fc  e5810008          STR      r0,[r1,#8]
;;;467    
;;;468    }
000100  e8bd50ff          LDMFD    sp!,{r0-r7,r12,lr}
000104  e25ef004          SUBS     pc,lr,#4
                  |L1.264|
000108  40200000          DCD      0x40200000
                  |L1.268|
00010c  00000008          DCD      ||.bss$2|| + 8
                  |L1.272|
000110  4f4d205b          DCB      "[ MO"
000114  204d4544          DCB      "DEM "
000118  53207854          DCB      "Tx S"
00011c  74726174          DCB      "tart"
000120  74654420          DCB      " Det"
000124  3a746365          DCB      "ect:"
000128  20642520          DCB      " %d "
00012c  00000a5d          DCB      "]\n\0\0"
                  |L1.304|
000130  0000000c          DCD      ||.bss$2|| + 12
                  |L1.308|
000134  4f4d205b          DCB      "[ MO"
000138  204d4544          DCB      "DEM "
00013c  45207854          DCB      "Tx E"
000140  4420646e          DCB      "nd D"
000144  63657465          DCB      "etec"
000148  25203a74          DCB      "t: %"
00014c  0a5d2064          DCB      "d ]\n"
000150  00000000          DCB      "\0\0\0\0"
                  |L1.340|
000154  5041205b          DCB      "[ AP"
000158  61655220          DCB      " Rea"
00015c  676e6964          DCB      "ding"
000160  2e2e2e2e          DCB      "...."
000164  5d2e2e2e          DCB      "...]"
000168  0000000a          DCB      "\n\0\0\0"
                  |L1.364|
00016c  41100000          DCD      0x41100000
                  |L1.368|
000170  00000004          DCD      ||.bss$2|| + 4
                  |L1.372|
000174  7245205b          DCB      "[ Er"
000178  21726f72          DCB      "ror!"
00017c  203a2121          DCB      "!!: "
000180  78257830          DCB      "0x%x"
000184  000a5d20          DCB      " ]\n\0"
                          ENDP

                  MDM_Tx_Rx PROC
;;;552    void MDM_Tx_Rx(void)
;;;553    {
000188  e92d40f8          STMFD    sp!,{r3-r7,lr}
;;;554    	unsigned int i,j;
;;;555    	unsigned char *txdata,*rxdata;
;;;556    	
;;;557    	Tx_Done_Flag = 0;
00018c  e3a00000          MOV      r0,#0
000190  e59f11b0          LDR      r1,|L1.840|
000194  e5810000          STR      r0,[r1,#0]  ; Tx_Done_Flag
;;;558    	Rx_Done_Flag = 0;
000198  e3a00000          MOV      r0,#0
00019c  e51f1034          LDR      r1,|L1.368|
0001a0  e5810000          STR      r0,[r1,#0]  ; Rx_Done_Flag
;;;559    	Start_Detect = 0;
0001a4  e3a00000          MOV      r0,#0
0001a8  e51f10a4          LDR      r1,|L1.268|
0001ac  e5810000          STR      r0,[r1,#0]  ; Start_Detect
;;;560    	End_Detect = 0;
0001b0  e3a00000          MOV      r0,#0
0001b4  e51f108c          LDR      r1,|L1.304|
0001b8  e5810000          STR      r0,[r1,#0]  ; End_Detect
;;;561    	Uart_TxEmpty(0);
0001bc  e3a00000          MOV      r0,#0
0001c0  ebfffffe          BL       Uart_TxEmpty
;;;562    	Uart_Printf("[ MODEM Tx with RX test using Modem I/F ]\n");
0001c4  e28f0f60          ADR      r0,|L1.844|
0001c8  ebfffffe          BL       _printf
;;;563    
;;;564    	rINT2AP=0x3ff;
0001cc  e59f01a4          LDR      r0,|L1.888|
0001d0  e59f11a4          LDR      r1,|L1.892|
0001d4  e5810000          STR      r0,[r1,#0]
;;;565    	rINT2MDM=0x7ff;
0001d8  e1800080          ORR      r0,r0,r0,LSL #1
0001dc  e1c11000          BIC      r1,r1,r0
0001e0  e5810004          STR      r0,[r1,#4]
;;;566    	Uart_Printf("rINT2AP,rINT2MDM 0x%3x 0x%3x\n",rINT2AP,rINT2MDM);
0001e4  e1c10000          BIC      r0,r1,r0
0001e8  e5900004          LDR      r0,[r0,#4]
0001ec  e1a02000          MOV      r2,r0
0001f0  e1a00001          MOV      r0,r1
0001f4  e5900000          LDR      r0,[r0,#0]
0001f8  e1a01000          MOV      r1,r0
0001fc  e28f0f5f          ADR      r0,|L1.896|
000200  ebfffffe          BL       _printf
;;;567    	//programmable IRQ port address
;;;568    
;;;569    	ClearPending(BIT_MODEM);//to clear the previous pending states
000204  e3a00a80          MOV      r0,#0x80000
000208  e51f1108          LDR      r1,|L1.264|
00020c  e5810000          STR      r0,[r1,#0]
000210  e1c10000          BIC      r0,r1,r0
000214  e5900010          LDR      r0,[r0,#0x10]
000218  e5810010          STR      r0,[r1,#0x10]
00021c  e1a00001          MOV      r0,r1
000220  e5900010          LDR      r0,[r0,#0x10]
;;;570    	
;;;571    	pISR_MODEM= (unsigned)AP_Int_Rx;//MODEM_INT
000224  e59f0174          LDR      r0,|L1.928|
000228  e59f1174          LDR      r1,|L1.932|
00022c  e5810f6c          STR      r0,[r1,#0xf6c]
;;;572    	rINTMSK=~(BIT_MODEM);  	
000230  e3e00a80          MVN      r0,#0x80000
000234  e51f1134          LDR      r1,|L1.264|
000238  e5810008          STR      r0,[r1,#8]
;;;573    	
;;;574    	// Initialize TX Buffer ----------------INIT
;;;575    	txdata = (unsigned char *)(_MEM_MDM_TX_Buffer);
00023c  e59f6164          LDR      r6,|L1.936|
;;;576    	for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
000240  e3a04000          MOV      r4,#0
                  |L1.580|
000244  e254cfc0          SUBS     r12,r4,#0x300
000248  225cc0ff          SUBCSS   r12,r12,#0xff
00024c  2a000004          BCS      |L1.612|
000250  ea000001          B        |L1.604|
                  |L1.596|
000254  e2844001          ADD      r4,r4,#1
000258  eafffff9          B        |L1.580|
;;;577    		*(txdata+i) = i; 
                  |L1.604|
00025c  e7c64004          STRB     r4,[r6,r4]
000260  eafffffb          B        |L1.596|
;;;578    	txdata = (unsigned char *)(_MEM_MDM_TX_Buffer);
                  |L1.612|
000264  e59f613c          LDR      r6,|L1.936|
;;;579    
;;;580    	// Zero Initialize RX Buffer ----------------INIT
;;;581    	rxdata = (unsigned char *)(_MEM_AP_RX_Buffer );
000268  e3a07544          MOV      r7,#0x11000000
;;;582    	for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
00026c  e3a04000          MOV      r4,#0
                  |L1.624|
000270  e254cfc0          SUBS     r12,r4,#0x300
000274  225cc0ff          SUBCSS   r12,r12,#0xff
000278  2a000005          BCS      |L1.660|
00027c  ea000001          B        |L1.648|
                  |L1.640|
000280  e2844001          ADD      r4,r4,#1
000284  eafffff9          B        |L1.624|
;;;583    		*(rxdata+i) = 0x0; 
                  |L1.648|
000288  e3a00000          MOV      r0,#0
00028c  e7c70004          STRB     r0,[r7,r4]
000290  eafffffa          B        |L1.640|
;;;584    	rxdata = (unsigned char *)(_MEM_AP_RX_Buffer );	
                  |L1.660|
000294  e3a07544          MOV      r7,#0x11000000
;;;585    	
;;;586    	//Uart_Printf("[ AP RX first, then start any key]\n");
;;;587    	//Uart_Getch();
;;;588    	
;;;589    	for(j=0;j<REPEAT;j++)	
000298  e3a05000          MOV      r5,#0
                  |L1.668|
00029c  e3550032          CMP      r5,#0x32
0002a0  2a000020          BCS      |L1.808|
0002a4  ea000001          B        |L1.688|
                  |L1.680|
0002a8  e2855001          ADD      r5,r5,#1
0002ac  eafffffa          B        |L1.668|
;;;590    	{
;;;591    	//Request irq to AP--------------START
;;;592    	Uart_Printf("[ MODEM Tx Start: %d ]\n",j);
                  |L1.688|
0002b0  e1a01005          MOV      r1,r5
0002b4  e28f00f0          ADR      r0,|L1.940|
0002b8  ebfffffe          BL       _printf
;;;593    	*(unsigned char *)(_MDM_TX_Queue_Irq_Port)=0xff;
0002bc  e3a000ff          MOV      r0,#0xff
0002c0  e3a01660          MOV      r1,#0x6000000
0002c4  e5c103ff          STRB     r0,[r1,#0x3ff]
;;;594    	
;;;595    	
;;;596    	// Write data into DPSRAM
;;;597    	Uart_Printf("[ MODEM Writing.......]\n");	
0002c8  e28f00f4          ADR      r0,|L1.964|
0002cc  ebfffffe          BL       _printf
;;;598    	for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0002d0  e3a04000          MOV      r4,#0
                  |L1.724|
0002d4  e254cfc0          SUBS     r12,r4,#0x300
0002d8  225cc0ff          SUBCSS   r12,r12,#0xff
0002dc  2a00000b          BCS      |L1.784|
0002e0  ea000001          B        |L1.748|
                  |L1.740|
0002e4  e2844001          ADD      r4,r4,#1

⌨️ 快捷键说明

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