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

📄 ac97.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0008f0  e51f034c          LDR      r0,|L1.1452|
0008f4  e5901000          LDR      r1,[r0,#0]  ; Output_Volume
0008f8  e28f0f45          ADR      r0,|L1.2580|
0008fc  ebfffffe          BL       _printf
;;;859    
;;;860    	//Transfer data enable  using AC-Link
;;;861    	rAC_GLBCTRL = 0x200C;
000900  e59f0130          LDR      r0,|L1.2616|
000904  e3a01445          MOV      r1,#0x45000000
000908  e5810000          STR      r0,[r1,#0]
;;;862    	//Uart_Printf("\nWrite Value to AC_GLBCTRL Reg. =>0x200C\n");
;;;863    	//Uart_Printf("Read Value from AC_GLBCTRL Reg. =>0x%x\n", rAC_GLBCTRL);
;;;864    	
;;;865    	Delay(1000);    
00090c  e3a00ffa          MOV      r0,#0x3e8
000910  ebfffffe          BL       Delay
;;;866    
;;;867    	  	while(1)
000914  e1a00000          NOP      
                  |L1.2328|
000918  e1a00000          NOP      
;;;868    	    	{
;;;869    			//Uart_Printf("STAT3: 0x%x		CURR_TC: 0x%x		DCDST3: 0x%x\n", rDSTAT3&0x300000, rDSTAT3&0xfffff, rDCDST3);
;;;870    	    		Up_Down_Volume=Uart_Getch();
00091c  ebfffffe          BL       Uart_Getch
000920  e59f1114          LDR      r1,|L1.2620|
000924  e5c10000          STRB     r0,[r1,#0]  ; Up_Down_Volume
;;;871    
;;;872    			if( (Up_Down_Volume == 'x') | (Up_Down_Volume == 'X')) 
000928  e59f010c          LDR      r0,|L1.2620|
00092c  e5d00000          LDRB     r0,[r0,#0]  ; Up_Down_Volume
000930  e3500078          CMP      r0,#0x78
000934  1a000041          BNE      |L1.2624|
000938  e3a00001          MOV      r0,#1
00093c  ea000040          B        |L1.2628|
                  |L1.2368|
000940  00000000          DCD      Muting
                  |L1.2372|
000944  13fff000          DCD      0x13fff000
                  |L1.2376|
000948  00000000          DCD      DMA0_Play_Done
                  |L1.2380|
00094c  ffeffffe          DCD      0xffeffffe
                  |L1.2384|
000950  11000030          DCD      0x11000030
                  |L1.2388|
000954  0000001c          DCD      ||.bss$2|| + 28
                  |L1.2392|
000958  40400000          DCD      0x40400000
                  |L1.2396|
00095c  45000018          DCD      0x45000018
                  |L1.2400|
000960  a5a00000          DCD      0xa5a00000
                  |L1.2404|
000964  000000d0          DCD      ||.constdata$1|| + 208
                  |L1.2408|
000968  776f4e0a          DCB      "\nNow"
00096c  616c5020          DCB      " Pla"
000970  2e2e2e79          DCB      "y..."
000974  0000000a          DCB      "\n\0\0\0"
                  |L1.2424|
000978  56206f54          DCB      "To V"
00097c  6d756c6f          DCB      "olum"
000980  70552065          DCB      "e Up"
000984  7250202c          DCB      ", Pr"
000988  20737365          DCB      "ess "
00098c  20656874          DCB      "the "
000990  20277527          DCB      "\'u\' "
000994  2e79656b          DCB      "key."
000998  0000000a          DCB      "\n\0\0\0"
                  |L1.2460|
00099c  56206f54          DCB      "To V"
0009a0  6d756c6f          DCB      "olum"
0009a4  6f442065          DCB      "e Do"
0009a8  202c6e77          DCB      "wn, "
0009ac  73657250          DCB      "Pres"
0009b0  68742073          DCB      "s th"
0009b4  64272065          DCB      "e \'d"
0009b8  656b2027          DCB      "\' ke"
0009bc  000a2e79          DCB      "y.\n\0"
                  |L1.2496|
0009c0  4d206f54          DCB      "To M"
0009c4  20657475          DCB      "ute "
0009c8  4f2f6e4f          DCB      "On/O"
0009cc  202c6666          DCB      "ff, "
0009d0  73657250          DCB      "Pres"
0009d4  49452073          DCB      "s EI"
0009d8  2030544e          DCB      "NT0 "
0009dc  74747542          DCB      "Butt"
0009e0  0a2e6e6f          DCB      "on.\n"
0009e4  00000000          DCB      "\0\0\0\0"
                  |L1.2536|
0009e8  2066490a          DCB      "\nIf "
0009ec  20756f79          DCB      "you "
0009f0  746e6177          DCB      "want"
0009f4  206f7420          DCB      " to "
0009f8  74697865          DCB      "exit"
0009fc  7250202c          DCB      ", Pr"
000a00  20737365          DCB      "ess "
000a04  20656874          DCB      "the "
000a08  20277827          DCB      "\'x\' "
000a0c  2e79656b          DCB      "key."
000a10  0000000a          DCB      "\n\0\0\0"
                  |L1.2580|
000a14  64616548          DCB      "Head"
000a18  6e6f6870          DCB      "phon"
000a1c  6f562065          DCB      "e Vo"
000a20  656d756c          DCB      "lume"
000a24  67655220          DCB      " Reg"
000a28  65747369          DCB      "iste"
000a2c  203d2072          DCB      "r = "
000a30  78257830          DCB      "0x%x"
000a34  0000000a          DCB      "\n\0\0\0"
                  |L1.2616|
000a38  0000200c          DCD      0x0000200c
                  |L1.2620|
000a3c  0000002c          DCD      ||.bss$2|| + 44
                  |L1.2624|
000a40  e3a00000          MOV      r0,#0
                  |L1.2628|
000a44  e51f1010          LDR      r1,|L1.2620|
000a48  e5d11000          LDRB     r1,[r1,#0]  ; Up_Down_Volume
000a4c  e3510058          CMP      r1,#0x58
000a50  1a000001          BNE      |L1.2652|
000a54  e3a01001          MOV      r1,#1
000a58  ea000000          B        |L1.2656|
                  |L1.2652|
000a5c  e3a01000          MOV      r1,#0
                  |L1.2656|
000a60  e1900001          ORRS     r0,r0,r1
000a64  0a000000          BEQ      |L1.2668|
;;;873    			break;
000a68  ea000003          B        |L1.2684|
;;;874    	    		PCM_Out_Volume(Up_Down_Volume);
                  |L1.2668|
000a6c  e51f0038          LDR      r0,|L1.2620|
000a70  e5d00000          LDRB     r0,[r0,#0]  ; Up_Down_Volume
000a74  ebfffffe          BL       PCM_Out_Volume
;;;875    	   	}
000a78  eaffffa6          B        |L1.2328|
;;;876    
;;;877    	//ClearPending(BIT_DMA); 
;;;878    
;;;879    	rDMASKTRIG0  = (1<<2);       //DMA0 stop
                  |L1.2684|
000a7c  e3a00004          MOV      r0,#4
000a80  e51f1130          LDR      r1,|L1.2392|
000a84  e5810020          STR      r0,[r1,#0x20]
;;;880    
;;;881    	rINTSUBMSK|=(BIT_SUB_DMA0);	
000a88  e0410980          SUB      r0,r1,r0,LSL #19
000a8c  e590001c          LDR      r0,[r0,#0x1c]
000a90  e3800780          ORR      r0,r0,#0x2000000
000a94  e2411980          SUB      r1,r1,#0x200000
000a98  e581001c          STR      r0,[r1,#0x1c]
;;;882    	rINTMSK|= (BIT_DMA | BIT_EINT0_2);
000a9c  e1a00001          MOV      r0,r1
000aa0  e5900008          LDR      r0,[r0,#8]
000aa4  e3800940          ORR      r0,r0,#0x100000
000aa8  e3800001          ORR      r0,r0,#1
000aac  e5810008          STR      r0,[r1,#8]
;;;883    	rEINTMASK=0xffffff;
000ab0  e3e004ff          MVN      r0,#0xff000000
000ab4  e2811646          ADD      r1,r1,#0x4600000
000ab8  e5810034          STR      r0,[r1,#0x34]
;;;884    	 //AC97 PCM In Channel Finish 
;;;885    	 rAC_GLBCTRL &= ~(1<<13); //PCM Out Transfer Mode Off
000abc  e3a00445          MOV      r0,#0x45000000
000ac0  e5900000          LDR      r0,[r0,#0]
000ac4  e3c00d80          BIC      r0,r0,#0x2000
000ac8  e3a01445          MOV      r1,#0x45000000
000acc  e5810000          STR      r0,[r1,#0]
;;;886    	 Uart_Printf("\nEnd of Play!\n");
000ad0  e28f0004          ADR      r0,|L1.2780|
000ad4  ebfffffe          BL       _printf
;;;887    }
000ad8  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.2780|
000adc  646e450a          DCB      "\nEnd"
000ae0  20666f20          DCB      " of "
000ae4  79616c50          DCB      "Play"
000ae8  00000a21          DCB      "!\n\0\0"
                          ENDP

                  Irq_AC97_PCMout PROC
;;;1285   void __irq Irq_AC97_PCMout(void)
;;;1286   {
000aec  e92d100f          STMFD    sp!,{r0-r3,r12}
;;;1287   	U32 i, AC97_Stat;
;;;1288   	
;;;1289   	rINTMSK |=(BIT_AC97_NFLASH);
000af0  e51f24b0          LDR      r2,|L1.1608|
000af4  e5922008          LDR      r2,[r2,#8]
000af8  e3822740          ORR      r2,r2,#0x1000000
000afc  e51f34bc          LDR      r3,|L1.1608|
000b00  e5832008          STR      r2,[r3,#8]
;;;1290   	rINTSUBMSK|=(BIT_SUB_AC97);		
000b04  e1a02003          MOV      r2,r3
000b08  e592201c          LDR      r2,[r2,#0x1c]
000b0c  e3822840          ORR      r2,r2,#0x400000
000b10  e583201c          STR      r2,[r3,#0x1c]
;;;1291   
;;;1292   	AC97_Stat = rAC_GLBSTAT;
000b14  e3a02445          MOV      r2,#0x45000000
000b18  e5922004          LDR      r2,[r2,#4]
000b1c  e1a01002          MOV      r1,r2
;;;1293   	
;;;1294   	if (AC97_Stat & AC97_PCM_OUT_THRESHOLD)
000b20  e3110a40          TST      r1,#0x40000
000b24  0a000014          BEQ      |L1.2940|
;;;1295   	{
;;;1296   			for(i=0; i<PCM_OUT_TRIGGER; i++)
000b28  e3a00000          MOV      r0,#0
                  |L1.2860|
000b2c  e3500008          CMP      r0,#8
000b30  2a000011          BCS      |L1.2940|
000b34  ea000001          B        |L1.2880|
                  |L1.2872|
000b38  e2800001          ADD      r0,r0,#1
000b3c  eafffffa          B        |L1.2860|
;;;1297   		       {
;;;1298   			 	rAC_PCMDATA = *(Play_AC97_BUF++);			
                  |L1.2880|
000b40  e51f21f4          LDR      r2,|L1.2388|
000b44  e5923000          LDR      r3,[r2,#0]  ; Play_AC97_BUF
000b48  e51fc1fc          LDR      r12,|L1.2388|
000b4c  e4932004          LDR      r2,[r3],#4
000b50  e58c3000          STR      r3,[r12,#0]  ; Play_AC97_BUF
000b54  e3a03445          MOV      r3,#0x45000000
000b58  e5832018          STR      r2,[r3,#0x18]
;;;1299   
;;;1300   				if(Play_AC97_BUF == End_AC97_BUF)  
000b5c  e51f2210          LDR      r2,|L1.2388|
000b60  e5922000          LDR      r2,[r2,#0]  ; Play_AC97_BUF
000b64  e59f31cc          LDR      r3,|L1.3384|
000b68  e5933000          LDR      r3,[r3,#0]  ; End_AC97_BUF
000b6c  e1520003          CMP      r2,r3
000b70  1a000000          BNE      |L1.2936|
;;;1301   				break;	
000b74  ea000000          B        |L1.2940|
;;;1302   			}			
                  |L1.2936|
000b78  eaffffee          B        |L1.2872|
;;;1303   	}
;;;1304   
;;;1305   	if(Play_AC97_BUF == End_AC97_BUF)
                  |L1.2940|
000b7c  e51f2230          LDR      r2,|L1.2388|
000b80  e5922000          LDR      r2,[r2,#0]  ; Play_AC97_BUF
000b84  e59f31ac          LDR      r3,|L1.3384|
000b88  e5933000          LDR      r3,[r3,#0]  ; End_AC97_BUF
000b8c  e1520003          CMP      r2,r3
000b90  1a000007          BNE      |L1.2996|
;;;1306   	{
;;;1307   		rAC_GLBCTRL &= ~(0x40000);	//PCM Out channel threshold INT disable
000b94  e3a02445          MOV      r2,#0x45000000
000b98  e5922000          LDR      r2,[r2,#0]
000b9c  e3c22a40          BIC      r2,r2,#0x40000
000ba0  e3a03445          MOV      r3,#0x45000000
000ba4  e5832000          STR      r2,[r3,#0]
;;;1308   		PCM_Out_INT_Exit =1;	
000ba8  e3a02001          MOV      r2,#1
000bac  e59f3188          LDR      r3,|L1.3388|
000bb0  e1c320b0          STRH     r2,[r3,#0]  ; PCM_Out_INT_Exit
;;;1309   	}
;;;1310   	
;;;1311   	rSUBSRCPND=(BIT_SUB_AC97);
                  |L1.2996|
000bb4  e3a02840          MOV      r2,#0x400000
000bb8  e51f3578          LDR      r3,|L1.1608|
000bbc  e5832018          STR      r2,[r3,#0x18]
;;;1312   	rSUBSRCPND;	
000bc0  e1c32002          BIC      r2,r3,r2
000bc4  e5922018          LDR      r2,[r2,#0x18]
;;;1313   	ClearPending(BIT_AC97_NFLASH);
000bc8  e3a02740          MOV      r2,#0x1000000
000bcc  e1c33002          BIC      r3,r3,r2
000bd0  e5832000          STR      r2,[r3,#0]
000bd4  e1c32002          BIC      r2,r3,r2
000bd8  e5922010          LDR      r2,[r2,#0x10]
000bdc  e5832010          STR      r2,[r3,#0x10]
000be0  e1a02003          MOV      r2,r3
000be4  e5922010          LDR      r2,[r2,#0x10]
;;;1314   
;;;1315   	rINTSUBMSK &= ~(BIT_SUB_AC97);	
000be8  e1a02003          MOV      r2,r3
000bec  e592201c          LDR      r2,[r2,#0x1c]
000bf0  e3c22840          BIC      r2,r2,#0x400000
000bf4  e583201c          STR      r2,[r3,#0x1c]
;;;1316   	rINTMSK &= ~(BIT_AC97_NFLASH);	 	
000bf8  e1a02003          MOV      r2,r3
000bfc  e5922008          LDR      r2,[r2,#8]
000c00  e3c22740          BIC      r2,r2,#0x1000000
000c04  e5832008          STR      r2,[r3,#8]
;;;1317   }
000c08  e8bd100f          LDMFD    sp!,{r0-r3,r12}
000c0c  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  AC97_PCMout_INT PROC
;;;890    void AC97_PCMout_INT(U32 PCM_Size)
;;;891    {
000c10  e92d4010          STMFD    sp!,{r4,lr}
000c14  e1a04000          MOV      r4,r0
;;;892    	 //Record AC97_BUF initialize
;;;893           Rec_AC97_BUF   = (U32 *)(DOWN_BUF);
000c18  e3a00544          MOV      r0,#0x11000000
000c1c  e59f111c          LDR      r1,|L1.3392|
000c20  e5810000          STR      r0,[r1,#0]  ; Rec_AC97_BUF
;;;894    	Play_AC97_BUF = (Rec_AC97_BUF + 0x30);

⌨️ 快捷键说明

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