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

📄 iis.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;316          	{
;;;317          		rIISCON = (1<<5) + (1<<2) + (1<<1);	   
0005e4  e3a00026          MOV      r0,#0x26
0005e8  e3a01455          MOV      r1,#0x55000000
0005ec  e5810000          STR      r0,[r1,#0]
;;;318          		rIISMOD = (0<<9)+(0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
0005f0  e3a0008d          MOV      r0,#0x8d
0005f4  e3a01455          MOV      r1,#0x55000000
0005f8  e5810004          STR      r0,[r1,#4]
;;;319        		rIISFCON = (1<<15) + (1<<13);	  
0005fc  e3a00ca0          MOV      r0,#0xa000
000600  e3a01455          MOV      r1,#0x55000000
000604  e581000c          STR      r0,[r1,#0xc]
;;;320        	
;;;321    		Uart_Printf("\nIISLRCK = %d Hz", (int) IIS_Codec_CLK/384);
000608  e59f0170          LDR      r0,|L1.1920|
00060c  e5900000          LDR      r0,[r0,#0]  ; IIS_Codec_CLK
000610  ebfffffe          BL       _ffix
000614  e1a07000          MOV      r7,r0
000618  e1a01000          MOV      r1,r0
00061c  e3a00f60          MOV      r0,#0x180
000620  ebfffffe          BL       __rt_sdiv
000624  e1a06000          MOV      r6,r0
000628  e1a01000          MOV      r1,r0
00062c  e28f0f54          ADR      r0,|L1.1924|
000630  ebfffffe          BL       Uart_Printf
000634  ea000013          B        |L1.1672|
;;;322          	}
;;;323          	else	   //IIS Master Clock Source = MPLLin
;;;324          	{
;;;325    		rIISCON = (1<<5) + (1<<2) + (0<<1);	   
                  |L1.1592|
000638  e3a00024          MOV      r0,#0x24
00063c  e3a01455          MOV      r1,#0x55000000
000640  e5810000          STR      r0,[r1,#0]
;;;326    		rIISMOD = (1<<9)+(0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
000644  e59f014c          LDR      r0,|L1.1944|
000648  e3a01455          MOV      r1,#0x55000000
00064c  e5810004          STR      r0,[r1,#4]
;;;327    		rIISFCON = (1<<15) + (1<<13);
000650  e3a00ca0          MOV      r0,#0xa000
000654  e3a01455          MOV      r1,#0x55000000
000658  e581000c          STR      r0,[r1,#0xc]
;;;328    	
;;;329    		Uart_Printf("\nIISLRCK = %d Hz", (int) IIS_Codec_CLK/384);
00065c  e59f011c          LDR      r0,|L1.1920|
000660  e5900000          LDR      r0,[r0,#0]  ; IIS_Codec_CLK
000664  ebfffffe          BL       _ffix
000668  e1a07000          MOV      r7,r0
00066c  e1a01000          MOV      r1,r0
000670  e3a00f60          MOV      r0,#0x180
000674  ebfffffe          BL       __rt_sdiv
000678  e1a06000          MOV      r6,r0
00067c  e1a01000          MOV      r1,r0
000680  e28f00fc          ADR      r0,|L1.1924|
000684  ebfffffe          BL       Uart_Printf
;;;330          	}
;;;331    
;;;332    	rINTMSK    = ~(BIT_EINT0 | BIT_DMA2);
                  |L1.1672|
000688  e59f010c          LDR      r0,|L1.1948|
00068c  e3a0144a          MOV      r1,#0x4a000000
000690  e5810008          STR      r0,[r1,#8]
;;;333    	
;;;334    	//DMA2 Register Setting 
;;;335    	rDISRC2  = (int)(start_addr); 
000694  e3a0044b          MOV      r0,#0x4b000000
000698  e5804080          STR      r4,[r0,#0x80]
;;;336           rDISRCC2 = (0<<1) + (0<<0); 		  
00069c  e3a00000          MOV      r0,#0
0006a0  e3a0144b          MOV      r1,#0x4b000000
0006a4  e5810084          STR      r0,[r1,#0x84]
;;;337           rDIDST2  = ((U32)IISFIFO);			
0006a8  e59f00f0          LDR      r0,|L1.1952|
0006ac  e3a0144b          MOV      r1,#0x4b000000
0006b0  e5810088          STR      r0,[r1,#0x88]
;;;338    	rDIDSTC2 = (0<<2) + (1<<1) + (1<<0);				
0006b4  e3a00003          MOV      r0,#3
0006b8  e3a0144b          MOV      r1,#0x4b000000
0006bc  e581008c          STR      r0,[r1,#0x8c]
;;;339    	rDCON2   = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(0<<22)+(1<<20)+(play_size/2);
0006c0  e59f00dc          LDR      r0,|L1.1956|
0006c4  e08000a5          ADD      r0,r0,r5,LSR #1
0006c8  e3a0144b          MOV      r1,#0x4b000000
0006cc  e5810090          STR      r0,[r1,#0x90]
;;;340           rDMASKTRIG2 = (0<<2) + (1<<1) + (0<<0);	    //No-stop, DMA2 channel On, and No-sw trigger 
0006d0  e3a00002          MOV      r0,#2
0006d4  e3a0144b          MOV      r1,#0x4b000000
0006d8  e58100a0          STR      r0,[r1,#0xa0]
;;;341        
;;;342    	Uart_Printf("\nIf you want to mute or no mute, Push the 'EIN0' button repeatedly.\n");
0006dc  e59f00c4          LDR      r0,|L1.1960|
0006e0  ebfffffe          BL       Uart_Printf
;;;343        	Uart_Printf("Press any key to exit!\n");
0006e4  e28f00c0          ADR      r0,|L1.1964|
0006e8  ebfffffe          BL       Uart_Printf
;;;344    	Uart_Printf("\nPlay...\n");
0006ec  e28f00d0          ADR      r0,|L1.1988|
0006f0  ebfffffe          BL       Uart_Printf
;;;345      
;;;346    	//IIS Tx Start
;;;347        	rIISCON |= 0x1;		 //IIS Interface start
0006f4  e3a00455          MOV      r0,#0x55000000
0006f8  e5900000          LDR      r0,[r0,#0]
0006fc  e3800001          ORR      r0,r0,#1
000700  e3a01455          MOV      r1,#0x55000000
000704  e5810000          STR      r0,[r1,#0]
;;;348    		
;;;349        	while(!Uart_GetKey());
000708  e1a00000          NOP      
                  |L1.1804|
00070c  ebfffffe          BL       Uart_GetKey
000710  e3500000          CMP      r0,#0
000714  0afffffc          BEQ      |L1.1804|
;;;350        	
;;;351        	//IIS Tx Stop
;;;352        	Delay(10);			 //For end of H/W Tx
000718  e3a0000a          MOV      r0,#0xa
00071c  ebfffffe          BL       Delay
;;;353        	rIISCON	&= ~(1<<0);	    //IIS Interface stop
000720  e3a00455          MOV      r0,#0x55000000
000724  e5900000          LDR      r0,[r0,#0]
000728  e3c00001          BIC      r0,r0,#1
00072c  e3a01455          MOV      r1,#0x55000000
000730  e5810000          STR      r0,[r1,#0]
;;;354    
;;;355        	rDMASKTRIG2  = (1<<2);	 //DMA2 stop
000734  e3a00004          MOV      r0,#4
000738  e3a0144b          MOV      r1,#0x4b000000
00073c  e58100a0          STR      r0,[r1,#0xa0]
;;;356    	rIISFCON = 0x0;	    //For FIFO flush
000740  e3a00000          MOV      r0,#0
000744  e3a01455          MOV      r1,#0x55000000
000748  e581000c          STR      r0,[r1,#0xc]
;;;357    		
;;;358    	rINTMSK |= (BIT_EINT0 | BIT_DMA2);
00074c  e3a0044a          MOV      r0,#0x4a000000
000750  e5900008          LDR      r0,[r0,#8]
000754  e3800a80          ORR      r0,r0,#0x80000
000758  e3800001          ORR      r0,r0,#1
00075c  e3a0144a          MOV      r1,#0x4a000000
000760  e5810008          STR      r0,[r1,#8]
;;;359    	 	
;;;360    	Uart_Printf("\nEnd of Play!\n");
000764  e28f0064          ADR      r0,|L1.2000|
000768  ebfffffe          BL       Uart_Printf
;;;361    }
00076c  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.1904|
000770  00000000          DCD      DMA2_Done
                  |L1.1908|
000774  31fff000          DCD      0x31fff000
                  |L1.1912|
000778  00000000          DCD      Muting
                  |L1.1916|
00077c  00000001          DCD      ||.bss$2|| + 1
                  |L1.1920|
000780  00000024          DCD      ||.bss$2|| + 36
                  |L1.1924|
000784  5349490a          DCB      "\nIIS"
000788  4b43524c          DCB      "LRCK"
00078c  25203d20          DCB      " = %"
000790  7a482064          DCB      "d Hz"
000794  00000000          DCB      "\0\0\0\0"
                  |L1.1944|
000798  0000028d          DCD      0x0000028d
                  |L1.1948|
00079c  fff7fffe          DCD      0xfff7fffe
                  |L1.1952|
0007a0  55000010          DCD      0x55000010
                  |L1.1956|
0007a4  a0900000          DCD      0xa0900000
                  |L1.1960|
0007a8  00000060          DCD      ||.constdata$1|| + 96
                  |L1.1964|
0007ac  73657250          DCB      "Pres"
0007b0  6e612073          DCB      "s an"
0007b4  656b2079          DCB      "y ke"
0007b8  6f742079          DCB      "y to"
0007bc  69786520          DCB      " exi"
0007c0  000a2174          DCB      "t!\n\0"
                  |L1.1988|
0007c4  616c500a          DCB      "\nPla"
0007c8  2e2e2e79          DCB      "y..."
0007cc  0000000a          DCB      "\n\0\0\0"
                  |L1.2000|
0007d0  646e450a          DCB      "\nEnd"
0007d4  20666f20          DCB      " of "
0007d8  79616c50          DCB      "Play"
0007dc  00000a21          DCB      "!\n\0\0"
                          ENDP

                  Init1341 PROC
;;;422    void Init1341(int mode)
;;;423    {
0007e0  e92d4010          STMFD    sp!,{r4,lr}
0007e4  e1a04000          MOV      r4,r0
;;;424     	//Port Initialize
;;;425    	//----------------------------------------------------------
;;;426    	//   PORT B GROUP
;;;427    	//Ports  :   GPB4    GPB3   GPB2  
;;;428    	//Signal :  L3CLOCK L3DATA   L3MODE
;;;429    	//Setting:  OUTPUT   OUTPUT  OUTPUT 
;;;430    	//	          [9:8]       [7:6]      [5:4]
;;;431    	//Binary :    01,          01,        01 
;;;432    	//----------------------------------------------------------    
;;;433           rGPBDAT = rGPBDAT & ~(L3M|L3C|L3D) |(L3M|L3C); //Start condition : L3M=H, L3C=H
0007e8  e3a00456          MOV      r0,#0x56000000
0007ec  e5900014          LDR      r0,[r0,#0x14]
0007f0  e3c0001c          BIC      r0,r0,#0x1c
0007f4  e3800014          ORR      r0,r0,#0x14
0007f8  e3a01456          MOV      r1,#0x56000000
0007fc  e5810014          STR      r0,[r1,#0x14]
;;;434           rGPBUP  = rGPBUP  & ~(0x7<<2) |(0x7<<2);	 //The pull up function is disabled GPB[4:2] 1 1100    
000800  e3a00456          MOV      r0,#0x56000000
000804  e5900018          LDR      r0,[r0,#0x18]
000808  e380001c          ORR      r0,r0,#0x1c
00080c  e3a01456          MOV      r1,#0x56000000
000810  e5810018          STR      r0,[r1,#0x18]
;;;435        	rGPBCON = rGPBCON & ~(0x3f<<4) |(0x15<<4);     //GPB[4:2]=Output(L3CLOCK):Output(L3DATA):Output(L3MODE)
000814  e3a00456          MOV      r0,#0x56000000
000818  e5900010          LDR      r0,[r0,#0x10]
00081c  e3c00ffc          BIC      r0,r0,#0x3f0
000820  e3800f54          ORR      r0,r0,#0x150
000824  e3a01456          MOV      r1,#0x56000000
000828  e5810010          STR      r0,[r1,#0x10]
;;;436    
;;;437    	//L3 Interface
;;;438        	_WrL3Addr(0x14 + 2);     //STATUS (000101xx+10)
00082c  e3a00016          MOV      r0,#0x16
000830  ebfffffe          BL       _WrL3Addr
;;;439     	_WrL3Data(0x50,0);	 //0,1,01, 000,0 : Status 0,Reset, 384fs,IIS-bus,no DC-filtering
000834  e3a01000          MOV      r1,#0
000838  e3a00050          MOV      r0,#0x50
00083c  ebfffffe          BL       _WrL3Data
;;;440    	
;;;441      	_WrL3Addr(0x14 + 2);     //STATUS (000101xx+10)
000840  e3a00016          MOV      r0,#0x16
000844  ebfffffe          BL       _WrL3Addr
;;;442        	_WrL3Data(0x81,0);	 //bit[7:0] => 1,0,0,0, 0,0,01 
000848  e3a01000          MOV      r1,#0
00084c  e3a00081          MOV      r0,#0x81
000850  ebfffffe          BL       _WrL3Data
;;;443    
;;;444    	//Record Sound via MIC In
;;;445        	if(mode == 1)
000854  e3540001          CMP      r4,#1
000858  1a00000c          BNE      |L1.2192|
;;;446        	{
;;;447    	  	_WrL3Addr(0x14 + 2);    //STATUS (000101xx+10)
00085c  e3a00016          MOV      r0,#0x16
000860  ebfffffe          BL       _WrL3Addr
;;;448    		_WrL3Data(0xa2,0);	//bit[7:0] => 1,0,1,0,0,0,10
000864  e3a01000          MOV      r1,#0
000868  e3a000a2          MOV      r0,#0xa2
00086c  ebfffffe          BL       _WrL3Data
;;;449    		
;;;450    		_WrL3Addr(0x14 + 0);    //DATA0 (000101xx+00)
000870  e3a00014          MOV      r0,#0x14
000874  ebfffffe          BL       _WrL3Addr
;;;451           	_WrL3Data(0xc2, 0);	//1100 0,010  : Extended addr(3bits), 010 
000878  e3a01000          MOV      r1,#0
00087c  e3a000c2          MOV      r0,#0xc2
000880  ebfffffe          BL       _WrL3Data
;;;452                  _WrL3Data(0xf2, 0);	//111,100,10 : DATA0, MIC Amplifier Gain 21dB, input channel 2 select (input channel 1 off)              
000884  e3a01000          MOV      r1,#0
000888  e3a000f2          MOV      r0,#0xf2
00088c  ebfffffe          BL       _WrL3Data
;;;453         	}
;;;454        	
;;;455    	//Record Sound via Line In
;;;456        	if(mode == 2)
                  |L1.2192|
000890  e3540002          CMP      r4,#2
000894  1a00000c          BNE      |L1.2252|
;;;457        	{
;;;458    	  	_WrL3Addr(0x14 + 2);    //STATUS (000101xx+10)
000898  e3a00016          MOV      r0,#0x16
00089c  ebfffffe          BL       _WrL3Addr
;;;459    		_WrL3Data(0xa2,0);	//bit[7:0] => 1,0,1,0, 0,0,10 
0008a0  e3a01000          MOV      r1,#0
0008a4  e3a000a2          MOV      r0,#0xa2
0008a8  ebfffffe          BL       _WrL3Data
;;;460    		
;;;461    		_WrL3Addr(0x14 + 0);    //DATA0 (000101xx+00)
0008ac  e3a00014          MOV      r0,#0x14
0008b0  ebfffffe          BL       _WrL3Addr
;;;462           	_WrL3Data(0xc2, 0);	//1100 0,010  : Extended addr(3bits), 010 
0008b4  e3a01000          MOV      r1,#0
0008b8  e3a000c2          MOV      r0,#0xc2
0008bc  ebfffffe          BL       _WrL3Data
;;;463          		_WrL3Data(0xf1, 0);	//111,100,01 : DATA0, MIC Amplifier Gain 21dB, input channel 1 select (input channel 2 off) 		      
0008c0  e3a01000          MOV      r1,#0
0008c4  e3a000f1          MOV      r0,#0xf1
0008c8  ebfffffe          BL       _WrL3Data
;;;464         	}	    	
;;;465    }
                  |L1.2252|
0008cc  e8bd8010          LDMFD    sp!,{r4,pc}
                          ENDP

⌨️ 快捷键说明

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