📄 iis.txt
字号:
000b34 31343331 DCB "1341"
000b38 646f4320 DCB " Cod"
000b3c 20296365 DCB "ec) "
000b40 00000a5d DCB "]\n\0\0"
|L1.2884|
000b44 00000000 DCD Rx_IIS_Int
|L1.2888|
000b48 13fff000 DCD 0x13fff000
|L1.2892|
000b4c 00000000 DCD DMA1_IISSDO_Done
|L1.2896|
000b50 00000000 DCD IIS_Muting
|L1.2900|
000b54 00000018 DCD ||.bss$2|| + 24
|L1.2904|
000b58 00000074 DCD ||.constdata$1|| + 116
|L1.2908|
000b5c 6e776f44 DCB "Down"
000b60 64616f6c DCB "load"
000b64 64646120 DCB " add"
000b68 73736572 DCB "ress"
000b6c 20736920 DCB " is "
000b70 0a687825 DCB "%xh\n"
000b74 00000000 DCB "\0\0\0\0"
|L1.2936|
000b78 000005dc DCD 0x000005dc
|L1.2940|
000b7c 00000000 DCD ||.bss$2||
|L1.2944|
000b80 776f4e0a DCB "\nNow"
000b84 6f44202c DCB ", Do"
000b88 6f6c6e77 DCB "wnlo"
000b8c 6e696461 DCB "adin"
000b90 2e2e2e67 DCB "g..."
000b94 46205b20 DCB " [ F"
000b98 20656c69 DCB "ile "
000b9c 657a6953 DCB "Size"
000ba0 25203a20 DCB " : %"
000ba4 20286437 DCB "7d( "
000ba8 20202020 DCB " "
000bac 5d293020 DCB " 0)]"
000bb0 00000000 DCB "\0\0\0\0"
|L1.2996|
000bb4 08080808 DCB "\b\b\b\b"
000bb8 08080808 DCB "\b\b\b\b"
000bbc 29643725 DCB "%7d)"
000bc0 00000000 DCB "\0\0\0\0"
|L1.3012|
000bc4 00001388 DCD 0x00001388
|L1.3016|
000bc8 08080808 DCB "\b\b\b\b"
000bcc 08080808 DCB "\b\b\b\b"
000bd0 29643725 DCB "%7d)"
000bd4 00000a5d DCB "]\n\0\0"
|L1.3032|
000bd8 00000004 DCD ||.bss$2|| + 4
|L1.3036|
000bdc 706d6153 DCB "Samp"
000be0 5320656c DCB "le S"
000be4 20657a69 DCB "ize "
000be8 7830203d DCB "= 0x"
000bec 000a7825 DCB "%x\n\0"
|L1.3056|
000bf0 706d6153 DCB "Samp"
000bf4 676e696c DCB "ling"
000bf8 65724620 DCB " Fre"
000bfc 6e657571 DCB "quen"
000c00 3d207963 DCB "cy ="
000c04 20642520 DCB " %d "
000c08 000a7a48 DCB "Hz\n\0"
|L1.3084|
000c0c 4e205b0a DCB "\n[ N"
000c10 7020776f DCB "ow p"
000c14 2079616c DCB "lay "
000c18 20656874 DCB "the "
000c1c 65766177 DCB "wave"
000c20 6c696620 DCB " fil"
000c24 2e2e2065 DCB "e .."
000c28 5d2e2e2e DCB "...]"
000c2c 0000000a DCB "\n\0\0\0"
|L1.3120|
000c30 79206649 DCB "If y"
000c34 7720756f DCB "ou w"
000c38 20746e61 DCB "ant "
000c3c 6d206f74 DCB "to m"
000c40 20657475 DCB "ute "
000c44 6e20726f DCB "or n"
000c48 756d206f DCB "o mu"
000c4c 70206574 DCB "te p"
000c50 20687375 DCB "ush "
000c54 20656874 DCB "the "
000c58 4e494527 DCB "\'EIN"
000c5c 6b202730 DCB "0\' k"
000c60 72207965 DCB "ey r"
000c64 61657065 DCB "epea"
000c68 6c646574 DCB "tedl"
000c6c 00000a79 DCB "y\n\0\0"
|L1.3184|
000c70 40500000 DCD 0x40500000
|L1.3188|
000c74 44700010 DCD 0x44700010
|L1.3192|
000c78 a2900000 DCD 0xa2900000
;;;187 }
;;;188 else if(fs==22050) //8.4672MHz(384fs)
|L1.3196|
000c7c e51f00ac LDR r0,|L1.3032|
000c80 e5900000 LDR r0,[r0,#0] ; fs
000c84 e240cc56 SUB r12,r0,#0x5600
000c88 e25cc022 SUBS r12,r12,#0x22
000c8c 1a000002 BNE |L1.3228|
;;;189 {
;;;190 rIISPSR = (5<<5) + 5; //Prescaler A,B=5 <- (PCLK = 50.8032MHz)/6 = 8.4672MHz
000c90 e3a000a5 MOV r0,#0xa5
000c94 e59f110c LDR r1,|L1.3496|
000c98 e5810008 STR r0,[r1,#8]
;;;191 }
;;;192 rIISCON = (1<<5) + (1<<2) + (1<<1); //Tx DMA enable[5], Rx idle[2], Prescaler enable[1]
|L1.3228|
000c9c e3a00026 MOV r0,#0x26
000ca0 e59f1100 LDR r1,|L1.3496|
000ca4 e5810000 STR r0,[r1,#0]
;;;193 //Master mode[8],Tx mode[7:6],Low for Left Channel[5],IIS format[4],16bit ch.[3],CDCLK 384fs[2],IISCLK 32fs[1:0]
;;;194 rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0);
000ca8 e3a0008d MOV r0,#0x8d
000cac e1c11000 BIC r1,r1,r0
000cb0 e5810004 STR r0,[r1,#4]
;;;195
;;;196
;;;197 /*
;;;198 //ChangeMPllValue(82,4,1); //FCLK=90.316800MHz, PCLK=45.158400MHz <-- 5.644800MHz*8
;;;199 //ChangeClockDivider(0,1); // 1:1:2
;;;200 //ChangeSdramParameter(HCLK);
;;;201 //Uart_Init(45158400,115200);
;;;202 //IIS 256fs Initialize
;;;203 if(fs==44100) //11.2896MHz(256fs)
;;;204 {
;;;205 rIISPSR = (2<<5) + 2; //Prescaler A,B=2 <- FCLK 135.4752MHz(1:2:4) <- (PCLK = 33.857142MHz)/3 = 11.2896MHz
;;;206 }
;;;207 else if(fs==22050) //fs=22050, 5.644800MHz(256fs)
;;;208 {
;;;209 rIISPSR = (7<<5) + 7; //Prescaler A,B=7 <- (PCLK = 45MHz)/8 = 5.625MHz
;;;210 }
;;;211 rIISCON = (1<<5) + (1<<2) + (1<<1); //Tx DMA enable[5], Rx idle[2], Prescaler enable[1]
;;;212 //Master mode[8],Tx mode[7:6],Low for Left Channel[5],IIS format[4],16bit ch.[3],CDCLK 256fs[2],IISCLK 32fs[1:0]
;;;213 rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (0<<2) + (1<<0);
;;;214 */
;;;215
;;;216 rIISFCON = (1<<15) + (1<<13); //Tx DMA,Tx FIFO --> start piling....
000cb4 e3a00ca0 MOV r0,#0xa000
000cb8 e1c11000 BIC r1,r1,r0
000cbc e581000c STR r0,[r1,#0xc]
;;;217 //rEINTPEND = 0xffffff;
;;;218 Uart_Printf("\nPress any key to exit!!!\n");
000cc0 e28f00e4 ADR r0,|L1.3500|
000cc4 ebfffffe BL _printf
;;;219 //IIS Tx Start
;;;220 rIISCON |= 0x1; //IIS Interface start
000cc8 e59f00d8 LDR r0,|L1.3496|
000ccc e5900000 LDR r0,[r0,#0]
000cd0 e3800001 ORR r0,r0,#1
000cd4 e59f10cc LDR r1,|L1.3496|
000cd8 e5810000 STR r0,[r1,#0]
;;;221 while(!Uart_GetKey());
000cdc e1a00000 NOP
|L1.3296|
000ce0 ebfffffe BL Uart_GetKey
000ce4 e3500000 CMP r0,#0
000ce8 0afffffc BEQ |L1.3296|
;;;222
;;;223 //IIS Tx Stop
;;;224 Delay(10); //For end of H/W Tx
000cec e3a0000a MOV r0,#0xa
000cf0 ebfffffe BL Delay
;;;225 rIISCON = 0x0; //IIS Interface stop
000cf4 e3a00000 MOV r0,#0
000cf8 e59f10a8 LDR r1,|L1.3496|
000cfc e5810000 STR r0,[r1,#0]
;;;226 rDMASKTRIG1 = (1<<2); //DMA1 stop
000d00 e3a00004 MOV r0,#4
000d04 e2411642 SUB r1,r1,#0x4200000
000d08 e5810020 STR r0,[r1,#0x20]
;;;227 rIISFCON = 0x0; //For FIFO flush
000d0c e3a00000 MOV r0,#0
000d10 e2811642 ADD r1,r1,#0x4200000
000d14 e581000c STR r0,[r1,#0xc]
;;;228
;;;229 size = 0;
000d18 e3a00000 MOV r0,#0
000d1c e51f11a8 LDR r1,|L1.2940|
000d20 e5810000 STR r0,[r1,#0] ; size
;;;230
;;;231 rGPCON_M = save_GPCON_M;
000d24 e51f0714 LDR r0,|L1.1560|
000d28 e5804004 STR r4,[r0,#4]
;;;232 rGPCON_L = save_GPCON_L;
000d2c e5805008 STR r5,[r0,#8]
;;;233 rGPPU = save_GPPU;
000d30 e5806010 STR r6,[r0,#0x10]
;;;234
;;;235 rINTSUBMSK|=(BIT_SUB_DMA1);
000d34 e2400646 SUB r0,r0,#0x4600000
000d38 e590001c LDR r0,[r0,#0x1c]
000d3c e3800640 ORR r0,r0,#0x4000000
000d40 e51f1700 LDR r1,|L1.1608|
000d44 e581001c STR r0,[r1,#0x1c]
;;;236 rINTMSK |= (BIT_DMA | BIT_UART0 | BIT_EINT0_2);
000d48 e1a00001 MOV r0,r1
000d4c e5900008 LDR r0,[r0,#8]
000d50 e3800948 ORR r0,r0,#0x120000
000d54 e3800001 ORR r0,r0,#1
000d58 e5810008 STR r0,[r1,#8]
;;;237 rEINTMASK=0xffffff;
000d5c e3e004ff MVN r0,#0xff000000
000d60 e2811646 ADD r1,r1,#0x4600000
000d64 e5810034 STR r0,[r1,#0x34]
;;;238
;;;239 //(0,0)=1:1:1, (0,1)=1:1:2, (1,0)=1:2:2 (1,1)=1:2:4, (2,0)=1:4:5, (2,1)=1:4:8
;;;240 ChangeClockDivider(1,1);
000d68 e3a01001 MOV r1,#1
000d6c e3a00001 MOV r0,#1
000d70 ebfffffe BL ChangeClockDivider
;;;241 //(76,4,1)=84Mhz, (93,4,1)=101Mhz, (54,1,1)=124Mhz, (68,4,0)=152Mhz
;;;242 //(93,4,0)=202Mhz, (47,1,0)=220Mhz, (72,2,0)=240Mhz, (79,2,0)=261Mhz
;;;243 //(195,10,0)=203MHz, (60,2,0)=204MHz
;;;244 //ChangeMPllValue(195,10,0);// FCLK=203MHz
;;;245 ChangeMPllValue(60,2,0);// FCLK=204Mhz
000d74 e3a02000 MOV r2,#0
000d78 e3a01002 MOV r1,#2
000d7c e3a0003c MOV r0,#0x3c
000d80 ebfffffe BL ChangeMPllValue
;;;246 ChangeSdramParameter(HCLK);
000d84 e59f003c LDR r0,|L1.3528|
000d88 ebfffffe BL ChangeSdramParameter
;;;247 Uart_Init(0,115200);
000d8c e59f1038 LDR r1,|L1.3532|
000d90 e3a00000 MOV r0,#0
000d94 ebfffffe BL Uart_Init
;;;248
;;;249 mute = 1;
000d98 e3a00001 MOV r0,#1
000d9c e51f1754 LDR r1,|L1.1616|
000da0 e5c10000 STRB r0,[r1,#0] ; mute
;;;250
;;;251 }
000da4 e8bd80f8 LDMFD sp!,{r3-r7,pc}
|L1.3496|
000da8 44700000 DCD 0x44700000
|L1.3500|
000dac 6572500a DCB "\nPre"
000db0 61207373 DCB "ss a"
000db4 6b20796e DCB "ny k"
000db8 74207965 DCB "ey t"
000dbc 7865206f DCB "o ex"
000dc0 21217469 DCB "it!!"
000dc4 00000a21 DCB "!\n\0\0"
|L1.3528|
000dc8 06146580 DCD 0x06146580
|L1.3532|
000dcc 0001c200 DCD 0x0001c200
ENDP
DMA0_IISSDI_Done PROC
;;;656 void __irq DMA0_IISSDI_Done(void)
;;;657 {
000dd0 e92d0003 STMFD sp!,{r0,r1}
;;;658 rSUBSRCPND = BIT_SUB_DMA0;
000dd4 e3a00780 MOV r0,#0x2000000
000dd8 e51f1798 LDR r1,|L1.1608|
000ddc e5810018 STR r0,[r1,#0x18]
;;;659 rSUBSRCPND;
000de0 e1c10000 BIC r0,r1,r0
000de4 e5900018 LDR r0,[r0,#0x18]
;;;660 rSRCPND = BIT_DMA; //Clear pending bit
000de8 e3a00940 MOV r0,#0x100000
000dec e1c11000 BIC r1,r1,r0
000df0 e5810000 STR r0,[r1,#0]
;;;661 rINTPND = BIT_DMA;
000df4 e3a00940 MOV r0,#0x100000
000df8 e1c11000 BIC r1,r1,r0
000dfc e5810010 STR r0,[r1,#0x10]
;;;662 rINTPND;
000e00 e1c10000 BIC r0,r1,r0
000e04 e5900010 LDR r0,[r0,#0x10]
;;;663
;;;664 Rec_Done = 1;
000e08 e3a00001 MOV r0,#1
000e0c e59f13a8 LDR r1,|L1.4540|
000e10 e5c10000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -