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

📄 iis_dual.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;451        static int mute=0;
;;;452        
;;;453        ClearPending(BIT_EINT7_10);
0005b0  e3a00004          MOV      r0,#4
0005b4  e51f1598          LDR      r1,|L1.36|
0005b8  e5810000          STR      r0,[r1,#0]
0005bc  e1c10000          BIC      r0,r1,r0
0005c0  e5900010          LDR      r0,[r0,#0x10]
0005c4  e5810010          STR      r0,[r1,#0x10]
0005c8  e1a00001          MOV      r0,r1
0005cc  e5900010          LDR      r0,[r0,#0x10]
;;;454    
;;;455        if(mute)    //Mute
0005d0  e59f0068          LDR      r0,|L1.1600|
0005d4  e5900000          LDR      r0,[r0,#0]  ; mute@IsrAudioMute_0
0005d8  e3500000          CMP      r0,#0
0005dc  0a00000a          BEQ      |L1.1548|
;;;456        {
;;;457            _WrL3Addr(0x14 + 0);            //DATA0 (000101xx+00)
0005e0  e3a00014          MOV      r0,#0x14
0005e4  ebfffffe          BL       _WrL3Addr
;;;458            _WrL3Data(0xa4,0);              //10,1,00,1,00 : after, no de-emp, mute, flat 
0005e8  e3a01000          MOV      r1,#0
0005ec  e3a000a4          MOV      r0,#0xa4
0005f0  ebfffffe          BL       _WrL3Data
;;;459            mute = 0;
0005f4  e3a00000          MOV      r0,#0
0005f8  e59f1040          LDR      r1,|L1.1600|
0005fc  e5810000          STR      r0,[r1,#0]  ; mute@IsrAudioMute_0
;;;460            Uart_Printf("\n[Mute]\n");
000600  e28f003c          ADR      r0,|L1.1604|
000604  ebfffffe          BL       _printf
000608  ea000009          B        |L1.1588|
;;;461        }
;;;462        else        //No mute
;;;463        {
;;;464            _WrL3Addr(0x14 + 0);            //DATA0 (000101xx+00)
                  |L1.1548|
00060c  e3a00014          MOV      r0,#0x14
000610  ebfffffe          BL       _WrL3Addr
;;;465            _WrL3Data(0xa0,0);              //10,1,00,0,00 : after, no de-emp, no mute, flat 
000614  e3a01000          MOV      r1,#0
000618  e3a000a0          MOV      r0,#0xa0
00061c  ebfffffe          BL       _WrL3Data
;;;466            mute = 1;
000620  e3a00001          MOV      r0,#1
000624  e59f1014          LDR      r1,|L1.1600|
000628  e5810000          STR      r0,[r1,#0]  ; mute@IsrAudioMute_0
;;;467            Uart_Printf("\n[No Mute]\n");
00062c  e28f001c          ADR      r0,|L1.1616|
000630  ebfffffe          BL       _printf
;;;468        }
;;;469    }
                  |L1.1588|
000634  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000638  e25ef004          SUBS     pc,lr,#4
                  |L1.1596|
00063c  00000000          DCD      ||.bss$2||
                  |L1.1600|
000640  00000004          DCD      ||.bss$2|| + 4
                  |L1.1604|
000644  754d5b0a          DCB      "\n[Mu"
000648  0a5d6574          DCB      "te]\n"
00064c  00000000          DCB      "\0\0\0\0"
                  |L1.1616|
000650  6f4e5b0a          DCB      "\n[No"
000654  74754d20          DCB      " Mut"
000658  000a5d65          DCB      "e]\n\0"
                          ENDP

                  __sub_IsrAudioOut PROC
;;;302    void  __sub_IsrAudioOut(void)  //DMA2 done interrupt subroutine
;;;303    {
00065c  e92d4010          STMFD    sp!,{r4,lr}
;;;304        int timeOut=0;
000660  e3a04000          MOV      r4,#0
;;;305        
;;;306        //NMI doesn't using auto-reload.	
;;;307    	
;;;308    //    ClearPending(BIT_DMA2);
;;;309    
;;;310        if(stopPlay==TRUE)
000664  e51f03bc          LDR      r0,|L1.688|
000668  e5900000          LDR      r0,[r0,#0]  ; stopPlay
00066c  e3500001          CMP      r0,#1
000670  1a00001a          BNE      |L1.1760|
;;;311        {	    
;;;312        #if 1
;;;313        	rDMASKTRIG2|= (1<<2);  //NMI 
000674  e51f02e4          LDR      r0,|L1.920|
000678  e5900020          LDR      r0,[r0,#0x20]
00067c  e3800004          ORR      r0,r0,#4
000680  e51f12f0          LDR      r1,|L1.920|
000684  e5810020          STR      r0,[r1,#0x20]
;;;314        #else 
;;;315        	rDMASKTRIG2= (1<<2);   //StopDMA2  //recommended
;;;316        #endif	
;;;317    
;;;318        	while (rDMASKTRIG2&(1<<1) && (timeOut++ < DMA_OFF_TIMEOUT));
000688  e1a00000          NOP      
                  |L1.1676|
00068c  e51f02fc          LDR      r0,|L1.920|
000690  e5900020          LDR      r0,[r0,#0x20]
000694  e3100002          TST      r0,#2
000698  0a000003          BEQ      |L1.1708|
00069c  e1a00004          MOV      r0,r4
0006a0  e2844001          ADD      r4,r4,#1
0006a4  e3500ffa          CMP      r0,#0x3e8
0006a8  bafffff7          BLT      |L1.1676|
;;;319        	if(timeOut >= DMA_OFF_TIMEOUT)
                  |L1.1708|
0006ac  e3540ffa          CMP      r4,#0x3e8
0006b0  ba000001          BLT      |L1.1724|
;;;320          	    Uart_Printf("ERROR: DMA2 Stop timed out\n");
0006b4  e28f00d0          ADR      r0,|L1.1932|
0006b8  ebfffffe          BL       _printf
;;;321    	rDMASKTRIG2 &= ~(1<<2); //not needed.... remove!!!
                  |L1.1724|
0006bc  e51f032c          LDR      r0,|L1.920|
0006c0  e5900020          LDR      r0,[r0,#0x20]
0006c4  e3c00004          BIC      r0,r0,#4
0006c8  e51f1338          LDR      r1,|L1.920|
0006cc  e5810020          STR      r0,[r1,#0x20]
;;;322    	audioOutActive=FALSE;
0006d0  e3a00000          MOV      r0,#0
0006d4  e51f1368          LDR      r1,|L1.884|
0006d8  e5810000          STR      r0,[r1,#0]  ; audioOutActive
0006dc  ea000029          B        |L1.1928|
;;;323    	//Uart_Printf("<PE>");
;;;324        }  
;;;325        else
;;;326        {
;;;327    	rDISRC2 = (U32)(playBuf[indexPlayBuf++]);
                  |L1.1760|
0006e0  e51f0354          LDR      r0,|L1.916|
0006e4  e5900000          LDR      r0,[r0,#0]  ; indexPlayBuf
0006e8  e2801001          ADD      r1,r0,#1
0006ec  e51f0360          LDR      r0,|L1.916|
0006f0  e5902000          LDR      r2,[r0,#0]  ; indexPlayBuf
0006f4  e5801000          STR      r1,[r0,#0]  ; indexPlayBuf
0006f8  e3a0007d          MOV      r0,#0x7d
0006fc  e0010290          MUL      r1,r0,r2
000700  e51f048c          LDR      r0,|L1.636|
000704  e5900000          LDR      r0,[r0,#0]  ; playBuf
000708  e0800201          ADD      r0,r0,r1,LSL #4
00070c  e51f137c          LDR      r1,|L1.920|
000710  e5810000          STR      r0,[r1,#0]
;;;328        	if(indexPlayBuf==MAX_INDEX_AUDIO_BUF)
000714  e51f0388          LDR      r0,|L1.916|
000718  e5900000          LDR      r0,[r0,#0]  ; indexPlayBuf
00071c  e35000c8          CMP      r0,#0xc8
000720  1a000002          BNE      |L1.1840|
;;;329        	{
;;;330        	    indexPlayBuf=0;
000724  e3a00000          MOV      r0,#0
000728  e51f139c          LDR      r1,|L1.916|
00072c  e5810000          STR      r0,[r1,#0]  ; indexPlayBuf
;;;331         	}
;;;332        	rDMASKTRIG2 |= (1<<1);   //enable DMA2  
                  |L1.1840|
000730  e51f03a0          LDR      r0,|L1.920|
000734  e5900020          LDR      r0,[r0,#0x20]
000738  e3800002          ORR      r0,r0,#2
00073c  e51f13ac          LDR      r1,|L1.920|
000740  e5810020          STR      r0,[r1,#0x20]
;;;333     
;;;334         	if((indexPlayBuf%10)==0)
000744  e51f03b8          LDR      r0,|L1.916|
000748  e5901000          LDR      r1,[r0,#0]  ; indexPlayBuf
00074c  e3a0000a          MOV      r0,#0xa
000750  ebfffffe          BL       __rt_sdiv
000754  e3510000          CMP      r1,#0
000758  1a00000a          BNE      |L1.1928|
;;;335        	{
;;;336        	    if(indexPlayBuf==0)WrUTXH0(';');
00075c  e51f03d0          LDR      r0,|L1.916|
000760  e5900000          LDR      r0,[r0,#0]  ; indexPlayBuf
000764  e3500000          CMP      r0,#0
000768  1a000003          BNE      |L1.1916|
00076c  e3a0003b          MOV      r0,#0x3b
000770  e59f1030          LDR      r1,|L1.1960|
000774  e5c10020          STRB     r0,[r1,#0x20]
000778  ea000002          B        |L1.1928|
;;;337        	    else WrUTXH0(',');
                  |L1.1916|
00077c  e3a0002c          MOV      r0,#0x2c
000780  e59f1020          LDR      r1,|L1.1960|
000784  e5c10020          STRB     r0,[r1,#0x20]
;;;338        	}
;;;339         }
;;;340    }
                  |L1.1928|
000788  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.1932|
00078c  4f525245          DCB      "ERRO"
000790  44203a52          DCB      "R: D"
000794  2032414d          DCB      "MA2 "
000798  706f7453          DCB      "Stop"
00079c  6d697420          DCB      " tim"
0007a0  6f206465          DCB      "ed o"
0007a4  000a7475          DCB      "ut\n\0"
                  |L1.1960|
0007a8  44400000          DCD      0x44400000
                          ENDP

                  __sub_IsrAudioIn PROC
;;;391    void __sub_IsrAudioIn(void) //DMA0 done interrupt
;;;392    {
0007ac  e92d4010          STMFD    sp!,{r4,lr}
;;;393        int timeOut=0;
0007b0  e3a04000          MOV      r4,#0
;;;394        
;;;395    //    ClearPending(BIT_DMA0);                 //Clear pending bit
;;;396    
;;;397        while((rDSTAT0 & 0xFFFFF) == 0);  //wait until the current autoreload is completed
0007b4  e1a00000          NOP      
                  |L1.1976|
0007b8  e51f02a0          LDR      r0,|L1.1312|
0007bc  e5900014          LDR      r0,[r0,#0x14]
0007c0  e1a00600          MOV      r0,r0,LSL #12
0007c4  e1b00620          MOVS     r0,r0,LSR #12
0007c8  0afffffa          BEQ      |L1.1976|
;;;398    
;;;399        if(stopRec==TRUE)
0007cc  e51f0400          LDR      r0,|L1.980|
0007d0  e5900000          LDR      r0,[r0,#0]  ; stopRec
0007d4  e3500001          CMP      r0,#1
0007d8  1a000023          BNE      |L1.2156|
;;;400        {
;;;401        	rIISCON&=~(1<<4);    //RxDmaServiceRequestDis
0007dc  e59f0120          LDR      r0,|L1.2308|
0007e0  e5900000          LDR      r0,[r0,#0]
0007e4  e3c00010          BIC      r0,r0,#0x10
0007e8  e59f1114          LDR      r1,|L1.2308|
0007ec  e5810000          STR      r0,[r1,#0]
;;;402            rIISFCON&=~(1<<12);   //RxFifoDis	
0007f0  e1a00001          MOV      r0,r1
0007f4  e590000c          LDR      r0,[r0,#0xc]
0007f8  e3c00d40          BIC      r0,r0,#0x1000
0007fc  e581000c          STR      r0,[r1,#0xc]
;;;403        #if 1
;;;404        	rDMASKTRIG0|= (1<<2);  //NMI
000800  e2410643          SUB      r0,r1,#0x4300000
000804  e5900020          LDR      r0,[r0,#0x20]
000808  e3800004          ORR      r0,r0,#4
00080c  e2411643          SUB      r1,r1,#0x4300000
000810  e5810020          STR      r0,[r1,#0x20]
;;;405        #else 
;;;406        	rDMASKTRIG0= (1<<2);   //recommended
;;;407        #endif	
;;;408        	while (rDMASKTRIG0&(1<<1) && (timeOut++ < DMA_OFF_TIMEOUT));
000814  e1a00000          NOP      
                  |L1.2072|
000818  e51f0300          LDR      r0,|L1.1312|
00081c  e5900020          LDR      r0,[r0,#0x20]
000820  e3100002          TST      r0,#2
000824  0a000003          BEQ      |L1.2104|
000828  e1a00004          MOV      r0,r4
00082c  e2844001          ADD      r4,r4,#1
000830  e3500ffa          CMP      r0,#0x3e8
000834  bafffff7          BLT      |L1.2072|
;;;409        
;;;410        	if(timeOut >= DMA_OFF_TIMEOUT)
                  |L1.2104|
000838  e3540ffa          CMP      r4,#0x3e8
00083c  ba000001          BLT      |L1.2120|
;;;411          	    Uart_Printf("ERROR: DMA0 Stop timed out\n");
000840  e28f00c0          ADR      r0,|L1.2312|
000844  ebfffffe          BL       _printf
;;;412    
;;;413        	rDMASKTRIG0 &= ~(1<<2); //not needed.... remove!!!
                  |L1.2120|
000848  e51f0330          LDR      r0,|L1.1312|
00084c  e5900020          LDR      r0,[r0,#0x20]
000850  e3c00004          BIC      r0,r0,#4
000854  e51f133c          LDR      r1,|L1.1312|
000858  e5810020          STR      r0,[r1,#0x20]
;;;414    
;;;415        	audioInActive=FALSE;
00085c  e3a00000          MOV      r0,#0
000860  e51f161c          LDR      r1,|L1.588|
000864  e5810000          STR      r0,[r1,#0]  ; audioInActive
000868  ea000024          B        |L1.2304|
;;;416        	//Uart_Printf("[RE]");
;;;417        }
;;;418        else
;;;419        {
;;;420        	rDIDST0 = (U32)(recBuf[indexRecBuf++]);
                  |L1.2156|
00086c  e51f0358          LDR      r0,|L1.1308|
000870  e5900000          LDR      r0,[r0,#0]  ; indexRecBuf
000874  e2801001          ADD      r1,r0,#1
000878  e51f0364          LDR      r0,|L1.1308|

⌨️ 快捷键说明

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