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

📄 iis_dual.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                  IsrAudioMute PROC
;;;439    void __irq IsrAudioMute(void)
;;;440    {
0005a4  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;441        static int mute=0;
;;;442        
;;;443        ClearPending(BIT_EINT0);
0005a8  e3a00001          MOV      r0,#1
0005ac  e3a0144a          MOV      r1,#0x4a000000
0005b0  e5810000          STR      r0,[r1,#0]
0005b4  e3a00001          MOV      r0,#1
0005b8  e3a0144a          MOV      r1,#0x4a000000
0005bc  e5810010          STR      r0,[r1,#0x10]
0005c0  e3a0044a          MOV      r0,#0x4a000000
0005c4  e5900010          LDR      r0,[r0,#0x10]
;;;444    
;;;445        if(mute)    //Mute
0005c8  e59f0068          LDR      r0,|L1.1592|
0005cc  e5900000          LDR      r0,[r0,#0]  ; mute@IsrAudioMute_0
0005d0  e3500000          CMP      r0,#0
0005d4  0a00000a          BEQ      |L1.1540|
;;;446        {
;;;447            _WrL3Addr(0x14 + 0);            //DATA0 (000101xx+00)
0005d8  e3a00014          MOV      r0,#0x14
0005dc  ebfffffe          BL       _WrL3Addr
;;;448            _WrL3Data(0xa4,0);              //10,1,00,1,00 : after, no de-emp, mute, flat 
0005e0  e3a01000          MOV      r1,#0
0005e4  e3a000a4          MOV      r0,#0xa4
0005e8  ebfffffe          BL       _WrL3Data
;;;449            mute = 0;
0005ec  e3a00000          MOV      r0,#0
0005f0  e59f1040          LDR      r1,|L1.1592|
0005f4  e5810000          STR      r0,[r1,#0]  ; mute@IsrAudioMute_0
;;;450            Uart_Printf("\n[Mute]\n");
0005f8  e28f003c          ADR      r0,|L1.1596|
0005fc  ebfffffe          BL       Uart_Printf
000600  ea000009          B        |L1.1580|
;;;451        }
;;;452        else        //No mute
;;;453        {
;;;454            _WrL3Addr(0x14 + 0);            //DATA0 (000101xx+00)
                  |L1.1540|
000604  e3a00014          MOV      r0,#0x14
000608  ebfffffe          BL       _WrL3Addr
;;;455            _WrL3Data(0xa0,0);              //10,1,00,0,00 : after, no de-emp, no mute, flat 
00060c  e3a01000          MOV      r1,#0
000610  e3a000a0          MOV      r0,#0xa0
000614  ebfffffe          BL       _WrL3Data
;;;456            mute = 1;
000618  e3a00001          MOV      r0,#1
00061c  e59f1014          LDR      r1,|L1.1592|
000620  e5810000          STR      r0,[r1,#0]  ; mute@IsrAudioMute_0
;;;457            Uart_Printf("\n[No Mute]\n");
000624  e28f001c          ADR      r0,|L1.1608|
000628  ebfffffe          BL       Uart_Printf
;;;458        }
;;;459    }
                  |L1.1580|
00062c  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000630  e25ef004          SUBS     pc,lr,#4
                  |L1.1588|
000634  00000000          DCD      ||.bss$2||
                  |L1.1592|
000638  00000008          DCD      ||.bss$2|| + 8
                  |L1.1596|
00063c  754d5b0a          DCB      "\n[Mu"
000640  0a5d6574          DCB      "te]\n"
000644  00000000          DCB      "\0\0\0\0"
                  |L1.1608|
000648  6f4e5b0a          DCB      "\n[No"
00064c  74754d20          DCB      " Mut"
000650  000a5d65          DCB      "e]\n\0"
                          ENDP

                  IsrAudioOut PROC
;;;306    void __irq IsrAudioOut(void)  //DMA2 done interrupt
;;;307    {
000654  e92d501f          STMFD    sp!,{r0-r4,r12,lr}
000658  e24dd004          SUB      sp,sp,#4
;;;308        int timeOut=0;
00065c  e3a04000          MOV      r4,#0
;;;309        
;;;310        //NMI doesn't using auto-reload.	
;;;311    	
;;;312        ClearPending(BIT_DMA2);
000660  e3a00a80          MOV      r0,#0x80000
000664  e3a0144a          MOV      r1,#0x4a000000
000668  e5810000          STR      r0,[r1,#0]
00066c  e3a00a80          MOV      r0,#0x80000
000670  e3a0144a          MOV      r1,#0x4a000000
000674  e5810010          STR      r0,[r1,#0x10]
000678  e3a0044a          MOV      r0,#0x4a000000
00067c  e5900010          LDR      r0,[r0,#0x10]
;;;313    
;;;314        if(stopPlay==TRUE)
000680  e51f03dc          LDR      r0,|L1.684|
000684  e5900000          LDR      r0,[r0,#0]  ; stopPlay
000688  e3500001          CMP      r0,#1
00068c  1a00001c          BNE      |L1.1796|
;;;315        {	    
;;;316        #if 1
;;;317        	rDMASKTRIG2|= (1<<2);  //NMI 
000690  e3a0044b          MOV      r0,#0x4b000000
000694  e59000a0          LDR      r0,[r0,#0xa0]
000698  e3800004          ORR      r0,r0,#4
00069c  e3a0144b          MOV      r1,#0x4b000000
0006a0  e58100a0          STR      r0,[r1,#0xa0]
;;;318        #else 
;;;319        	rDMASKTRIG2= (1<<2);   //StopDMA2  //recommended
;;;320        #endif	
;;;321    
;;;322        	while (rDMASKTRIG2&(1<<1) && (timeOut++ < DMA_OFF_TIMEOUT));
0006a4  e1a00000          NOP      
                  |L1.1704|
0006a8  e3a0044b          MOV      r0,#0x4b000000
0006ac  e59000a0          LDR      r0,[r0,#0xa0]
0006b0  e3100002          TST      r0,#2
0006b4  0a000003          BEQ      |L1.1736|
0006b8  e1a00004          MOV      r0,r4
0006bc  e2844001          ADD      r4,r4,#1
0006c0  e3500ffa          CMP      r0,#0x3e8
0006c4  bafffff7          BLT      |L1.1704|
;;;323        	if(timeOut >= DMA_OFF_TIMEOUT)
                  |L1.1736|
0006c8  e3540ffa          CMP      r4,#0x3e8
0006cc  ba000001          BLT      |L1.1752|
;;;324          	    Uart_Printf("ERROR: DMA2 Stop timed out\n");
0006d0  e28f00e0          ADR      r0,|L1.1976|
0006d4  ebfffffe          BL       Uart_Printf
;;;325    	rDMASKTRIG2 &= ~(1<<2); //not needed.... remove!!!
                  |L1.1752|
0006d8  e3a0044b          MOV      r0,#0x4b000000
0006dc  e59000a0          LDR      r0,[r0,#0xa0]
0006e0  e3c00004          BIC      r0,r0,#4
0006e4  e3a0144b          MOV      r1,#0x4b000000
0006e8  e58100a0          STR      r0,[r1,#0xa0]
;;;326    	audioOutActive=FALSE;
0006ec  e3a00000          MOV      r0,#0
0006f0  e51f1388          LDR      r1,|L1.880|
0006f4  e5810000          STR      r0,[r1,#0]  ; audioOutActive
;;;327    	Uart_Printf("<PE>");
0006f8  e28f00d4          ADR      r0,|L1.2004|
0006fc  ebfffffe          BL       Uart_Printf
000700  ea000029          B        |L1.1964|
;;;328        }  
;;;329        else
;;;330        {
;;;331    	rDISRC2 = (U32)(playBuf[indexPlayBuf++]);
                  |L1.1796|
000704  e51f037c          LDR      r0,|L1.912|
000708  e5900000          LDR      r0,[r0,#0]  ; indexPlayBuf
00070c  e2801001          ADD      r1,r0,#1
000710  e51f0388          LDR      r0,|L1.912|
000714  e5902000          LDR      r2,[r0,#0]  ; indexPlayBuf
000718  e5801000          STR      r1,[r0,#0]  ; indexPlayBuf
00071c  e3a0007d          MOV      r0,#0x7d
000720  e0010290          MUL      r1,r0,r2
000724  e51f04b4          LDR      r0,|L1.632|
000728  e5900000          LDR      r0,[r0,#0]  ; playBuf
00072c  e0800201          ADD      r0,r0,r1,LSL #4
000730  e3a0144b          MOV      r1,#0x4b000000
000734  e5810080          STR      r0,[r1,#0x80]
;;;332        	if(indexPlayBuf==MAX_INDEX_AUDIO_BUF)
000738  e51f03b0          LDR      r0,|L1.912|
00073c  e5900000          LDR      r0,[r0,#0]  ; indexPlayBuf
000740  e35000c8          CMP      r0,#0xc8
000744  1a000002          BNE      |L1.1876|
;;;333        	{
;;;334        	    indexPlayBuf=0;
000748  e3a00000          MOV      r0,#0
00074c  e51f13c4          LDR      r1,|L1.912|
000750  e5810000          STR      r0,[r1,#0]  ; indexPlayBuf
;;;335         	}
;;;336        	rDMASKTRIG2 |= (1<<1);   //enable DMA2  
                  |L1.1876|
000754  e3a0044b          MOV      r0,#0x4b000000
000758  e59000a0          LDR      r0,[r0,#0xa0]
00075c  e3800002          ORR      r0,r0,#2
000760  e3a0144b          MOV      r1,#0x4b000000
000764  e58100a0          STR      r0,[r1,#0xa0]
;;;337     
;;;338         	if((indexPlayBuf%10)==0)
000768  e51f03e0          LDR      r0,|L1.912|
00076c  e5901000          LDR      r1,[r0,#0]  ; indexPlayBuf
000770  e3a0000a          MOV      r0,#0xa
000774  ebfffffe          BL       __rt_sdiv
000778  e3510000          CMP      r1,#0
00077c  1a00000a          BNE      |L1.1964|
;;;339        	{
;;;340        	    if(indexPlayBuf==0)WrUTXH0(';');
000780  e51f03f8          LDR      r0,|L1.912|
000784  e5900000          LDR      r0,[r0,#0]  ; indexPlayBuf
000788  e3500000          CMP      r0,#0
00078c  1a000003          BNE      |L1.1952|
000790  e3a0003b          MOV      r0,#0x3b
000794  e3a01450          MOV      r1,#0x50000000
000798  e5c10020          STRB     r0,[r1,#0x20]
00079c  ea000002          B        |L1.1964|
;;;341        	    else WrUTXH0(',');
                  |L1.1952|
0007a0  e3a0002c          MOV      r0,#0x2c
0007a4  e3a01450          MOV      r1,#0x50000000
0007a8  e5c10020          STRB     r0,[r1,#0x20]
;;;342        	}
;;;343         }
;;;344    }
                  |L1.1964|
0007ac  e28dd004          ADD      sp,sp,#4
0007b0  e8bd501f          LDMFD    sp!,{r0-r4,r12,lr}
0007b4  e25ef004          SUBS     pc,lr,#4
                  |L1.1976|
0007b8  4f525245          DCB      "ERRO"
0007bc  44203a52          DCB      "R: D"
0007c0  2032414d          DCB      "MA2 "
0007c4  706f7453          DCB      "Stop"
0007c8  6d697420          DCB      " tim"
0007cc  6f206465          DCB      "ed o"
0007d0  000a7475          DCB      "ut\n\0"
                  |L1.2004|
0007d4  3e45503c          DCB      "<PE>"
0007d8  00000000          DCB      "\0\0\0\0"
                          ENDP

                  IsrAudioIn PROC
;;;395    void __irq IsrAudioIn(void) //DMA1 done interrupt
;;;396    {
0007dc  e92d501f          STMFD    sp!,{r0-r4,r12,lr}
0007e0  e24dd004          SUB      sp,sp,#4
;;;397        int timeOut=0;
0007e4  e3a04000          MOV      r4,#0
;;;398        
;;;399        ClearPending(BIT_DMA1);                 //Clear pending bit
0007e8  e3a00a40          MOV      r0,#0x40000
0007ec  e3a0144a          MOV      r1,#0x4a000000
0007f0  e5810000          STR      r0,[r1,#0]
0007f4  e3a00a40          MOV      r0,#0x40000
0007f8  e3a0144a          MOV      r1,#0x4a000000
0007fc  e5810010          STR      r0,[r1,#0x10]
000800  e3a0044a          MOV      r0,#0x4a000000
000804  e5900010          LDR      r0,[r0,#0x10]
;;;400    
;;;401        while((rDSTAT1 & 0xFFFFF) == 0);  //wait until the current autoreload is completed
000808  e1a00000          NOP      
                  |L1.2060|
00080c  e3a0044b          MOV      r0,#0x4b000000
000810  e5900054          LDR      r0,[r0,#0x54]
000814  e1a00600          MOV      r0,r0,LSL #12
000818  e1b00620          MOVS     r0,r0,LSR #12
00081c  0afffffa          BEQ      |L1.2060|
;;;402    
;;;403        if(stopRec==TRUE)
000820  e51f045c          LDR      r0,|L1.972|
000824  e5900000          LDR      r0,[r0,#0]  ; stopRec
000828  e3500001          CMP      r0,#1
00082c  1a000026          BNE      |L1.2252|
;;;404        {
;;;405        	rIISCON&=~(1<<4);    //RxDmaServiceRequestDis
000830  e3a00455          MOV      r0,#0x55000000
000834  e5900000          LDR      r0,[r0,#0]
000838  e3c00010          BIC      r0,r0,#0x10
00083c  e3a01455          MOV      r1,#0x55000000
000840  e5810000          STR      r0,[r1,#0]
;;;406            rIISFCON&=~(1<<12);   //RxFifoDis	
000844  e3a00455          MOV      r0,#0x55000000
000848  e590000c          LDR      r0,[r0,#0xc]
00084c  e3c00d40          BIC      r0,r0,#0x1000
000850  e3a01455          MOV      r1,#0x55000000
000854  e581000c          STR      r0,[r1,#0xc]
;;;407        #if 1
;;;408        	rDMASKTRIG1|= (1<<2);  //NMI
000858  e3a0044b          MOV      r0,#0x4b000000
00085c  e5900060          LDR      r0,[r0,#0x60]
000860  e3800004          ORR      r0,r0,#4
000864  e3a0144b          MOV      r1,#0x4b000000
000868  e5810060          STR      r0,[r1,#0x60]
;;;409        #else 
;;;410        	rDMASKTRIG1= (1<<2);   //recommended
;;;411        #endif	
;;;412        	while (rDMASKTRIG1&(1<<1) && (timeOut++ < DMA_OFF_TIMEOUT));
00086c  e1a00000          NOP      
                  |L1.2160|
000870  e3a0044b          MOV      r0,#0x4b000000
000874  e5900060          LDR      r0,[r0,#0x60]
000878  e3100002          TST      r0,#2
00087c  0a000003          BEQ      |L1.2192|
000880  e1a00004          MOV      r0,r4
000884  e2844001          ADD      r4,r4,#1
000888  e3500ffa          CMP      r0,#0x3e8
00088c  bafffff7          BLT      |L1.2160|
;;;413        
;;;414        	if(timeOut >= DMA_OFF_TIMEOUT)

⌨️ 快捷键说明

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