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

📄 iis.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0002f4  e3a02000          MOV      r2,#0
                  |L1.760|
0002f8  e3520004          CMP      r2,#4
0002fc  aa000001          BGE      |L1.776|
000300  e2822001          ADD      r2,r2,#1
000304  eafffffb          B        |L1.760|
;;;537    	  	}
;;;538    		data >>= 1;		//For check next bit
                  |L1.776|
000308  e1a000a0          MOV      r0,r0,LSR #1
;;;539        	}
00030c  eaffffc2          B        |L1.540|
;;;540    
;;;541        	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);    //L3M=H,L3C=H
                  |L1.784|
000310  e3a0c456          MOV      r12,#0x56000000
000314  e59cc014          LDR      r12,[r12,#0x14]
000318  e3ccc01c          BIC      r12,r12,#0x1c
00031c  e38cc014          ORR      r12,r12,#0x14
000320  e3a0e456          MOV      lr,#0x56000000
000324  e58ec014          STR      r12,[lr,#0x14]
;;;542    }
000328  e49df004          LDR      pc,[sp],#4
                          ENDP

                  _WrL3Addr PROC
;;;468    void _WrL3Addr(U8 data)
;;;469    {	 
00032c  e3a03456          MOV      r3,#0x56000000
;;;470     	S32 i,j;
;;;471    
;;;472        	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | L3C;	//L3D=L, L3M=L(in address mode), L3C=H
000330  e5933014          LDR      r3,[r3,#0x14]
000334  e3c3301c          BIC      r3,r3,#0x1c
000338  e3833010          ORR      r3,r3,#0x10
00033c  e3a0c456          MOV      r12,#0x56000000
000340  e58c3014          STR      r3,[r12,#0x14]
;;;473    
;;;474        	for(j=0;j<4;j++);	 //tsu(L3) > 190ns
000344  e3a01000          MOV      r1,#0
                  |L1.840|
000348  e3510004          CMP      r1,#4
00034c  aa000001          BGE      |L1.856|
000350  e2811001          ADD      r1,r1,#1
000354  eafffffb          B        |L1.840|
;;;475    
;;;476    	//GPB[4:2]=L3C:L3D:L3M
;;;477        	for(i=0;i<8;i++)	//LSB first
                  |L1.856|
000358  e3a02000          MOV      r2,#0
                  |L1.860|
00035c  e3520008          CMP      r2,#8
000360  aa000042          BGE      |L1.1136|
000364  ea000001          B        |L1.880|
                  |L1.872|
000368  e2822001          ADD      r2,r2,#1
00036c  eafffffa          B        |L1.860|
;;;478        	{
;;;479    	  	if(data & 0x1)	//If data's LSB is 'H'
                  |L1.880|
000370  e3100001          TST      r0,#1
000374  0a00001d          BEQ      |L1.1008|
;;;480    	  	{
;;;481    			rGPBDAT &= ~L3C;	 //L3C=L
000378  e3a03456          MOV      r3,#0x56000000
00037c  e5933014          LDR      r3,[r3,#0x14]
000380  e3c33010          BIC      r3,r3,#0x10
000384  e3a0c456          MOV      r12,#0x56000000
000388  e58c3014          STR      r3,[r12,#0x14]
;;;482    			rGPBDAT |= L3D;		 //L3D=H		 
00038c  e3a03456          MOV      r3,#0x56000000
000390  e5933014          LDR      r3,[r3,#0x14]
000394  e3833008          ORR      r3,r3,#8
000398  e3a0c456          MOV      r12,#0x56000000
00039c  e58c3014          STR      r3,[r12,#0x14]
;;;483    			for(j=0;j<4;j++);	        //tcy(L3) > 500ns
0003a0  e3a01000          MOV      r1,#0
                  |L1.932|
0003a4  e3510004          CMP      r1,#4
0003a8  aa000001          BGE      |L1.948|
0003ac  e2811001          ADD      r1,r1,#1
0003b0  eafffffb          B        |L1.932|
;;;484    			rGPBDAT |= L3C;		 //L3C=H
                  |L1.948|
0003b4  e3a03456          MOV      r3,#0x56000000
0003b8  e5933014          LDR      r3,[r3,#0x14]
0003bc  e3833010          ORR      r3,r3,#0x10
0003c0  e3a0c456          MOV      r12,#0x56000000
0003c4  e58c3014          STR      r3,[r12,#0x14]
;;;485    			rGPBDAT |= L3D;		 //L3D=H
0003c8  e3a03456          MOV      r3,#0x56000000
0003cc  e5933014          LDR      r3,[r3,#0x14]
0003d0  e3833008          ORR      r3,r3,#8
0003d4  e3a0c456          MOV      r12,#0x56000000
0003d8  e58c3014          STR      r3,[r12,#0x14]
;;;486    			for(j=0;j<4;j++);	        //tcy(L3) > 500ns
0003dc  e3a01000          MOV      r1,#0
                  |L1.992|
0003e0  e3510004          CMP      r1,#4
0003e4  aa00001f          BGE      |L1.1128|
0003e8  e2811001          ADD      r1,r1,#1
0003ec  eafffffb          B        |L1.992|
;;;487    	  	}
;;;488    	  	else		//If data's LSB is 'L'
;;;489    	  	{
;;;490    			rGPBDAT &= ~L3C;	//L3C=L
                  |L1.1008|
0003f0  e3a03456          MOV      r3,#0x56000000
0003f4  e5933014          LDR      r3,[r3,#0x14]
0003f8  e3c33010          BIC      r3,r3,#0x10
0003fc  e3a0c456          MOV      r12,#0x56000000
000400  e58c3014          STR      r3,[r12,#0x14]
;;;491    			rGPBDAT &= ~L3D;	//L3D=L
000404  e3a03456          MOV      r3,#0x56000000
000408  e5933014          LDR      r3,[r3,#0x14]
00040c  e3c33008          BIC      r3,r3,#8
000410  e3a0c456          MOV      r12,#0x56000000
000414  e58c3014          STR      r3,[r12,#0x14]
;;;492    			for(j=0;j<4;j++);	       //tcy(L3) > 500ns
000418  e3a01000          MOV      r1,#0
                  |L1.1052|
00041c  e3510004          CMP      r1,#4
000420  aa000001          BGE      |L1.1068|
000424  e2811001          ADD      r1,r1,#1
000428  eafffffb          B        |L1.1052|
;;;493    			rGPBDAT |= L3C;	       //L3C=H
                  |L1.1068|
00042c  e3a03456          MOV      r3,#0x56000000
000430  e5933014          LDR      r3,[r3,#0x14]
000434  e3833010          ORR      r3,r3,#0x10
000438  e3a0c456          MOV      r12,#0x56000000
00043c  e58c3014          STR      r3,[r12,#0x14]
;;;494    			rGPBDAT &= ~L3D;	//L3D=L
000440  e3a03456          MOV      r3,#0x56000000
000444  e5933014          LDR      r3,[r3,#0x14]
000448  e3c33008          BIC      r3,r3,#8
00044c  e3a0c456          MOV      r12,#0x56000000
000450  e58c3014          STR      r3,[r12,#0x14]
;;;495    			for(j=0;j<4;j++);	       //tcy(L3) > 500ns		
000454  e3a01000          MOV      r1,#0
                  |L1.1112|
000458  e3510004          CMP      r1,#4
00045c  aa000001          BGE      |L1.1128|
000460  e2811001          ADD      r1,r1,#1
000464  eafffffb          B        |L1.1112|
;;;496    	  	}
;;;497    	  	data >>= 1;
                  |L1.1128|
000468  e1a000a0          MOV      r0,r0,LSR #1
;;;498        	}
00046c  eaffffbd          B        |L1.872|
;;;499    
;;;500        	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);	 //L3M=H,L3C=H   
                  |L1.1136|
000470  e3a03456          MOV      r3,#0x56000000
000474  e5933014          LDR      r3,[r3,#0x14]
000478  e3c3301c          BIC      r3,r3,#0x1c
00047c  e3833014          ORR      r3,r3,#0x14
000480  e3a0c456          MOV      r12,#0x56000000
000484  e58c3014          STR      r3,[r12,#0x14]
;;;501    }
000488  e1a0f00e          MOV      pc,lr
                          ENDP

                  Muting PROC
;;;571    void __irq Muting(void)
;;;572    {
00048c  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;573        ClearPending(BIT_EINT0);		//Clear pending bit
000490  e3a00001          MOV      r0,#1
000494  e3a0144a          MOV      r1,#0x4a000000
000498  e5810000          STR      r0,[r1,#0]
00049c  e3a00001          MOV      r0,#1
0004a0  e3a0144a          MOV      r1,#0x4a000000
0004a4  e5810010          STR      r0,[r1,#0x10]
0004a8  e3a0044a          MOV      r0,#0x4a000000
0004ac  e5900010          LDR      r0,[r0,#0x10]
;;;574    
;;;575        if(mute)    //Mute
0004b0  e59f0074          LDR      r0,|L1.1324|
0004b4  e5d00000          LDRB     r0,[r0,#0]  ; mute
0004b8  e3500000          CMP      r0,#0
0004bc  0a00000a          BEQ      |L1.1260|
;;;576        {
;;;577    	  _WrL3Addr(0x14 + 0);		//DATA0 (000101xx+00)
0004c0  e3a00014          MOV      r0,#0x14
0004c4  ebfffffe          BL       _WrL3Addr
;;;578    	  _WrL3Data(0xa4,0);		  //10,1,00,1,00 : after, no de-emp, mute, flat 
0004c8  e3a01000          MOV      r1,#0
0004cc  e3a000a4          MOV      r0,#0xa4
0004d0  ebfffffe          BL       _WrL3Data
;;;579    	  mute = 0;
0004d4  e3a00000          MOV      r0,#0
0004d8  e59f104c          LDR      r1,|L1.1324|
0004dc  e5c10000          STRB     r0,[r1,#0]  ; mute
;;;580    	  Uart_Printf("\nMute on...\n");
0004e0  e28f0048          ADR      r0,|L1.1328|
0004e4  ebfffffe          BL       Uart_Printf
0004e8  ea000009          B        |L1.1300|
;;;581        }
;;;582        else	  //No mute
;;;583        {
;;;584    	  _WrL3Addr(0x14 + 0);		//DATA0 (000101xx+00)
                  |L1.1260|
0004ec  e3a00014          MOV      r0,#0x14
0004f0  ebfffffe          BL       _WrL3Addr
;;;585    	  _WrL3Data(0xa0,0);		  //10,1,00,0,00 : after, no de-emp, no mute, flat 
0004f4  e3a01000          MOV      r1,#0
0004f8  e3a000a0          MOV      r0,#0xa0
0004fc  ebfffffe          BL       _WrL3Data
;;;586    	  mute = 1;
000500  e3a00001          MOV      r0,#1
000504  e59f1020          LDR      r1,|L1.1324|
000508  e5c10000          STRB     r0,[r1,#0]  ; mute
;;;587    	  Uart_Printf("\nMute off...\n");
00050c  e28f002c          ADR      r0,|L1.1344|
000510  ebfffffe          BL       Uart_Printf
;;;588        }
;;;589    }
                  |L1.1300|
000514  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000518  e25ef004          SUBS     pc,lr,#4
                  |L1.1308|
00051c  00000014          DCD      ||.bss$2|| + 20
                  |L1.1312|
000520  00000018          DCD      ||.bss$2|| + 24
                  |L1.1316|
000524  0000001c          DCD      ||.bss$2|| + 28
                  |L1.1320|
000528  00000020          DCD      ||.bss$2|| + 32
                  |L1.1324|
00052c  00000000          DCD      mute
                  |L1.1328|
000530  74754d0a          DCB      "\nMut"
000534  6e6f2065          DCB      "e on"
000538  0a2e2e2e          DCB      "...\n"
00053c  00000000          DCB      "\0\0\0\0"
                  |L1.1344|
000540  74754d0a          DCB      "\nMut"
000544  666f2065          DCB      "e of"
000548  2e2e2e66          DCB      "f..."
00054c  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  DMA2_Done PROC
;;;552    void __irq DMA2_Done(void)
;;;553    {
000550  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;554    	rIISCON	&= ~(1<<0);
000554  e3a00455          MOV      r0,#0x55000000
000558  e5900000          LDR      r0,[r0,#0]
00055c  e3c00001          BIC      r0,r0,#1
000560  e3a01455          MOV      r1,#0x55000000
000564  e5810000          STR      r0,[r1,#0]
;;;555    	rIISCON |= 0x1;
000568  e3a00455          MOV      r0,#0x55000000
00056c  e5900000          LDR      r0,[r0,#0]
000570  e3800001          ORR      r0,r0,#1
000574  e3a01455          MOV      r1,#0x55000000
000578  e5810000          STR      r0,[r1,#0]
;;;556    	
;;;557        	ClearPending(BIT_DMA2); //Clear pending bit
00057c  e3a00a80          MOV      r0,#0x80000
000580  e3a0144a          MOV      r1,#0x4a000000
000584  e5810000          STR      r0,[r1,#0]
000588  e3a00a80          MOV      r0,#0x80000
00058c  e3a0144a          MOV      r1,#0x4a000000
000590  e5810010          STR      r0,[r1,#0x10]
000594  e3a0044a          MOV      r0,#0x4a000000
000598  e5900010          LDR      r0,[r0,#0x10]
;;;558    	Uart_Printf("\n~~~");
00059c  e28f0008          ADR      r0,|L1.1452|
0005a0  ebfffffe          BL       Uart_Printf
;;;559    	//Uart_Printf("\nrIISMOD=0x%x\n",rIISMOD);
;;;560    }
0005a4  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
0005a8  e25ef004          SUBS     pc,lr,#4
                  |L1.1452|
0005ac  7e7e7e0a          DCB      "\n~~~"
0005b0  00000000          DCB      "\0\0\0\0"
                          ENDP

                  IIS_PlayWave_DMA2 PROC
;;;310    void IIS_PlayWave_DMA2(unsigned char *start_addr, U32 play_size)
;;;311    {
0005b4  e92d40f8          STMFD    sp!,{r3-r7,lr}
0005b8  e1a04000          MOV      r4,r0
0005bc  e1a05001          MOV      r5,r1
;;;312    	pISR_DMA2  = (unsigned)DMA2_Done;
0005c0  e59f01a8          LDR      r0,|L1.1904|
0005c4  e59f11a8          LDR      r1,|L1.1908|
0005c8  e5810f6c          STR      r0,[r1,#0xf6c]
;;;313        	pISR_EINT0 = (unsigned)Muting;
0005cc  e59f01a4          LDR      r0,|L1.1912|
0005d0  e5810f20          STR      r0,[r1,#0xf20]
;;;314    
;;;315        	if (IIS_MasterClk_Sel == 0)	//IIS Master Clock Source = PCLK
0005d4  e59f01a0          LDR      r0,|L1.1916|
0005d8  e5d00000          LDRB     r0,[r0,#0]  ; IIS_MasterClk_Sel
0005dc  e3500000          CMP      r0,#0
0005e0  1a000014          BNE      |L1.1592|

⌨️ 快捷键说明

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