📄 iis.txt
字号:
0007d8 e51f01c8 LDR r0,|L1.1560|
0007dc e5900010 LDR r0,[r0,#0x10]
0007e0 e1a06000 MOV r6,r0
;;;117
;;;118 IIS_PortSetting();
0007e4 ebfffffe BL IIS_PortSetting
;;;119 //Uart_Printf("rGPCON_M,rGPPU 0x%x 0x%x\n",rGPCON_M,rGPPU);
;;;120
;;;121 pISR_UART0 = (unsigned)Rx_IIS_Int;
0007e8 e59f0354 LDR r0,|L1.2884|
0007ec e59f1354 LDR r1,|L1.2888|
0007f0 e5810f64 STR r0,[r1,#0xf64]
;;;122 pISR_DMA = (unsigned)DMA1_IISSDO_Done;
0007f4 e59f0350 LDR r0,|L1.2892|
0007f8 e5810f70 STR r0,[r1,#0xf70]
;;;123 pISR_EINT0_2= (unsigned)IIS_Muting;
0007fc e59f034c LDR r0,|L1.2896|
000800 e5810f20 STR r0,[r1,#0xf20]
;;;124
;;;125 rEINTPEND = 0xffffff;
000804 e3e004ff MVN r0,#0xff000000
000808 e51f11f8 LDR r1,|L1.1560|
00080c e5810038 STR r0,[r1,#0x38]
;;;126 rSRCPND = BIT_EINT0_2; //to clear the previous pending states
000810 e3a00001 MOV r0,#1
000814 e2411646 SUB r1,r1,#0x4600000
000818 e5810000 STR r0,[r1,#0]
;;;127 rINTPND = BIT_EINT0_2;
00081c e3a00001 MOV r0,#1
000820 e1c11000 BIC r1,r1,r0
000824 e5810010 STR r0,[r1,#0x10]
;;;128
;;;129 rEINTMASK=~(1<<0);
000828 e3e00001 MVN r0,#1
00082c e2811646 ADD r1,r1,#0x4600000
000830 e5810034 STR r0,[r1,#0x34]
;;;130 rINTMSK = ~(BIT_EINT0_2 | BIT_UART0 | BIT_DMA);
000834 e2400948 SUB r0,r0,#0x120000
000838 e2411646 SUB r1,r1,#0x4600000
00083c e5810008 STR r0,[r1,#8]
;;;131 rINTSUBMSK = ~(BIT_SUB_RXD0|BIT_SUB_DMA1);
000840 e3e00341 MVN r0,#0x4000001
000844 e0011000 AND r1,r1,r0
000848 e581001c STR r0,[r1,#0x1c]
;;;132
;;;133 //Non-cacheable area = 0x11000000 ~ 0x13cf0000
;;;134 Buf = (unsigned char *)IIS_BUFFER;
00084c e3a00544 MOV r0,#0x11000000
000850 e59f12fc LDR r1,|L1.2900|
000854 e5810000 STR r0,[r1,#0] ; Buf
;;;135 _temp = Buf;
000858 e59f02f4 LDR r0,|L1.2900|
00085c e5900000 LDR r0,[r0,#0] ; Buf
000860 e59f12a0 LDR r1,|L1.2824|
000864 e5810000 STR r0,[r1,#0] ; _temp
;;;136
;;;137 Uart_Printf("Download the PCM(no ADPCM) file by DNW serial port(With header)!!\n");
000868 e59f02e8 LDR r0,|L1.2904|
00086c ebfffffe BL _printf
;;;138 Uart_Printf("Download address is %xh\n", Buf);
000870 e59f02dc LDR r0,|L1.2900|
000874 e5901000 LDR r1,[r0,#0] ; Buf
000878 e28f0fb7 ADR r0,|L1.2908|
00087c ebfffffe BL _printf
;;;139 while(((unsigned int)_temp - (unsigned int)Buf) < 4)
000880 e1a00000 NOP
|L1.2180|
000884 e59f027c LDR r0,|L1.2824|
000888 e5900000 LDR r0,[r0,#0] ; _temp
00088c e59f12c0 LDR r1,|L1.2900|
000890 e5911000 LDR r1,[r1,#0] ; Buf
000894 e0400001 SUB r0,r0,r1
000898 e3500004 CMP r0,#4
00089c 2a000008 BCS |L1.2244|
;;;140 {
;;;141 Led_Display(0);
0008a0 e3a00000 MOV r0,#0
0008a4 ebfffffe BL Led_Display
;;;142 Delay(1500);
0008a8 e59f02c8 LDR r0,|L1.2936|
0008ac ebfffffe BL Delay
;;;143 Led_Display(15);
0008b0 e3a0000f MOV r0,#0xf
0008b4 ebfffffe BL Led_Display
;;;144 Delay(1500);
0008b8 e59f02b8 LDR r0,|L1.2936|
0008bc ebfffffe BL Delay
;;;145 }
0008c0 eaffffef B |L1.2180|
;;;146 size = *(Buf) | *(Buf + 1)<<8 | *(Buf + 2)<<16 | *(Buf + 3)<<24;
|L1.2244|
0008c4 e59f0288 LDR r0,|L1.2900|
0008c8 e5900000 LDR r0,[r0,#0] ; Buf
0008cc e5d00000 LDRB r0,[r0,#0]
0008d0 e59f127c LDR r1,|L1.2900|
0008d4 e5911000 LDR r1,[r1,#0] ; Buf
0008d8 e5d11001 LDRB r1,[r1,#1]
0008dc e1800401 ORR r0,r0,r1,LSL #8
0008e0 e59f126c LDR r1,|L1.2900|
0008e4 e5911000 LDR r1,[r1,#0] ; Buf
0008e8 e5d11002 LDRB r1,[r1,#2]
0008ec e1800801 ORR r0,r0,r1,LSL #16
0008f0 e59f125c LDR r1,|L1.2900|
0008f4 e5911000 LDR r1,[r1,#0] ; Buf
0008f8 e5d11003 LDRB r1,[r1,#3]
0008fc e1800c01 ORR r0,r0,r1,LSL #24
000900 e59f1274 LDR r1,|L1.2940|
000904 e5810000 STR r0,[r1,#0] ; size
;;;147 Uart_Printf("\nNow, Downloading... [ File Size : %7d( 0)]",size);
000908 e59f026c LDR r0,|L1.2940|
00090c e5901000 LDR r1,[r0,#0] ; size
000910 e28f0f9a ADR r0,|L1.2944|
000914 ebfffffe BL _printf
;;;148 while(((unsigned int)_temp - (unsigned int)Buf) < size){
000918 e1a00000 NOP
|L1.2332|
00091c e59f01e4 LDR r0,|L1.2824|
000920 e5900000 LDR r0,[r0,#0] ; _temp
000924 e59f1228 LDR r1,|L1.2900|
000928 e5911000 LDR r1,[r1,#0] ; Buf
00092c e0400001 SUB r0,r0,r1
000930 e59f1244 LDR r1,|L1.2940|
000934 e5911000 LDR r1,[r1,#0] ; size
000938 e1500001 CMP r0,r1
00093c 2a000009 BCS |L1.2408|
;;;149 Uart_Printf("\b\b\b\b\b\b\b\b%7d)",(unsigned int)_temp - (unsigned int)Buf);
000940 e59f01c0 LDR r0,|L1.2824|
000944 e5900000 LDR r0,[r0,#0] ; _temp
000948 e59f2204 LDR r2,|L1.2900|
00094c e5922000 LDR r2,[r2,#0] ; Buf
000950 e0401002 SUB r1,r0,r2
000954 e28f0f96 ADR r0,|L1.2996|
000958 ebfffffe BL _printf
;;;150 Delay(5000);
00095c e59f0260 LDR r0,|L1.3012|
000960 ebfffffe BL Delay
;;;151 }
000964 eaffffec B |L1.2332|
;;;152 Uart_Printf("\b\b\b\b\b\b\b\b%7d)]\n",(unsigned int)_temp - (unsigned int)Buf);
|L1.2408|
000968 e59f0198 LDR r0,|L1.2824|
00096c e5900000 LDR r0,[r0,#0] ; _temp
000970 e59f21dc LDR r2,|L1.2900|
000974 e5922000 LDR r2,[r2,#0] ; Buf
000978 e0401002 SUB r1,r0,r2
00097c e28f0f91 ADR r0,|L1.3016|
000980 ebfffffe BL _printf
;;;153
;;;154 rINTSUBMSK |= BIT_SUB_RXD0;
000984 e51f0344 LDR r0,|L1.1608|
000988 e590001c LDR r0,[r0,#0x1c]
00098c e3800001 ORR r0,r0,#1
000990 e51f1350 LDR r1,|L1.1608|
000994 e581001c STR r0,[r1,#0x1c]
;;;155 rINTMSK |= BIT_UART0;
000998 e1a00001 MOV r0,r1
00099c e5900008 LDR r0,[r0,#8]
0009a0 e3800b80 ORR r0,r0,#0x20000
0009a4 e5810008 STR r0,[r1,#8]
;;;156 size = *(Buf + 0x2c) | *(Buf + 0x2d)<<8 | *(Buf + 0x2e)<<16 | *(Buf + 0x2f)<<24;
0009a8 e59f01a4 LDR r0,|L1.2900|
0009ac e5900000 LDR r0,[r0,#0] ; Buf
0009b0 e5d0002c LDRB r0,[r0,#0x2c]
0009b4 e59f1198 LDR r1,|L1.2900|
0009b8 e5911000 LDR r1,[r1,#0] ; Buf
0009bc e5d1102d LDRB r1,[r1,#0x2d]
0009c0 e1800401 ORR r0,r0,r1,LSL #8
0009c4 e59f1188 LDR r1,|L1.2900|
0009c8 e5911000 LDR r1,[r1,#0] ; Buf
0009cc e5d1102e LDRB r1,[r1,#0x2e]
0009d0 e1800801 ORR r0,r0,r1,LSL #16
0009d4 e59f1178 LDR r1,|L1.2900|
0009d8 e5911000 LDR r1,[r1,#0] ; Buf
0009dc e5d1102f LDRB r1,[r1,#0x2f]
0009e0 e1800c01 ORR r0,r0,r1,LSL #24
0009e4 e59f1190 LDR r1,|L1.2940|
0009e8 e5810000 STR r0,[r1,#0] ; size
;;;157 size = (size>>1)<<1; //for 44B0X
0009ec e59f0188 LDR r0,|L1.2940|
0009f0 e5900000 LDR r0,[r0,#0] ; size
0009f4 e1a000a0 MOV r0,r0,LSR #1
0009f8 e1a00080 MOV r0,r0,LSL #1
0009fc e59f1178 LDR r1,|L1.2940|
000a00 e5810000 STR r0,[r1,#0] ; size
;;;158 fs = *(Buf + 0x1c) | *(Buf + 0x1d)<<8 | *(Buf + 0x1e)<<16 | *(Buf + 0x1f)<<24;
000a04 e59f0148 LDR r0,|L1.2900|
000a08 e5900000 LDR r0,[r0,#0] ; Buf
000a0c e5d0001c LDRB r0,[r0,#0x1c]
000a10 e59f113c LDR r1,|L1.2900|
000a14 e5911000 LDR r1,[r1,#0] ; Buf
000a18 e5d1101d LDRB r1,[r1,#0x1d]
000a1c e1800401 ORR r0,r0,r1,LSL #8
000a20 e59f112c LDR r1,|L1.2900|
000a24 e5911000 LDR r1,[r1,#0] ; Buf
000a28 e5d1101e LDRB r1,[r1,#0x1e]
000a2c e1800801 ORR r0,r0,r1,LSL #16
000a30 e59f111c LDR r1,|L1.2900|
000a34 e5911000 LDR r1,[r1,#0] ; Buf
000a38 e5d1101f LDRB r1,[r1,#0x1f]
000a3c e1800c01 ORR r0,r0,r1,LSL #24
000a40 e59f1190 LDR r1,|L1.3032|
000a44 e5810000 STR r0,[r1,#0] ; fs
;;;159
;;;160 Uart_Printf("Sample Size = 0x%x\n",size/2);
000a48 e59f012c LDR r0,|L1.2940|
000a4c e5900000 LDR r0,[r0,#0] ; size
000a50 e1a010a0 MOV r1,r0,LSR #1
000a54 e28f0f60 ADR r0,|L1.3036|
000a58 ebfffffe BL _printf
;;;161 Uart_Printf("Sampling Frequency = %d Hz\n",fs);
000a5c e59f0174 LDR r0,|L1.3032|
000a60 e5901000 LDR r1,[r0,#0] ; fs
000a64 e28f0f61 ADR r0,|L1.3056|
000a68 ebfffffe BL _printf
;;;162 Uart_Printf("\n[ Now play the wave file .....]\n");
000a6c e28f0f66 ADR r0,|L1.3084|
000a70 ebfffffe BL _printf
;;;163 Uart_Printf("If you want to mute or no mute push the 'EIN0' key repeatedly\n");
000a74 e28f0f6d ADR r0,|L1.3120|
000a78 ebfffffe BL _printf
;;;164
;;;165 // Modified function test(2410->2440->24A0)
;;;166 //Uart_Printf("Select Autoreload Interrupt occuring time\n");
;;;167 //Uart_Printf("(0:When TC=0, 1:After autoreload is perfomed) : ");
;;;168 //Intr_Time_Arg = Uart_GetIntNum();
;;;169
;;;170 Init1341(PLAY);
000a7c e3a00000 MOV r0,#0
000a80 ebfffffe BL Init1341
;;;171
;;;172 //DMA1 Initialize
;;;173 rDISRC1 = (int)(Buf + 0x30); //0x11000030~(Remove WAV. header)
000a84 e59f00c8 LDR r0,|L1.2900|
000a88 e5900000 LDR r0,[r0,#0] ; Buf
000a8c e2800030 ADD r0,r0,#0x30
000a90 e59f11d8 LDR r1,|L1.3184|
000a94 e5810000 STR r0,[r1,#0]
;;;174 rDISRCC1 = (0<<1) + (0<<0); //The source is in the system bus(AHB), Increment
000a98 e3a00000 MOV r0,#0
000a9c e1c11000 BIC r1,r1,r0
000aa0 e5810004 STR r0,[r1,#4]
;;;175 rDIDST1 = ((U32)IISFIFO); //IISFIFO
000aa4 e59f01c8 LDR r0,|L1.3188|
000aa8 e0011000 AND r1,r1,r0
000aac e5810008 STR r0,[r1,#8]
;;;176 rDIDSTC1 = (Intr_Time_Arg<<2) + (1<<1) + (1<<0); //The destination is in the peripheral bus(APB), Fixed
000ab0 e3a00003 MOV r0,#3
000ab4 e0800107 ADD r0,r0,r7,LSL #2
000ab8 e581000c STR r0,[r1,#0xc]
;;;177 rDCON1 = (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(2<<24)+(1<<23)+(0<<22)+(1<<20)+(size/2);
000abc e59f00b8 LDR r0,|L1.2940|
000ac0 e5900000 LDR r0,[r0,#0] ; size
000ac4 e59f11ac LDR r1,|L1.3192|
000ac8 e08100a0 ADD r0,r1,r0,LSR #1
000acc e59f119c LDR r1,|L1.3184|
000ad0 e5810010 STR r0,[r1,#0x10]
;;;178 //Handshake[31], Sync PCLK[30], CURR_TC Interrupt Request[29], Single Tx[28], Single service[27],
;;;179 //I2SSDO[26:24], DMA source selected[23],Auto-reload[22], Half-word[21:20], size/2[19:0]
;;;180
;;;181 rDMASKTRIG1 = (0<<2) + (1<<1) + (0<<0); //No-stop[2], DMA2 channel On[1], No-sw trigger[0]
000ad4 e3a00002 MOV r0,#2
000ad8 e1c11000 BIC r1,r1,r0
000adc e5810020 STR r0,[r1,#0x20]
;;;182
;;;183 //IIS 384fs Initialize
;;;184 if(fs==44100) //16.9344MHz(384fs)
000ae0 e59f00f0 LDR r0,|L1.3032|
000ae4 e5900000 LDR r0,[r0,#0] ; fs
000ae8 e240ccac SUB r12,r0,#0xac00
000aec e25cc044 SUBS r12,r12,#0x44
000af0 1a000061 BNE |L1.3196|
;;;185 {
;;;186 rIISPSR = (2<<5) + 2; //Prescaler A,B=2 <- FCLK 203.2128MHz(1:2:4) <- (PCLK = 50.8032MHz)/3 = 16.9344MHz
000af4 e3a00042 MOV r0,#0x42
000af8 e1811a00 ORR r1,r1,r0,LSL #20
000afc e5810008 STR r0,[r1,#8]
000b00 ea000065 B |L1.3228|
|L1.2820|
000b04 00000000 DCD which_Buf
|L1.2824|
000b08 0000001c DCD ||.bss$2|| + 28
|L1.2828|
000b0c 4949205b DCB "[ II"
000b10 4d282053 DCB "S (M"
000b14 65747361 DCB "aste"
000b18 6f4d2072 DCB "r Mo"
000b1c 20296564 DCB "de) "
000b20 74736554 DCB "Test"
000b24 6c502820 DCB " (Pl"
000b28 55207961 DCB "ay U"
000b2c 676e6973 DCB "sing"
000b30 41445520 DCB " UDA"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -