📄 iis_dual.txt
字号:
;;;253 //Init DMA Ch 2
;;;254 rDISRC2 = (U32)(playBuf[indexPlayBuf++]);
;;;255
;;;256 rDISRCC2 = (0<<1)|(0<<0); //Src=AHB,Increment
;;;257 rDIDST2 = (U32)IISFIFO; // Tx FIFO address
;;;258 rDIDSTC2 = (1<<1)|(1<<0); //Dst=APB,Fixed;
;;;259 rDCON2 = (1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(1<<24)|(1<<23)|(1<<22)|(1<<20)|(AUDIO_BUF_SIZE);
;;;260 //handshake,Sync=APB,IntEn,unit,single,dst=I2SSDO,HwReqMode,NoAutoReload,Halfword,
;;;261 rDMASKTRIG2 = (1<<1); //DMA2En
;;;262
;;;263
;;;264 //IIS will start to work.
;;;265 }
|L1.720|
0002d0 e8bd8008 LDMFD sp!,{r3,pc}
|L1.724|
0002d4 e28f00a4 ADR r0,|L1.896| ;248
0002d8 ebfffffe BL _printf ;248
0002dc e3a00000 MOV r0,#0 ;249
0002e0 e51f1038 LDR r1,|L1.688| ;249
0002e4 e5810000 STR r0,[r1,#0] ;249 ; stopPlay
0002e8 e3a00001 MOV r0,#1 ;250
0002ec e59f1080 LDR r1,|L1.884| ;250
0002f0 e5810000 STR r0,[r1,#0] ;250 ; audioOutActive
0002f4 e3a00000 MOV r0,#0 ;251
0002f8 e59f1094 LDR r1,|L1.916| ;251
0002fc e5810000 STR r0,[r1,#0] ;251 ; indexPlayBuf
000300 e59f008c LDR r0,|L1.916| ;254
000304 e5900000 LDR r0,[r0,#0] ;254 ; indexPlayBuf
000308 e2801001 ADD r1,r0,#1 ;254
00030c e59f0080 LDR r0,|L1.916| ;254
000310 e5902000 LDR r2,[r0,#0] ;254 ; indexPlayBuf
000314 e5801000 STR r1,[r0,#0] ;254 ; indexPlayBuf
000318 e3a0007d MOV r0,#0x7d ;254
00031c e0010290 MUL r1,r0,r2 ;254
000320 e51f00ac LDR r0,|L1.636| ;254
000324 e5900000 LDR r0,[r0,#0] ;254 ; playBuf
000328 e0800201 ADD r0,r0,r1,LSL #4 ;254
00032c e59f1064 LDR r1,|L1.920| ;254
000330 e5810000 STR r0,[r1,#0] ;254
000334 e3a00000 MOV r0,#0 ;256
000338 e1c11000 BIC r1,r1,r0 ;256
00033c e5810004 STR r0,[r1,#4] ;256
000340 e59f0054 LDR r0,|L1.924| ;257
000344 e0011000 AND r1,r1,r0 ;257
000348 e5810008 STR r0,[r1,#8] ;257
00034c e3a00003 MOV r0,#3 ;258
000350 e1c11000 BIC r1,r1,r0 ;258
000354 e581000c STR r0,[r1,#0xc] ;258
000358 e59f0040 LDR r0,|L1.928| ;259
00035c e00110c0 AND r1,r1,r0,ASR #1 ;259
000360 e5810010 STR r0,[r1,#0x10] ;259
000364 e3a00002 MOV r0,#2 ;261
000368 e1c11000 BIC r1,r1,r0 ;261
00036c e5810020 STR r0,[r1,#0x20] ;261
000370 eaffffd6 B |L1.720|
|L1.884|
000374 00000024 DCD ||.bss$2|| + 36
|L1.888|
000378 412f4e5b DCB "[N/A"
00037c 0000005d DCB "]\0\0\0"
|L1.896|
000380 6475415b DCB "[Aud"
000384 754f6f69 DCB "ioOu"
000388 74532074 DCB "t St"
00038c 5d747261 DCB "art]"
000390 0000000a DCB "\n\0\0\0"
|L1.916|
000394 00000014 DCD ||.bss$2|| + 20
|L1.920|
000398 40600000 DCD 0x40600000
|L1.924|
00039c 44700010 DCD 0x44700010
|L1.928|
0003a0 a1d003e8 DCD 0xa1d003e8
ENDP
AudioInStop PROC
;;;382 void AudioInStop(void)
;;;383 {
0003a4 e92d4008 STMFD sp!,{r3,lr}
;;;384 Uart_Printf("\n[AudioIn Stop]\n");
0003a8 e28f0010 ADR r0,|L1.960|
0003ac ebfffffe BL _printf
;;;385 stopRec=TRUE;
0003b0 e3a00001 MOV r0,#1
0003b4 e59f1018 LDR r1,|L1.980|
0003b8 e5810000 STR r0,[r1,#0] ; stopRec
;;;386 }
0003bc e8bd8008 LDMFD sp!,{r3,pc}
|L1.960|
0003c0 75415b0a DCB "\n[Au"
0003c4 496f6964 DCB "dioI"
0003c8 7453206e DCB "n St"
0003cc 0a5d706f DCB "op]\n"
0003d0 00000000 DCB "\0\0\0\0"
|L1.980|
0003d4 00000020 DCD ||.bss$2|| + 32
ENDP
AudioInStart PROC
;;;347 void AudioInStart(void)
;;;348 {
0003d8 e92d4008 STMFD sp!,{r3,lr}
;;;349 if(audioInActive!=FALSE)
0003dc e51f0198 LDR r0,|L1.588|
0003e0 e5900000 LDR r0,[r0,#0] ; audioInActive
0003e4 e3500000 CMP r0,#0
0003e8 0a000002 BEQ |L1.1016|
;;;350 {
;;;351 Uart_Printf("[N/A]");
0003ec e24f007c ADR r0,|L1.888|
0003f0 ebfffffe BL _printf
;;;352 return;
;;;353 }
;;;354
;;;355 Uart_Printf("[AudioIn Start]\n");
;;;356 stopRec=FALSE;
;;;357 audioInActive=TRUE;
;;;358 indexRecBuf=0;
;;;359
;;;360 //Init DMA Ch 0
;;;361 rDISRC0 = (U32)IISFIFO; // Rx FIFO address
;;;362 rDISRCC0 = (1<<1)|(1<<0); //Src=APB,Fixed;
;;;363 rDIDST0 = (U32)(recBuf[indexRecBuf++]);
;;;364 rDIDSTC0 = (0<<1)|(0<<0); //DSt=AHB,Increment
;;;365 rDCON0 = (1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(2<<24)|(1<<23)|(0<<22)|(1<<20)|(AUDIO_BUF_SIZE);
;;;366 //handshake,Sync=APB,IntEn,unit,single,dst=I2SSDI,HwReqMode,AutoReload,Halfword,
;;;367 rDMASKTRIG0 = (1<<1); //DMA1En
;;;368
;;;369 rIISFCON|=(1<<12); //RxFifoEn
;;;370 rIISCON|=(1<<4); //RxDmaServiceRequestEn
;;;371
;;;372 while((rDSTAT0&0xFFFFF) == 0);
;;;373
;;;374 rDIDST0 = (U32)(recBuf[indexRecBuf++]);
;;;375
;;;376 //IIS will start to work.
;;;377 }
|L1.1012|
0003f4 e8bd8008 LDMFD sp!,{r3,pc}
|L1.1016|
0003f8 e28f0f42 ADR r0,|L1.1288| ;355
0003fc ebfffffe BL _printf ;355
000400 e3a00000 MOV r0,#0 ;356
000404 e51f1038 LDR r1,|L1.980| ;356
000408 e5810000 STR r0,[r1,#0] ;356 ; stopRec
00040c e3a00001 MOV r0,#1 ;357
000410 e51f11cc LDR r1,|L1.588| ;357
000414 e5810000 STR r0,[r1,#0] ;357 ; audioInActive
000418 e3a00000 MOV r0,#0 ;358
00041c e59f10f8 LDR r1,|L1.1308| ;358
000420 e5810000 STR r0,[r1,#0] ;358 ; indexRecBuf
000424 e51f0090 LDR r0,|L1.924| ;361
000428 e59f10f0 LDR r1,|L1.1312| ;361
00042c e5810000 STR r0,[r1,#0] ;361
000430 e3a00003 MOV r0,#3 ;362
000434 e1c11000 BIC r1,r1,r0 ;362
000438 e5810004 STR r0,[r1,#4] ;362
00043c e59f00d8 LDR r0,|L1.1308| ;363
000440 e5900000 LDR r0,[r0,#0] ;363 ; indexRecBuf
000444 e2801001 ADD r1,r0,#1 ;363
000448 e59f00cc LDR r0,|L1.1308| ;363
00044c e5902000 LDR r2,[r0,#0] ;363 ; indexRecBuf
000450 e5801000 STR r1,[r0,#0] ;363 ; indexRecBuf
000454 e3a0007d MOV r0,#0x7d ;363
000458 e0010290 MUL r1,r0,r2 ;363
00045c e51f01ec LDR r0,|L1.632| ;363
000460 e5900000 LDR r0,[r0,#0] ;363 ; recBuf
000464 e0800201 ADD r0,r0,r1,LSL #4 ;363
000468 e59f10b0 LDR r1,|L1.1312| ;363
00046c e5810008 STR r0,[r1,#8] ;363
000470 e3a00000 MOV r0,#0 ;364
000474 e1c11000 BIC r1,r1,r0 ;364
000478 e581000c STR r0,[r1,#0xc] ;364
00047c e59f00a0 LDR r0,|L1.1316| ;365
000480 e1c11000 BIC r1,r1,r0 ;365
000484 e5810010 STR r0,[r1,#0x10] ;365
000488 e3a00002 MOV r0,#2 ;367
00048c e1c11000 BIC r1,r1,r0 ;367
000490 e5810020 STR r0,[r1,#0x20] ;367
000494 e2810643 ADD r0,r1,#0x4300000 ;369
000498 e590000c LDR r0,[r0,#0xc] ;369
00049c e3800d40 ORR r0,r0,#0x1000 ;369
0004a0 e2811643 ADD r1,r1,#0x4300000 ;369
0004a4 e581000c STR r0,[r1,#0xc] ;369
0004a8 e1a00001 MOV r0,r1 ;370
0004ac e5900000 LDR r0,[r0,#0] ;370
0004b0 e3800010 ORR r0,r0,#0x10 ;370
0004b4 e5810000 STR r0,[r1,#0] ;370
0004b8 e1a00000 NOP ;372
|L1.1212|
0004bc e59f005c LDR r0,|L1.1312| ;372
0004c0 e5900014 LDR r0,[r0,#0x14] ;372
0004c4 e1a00600 MOV r0,r0,LSL #12 ;372
0004c8 e1b00620 MOVS r0,r0,LSR #12 ;372
0004cc 0afffffa BEQ |L1.1212| ;372
0004d0 e59f0044 LDR r0,|L1.1308| ;374
0004d4 e5900000 LDR r0,[r0,#0] ;374 ; indexRecBuf
0004d8 e2801001 ADD r1,r0,#1 ;374
0004dc e59f0038 LDR r0,|L1.1308| ;374
0004e0 e5902000 LDR r2,[r0,#0] ;374 ; indexRecBuf
0004e4 e5801000 STR r1,[r0,#0] ;374 ; indexRecBuf
0004e8 e3a0007d MOV r0,#0x7d ;374
0004ec e0010290 MUL r1,r0,r2 ;374
0004f0 e51f0280 LDR r0,|L1.632| ;374
0004f4 e5900000 LDR r0,[r0,#0] ;374 ; recBuf
0004f8 e0800201 ADD r0,r0,r1,LSL #4 ;374
0004fc e59f101c LDR r1,|L1.1312| ;374
000500 e5810008 STR r0,[r1,#8] ;374
000504 eaffffba B |L1.1012|
|L1.1288|
000508 6475415b DCB "[Aud"
00050c 6e496f69 DCB "ioIn"
000510 61745320 DCB " Sta"
000514 0a5d7472 DCB "rt]\n"
000518 00000000 DCB "\0\0\0\0"
|L1.1308|
00051c 00000018 DCD ||.bss$2|| + 24
|L1.1312|
000520 40400000 DCD 0x40400000
|L1.1316|
000524 a29003e8 DCD 0xa29003e8
ENDP
AudioOutRandom PROC
;;;277 void AudioOutRandom(void)
;;;278 {
000528 e92d4008 STMFD sp!,{r3,lr}
;;;279 static state=0;
;;;280 if( (rand()/(RAND_MAX/2000000)) < 1 )
00052c ebfffffe BL rand
000530 e250ce40 SUBS r12,r0,#0x400
000534 a25cc031 SUBGES r12,r12,#0x31
000538 aa00001a BGE |L1.1448|
;;;281 {
;;;282 switch(state++)
00053c e59f00f8 LDR r0,|L1.1596|
000540 e5900000 LDR r0,[r0,#0] ; state@AudioOutRandom_0
000544 e2801001 ADD r1,r0,#1
000548 e59f20ec LDR r2,|L1.1596|
00054c e3500000 CMP r0,#0
000550 e5821000 STR r1,[r2,#0] ; state@AudioOutRandom_0
000554 0a000004 BEQ |L1.1388|
000558 e3500001 CMP r0,#1
00055c 0a000007 BEQ |L1.1408|
000560 e3500002 CMP r0,#2
000564 1a00000e BNE |L1.1444|
000568 ea000008 B |L1.1424|
;;;283 {
;;;284 case 0:
;;;285 AudioOutStart();
|L1.1388|
00056c ebfffffe BL AudioOutStart
;;;286 state=1;
000570 e3a00001 MOV r0,#1
000574 e59f10c0 LDR r1,|L1.1596|
000578 e5810000 STR r0,[r1,#0] ; state@AudioOutRandom_0
;;;287 break;
00057c ea000009 B |L1.1448|
;;;288 case 1:
;;;289 state=2;
|L1.1408|
000580 e3a00002 MOV r0,#2
000584 e59f10b0 LDR r1,|L1.1596|
000588 e5810000 STR r0,[r1,#0] ; state@AudioOutRandom_0
;;;290 break;
00058c ea000005 B |L1.1448|
;;;291 case 2:
;;;292 AudioOutStop();
|L1.1424|
000590 ebfffffe BL AudioOutStop
;;;293 state=0;
000594 e3a00000 MOV r0,#0
000598 e59f109c LDR r1,|L1.1596|
00059c e5810000 STR r0,[r1,#0] ; state@AudioOutRandom_0
;;;294 break;
0005a0 ea000000 B |L1.1448|
;;;295 default:
;;;296 break;
|L1.1444|
0005a4 e1a00000 NOP
;;;297 }
;;;298 }
;;;299 }
|L1.1448|
0005a8 e8bd8008 LDMFD sp!,{r3,pc}
ENDP
IsrAudioMute PROC
;;;449 void __irq IsrAudioMute(void)
;;;450 {
0005ac e92d500f STMFD sp!,{r0-r3,r12,lr}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -