📄 iis_dual.txt
字号:
;;;252 //Init DMA Ch 2
;;;253 rDISRC2 = (U32)(playBuf[indexPlayBuf++]);
;;;254
;;;255 rDISRCC2 = (0<<1)|(0<<0); //Src=AHB,Increment
;;;256 rDIDST2 = (U32)IISFIFO; // Tx FIFO address
;;;257 rDIDSTC2 = (1<<1)|(1<<0); //Dst=APB,Fixed;
;;;258 rDCON2 = (1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(0<<24)|(1<<23)|(1<<22)|(1<<20)|(AUDIO_BUF_SIZE);
;;;259 //handshake,Sync=APB,IntEn,unit,single,dst=I2SSDO,HwReqMode,NoAutoReload,Halfword,
;;;260 rDMASKTRIG2 = (1<<1); //DMA2En
;;;261
;;;262
;;;263 //IIS will start to work.
;;;264 }
|L1.716|
0002cc e8bd8008 LDMFD sp!,{r3,pc}
|L1.720|
0002d0 e28f00a4 ADR r0,|L1.892| ;247
0002d4 ebfffffe BL Uart_Printf ;247
0002d8 e3a00000 MOV r0,#0 ;248
0002dc e51f1038 LDR r1,|L1.684| ;248
0002e0 e5810000 STR r0,[r1,#0] ;248 ; stopPlay
0002e4 e3a00001 MOV r0,#1 ;249
0002e8 e59f1080 LDR r1,|L1.880| ;249
0002ec e5810000 STR r0,[r1,#0] ;249 ; audioOutActive
0002f0 e3a00000 MOV r0,#0 ;250
0002f4 e59f1094 LDR r1,|L1.912| ;250
0002f8 e5810000 STR r0,[r1,#0] ;250 ; indexPlayBuf
0002fc e59f008c LDR r0,|L1.912| ;253
000300 e5900000 LDR r0,[r0,#0] ;253 ; indexPlayBuf
000304 e2801001 ADD r1,r0,#1 ;253
000308 e59f0080 LDR r0,|L1.912| ;253
00030c e5902000 LDR r2,[r0,#0] ;253 ; indexPlayBuf
000310 e5801000 STR r1,[r0,#0] ;253 ; indexPlayBuf
000314 e3a0007d MOV r0,#0x7d ;253
000318 e0010290 MUL r1,r0,r2 ;253
00031c e51f00ac LDR r0,|L1.632| ;253
000320 e5900000 LDR r0,[r0,#0] ;253 ; playBuf
000324 e0800201 ADD r0,r0,r1,LSL #4 ;253
000328 e3a0144b MOV r1,#0x4b000000 ;253
00032c e5810080 STR r0,[r1,#0x80] ;253
000330 e3a00000 MOV r0,#0 ;255
000334 e3a0144b MOV r1,#0x4b000000 ;255
000338 e5810084 STR r0,[r1,#0x84] ;255
00033c e59f0050 LDR r0,|L1.916| ;256
000340 e3a0144b MOV r1,#0x4b000000 ;256
000344 e5810088 STR r0,[r1,#0x88] ;256
000348 e3a00003 MOV r0,#3 ;257
00034c e3a0144b MOV r1,#0x4b000000 ;257
000350 e581008c STR r0,[r1,#0x8c] ;257
000354 e59f003c LDR r0,|L1.920| ;258
000358 e3a0144b MOV r1,#0x4b000000 ;258
00035c e5810090 STR r0,[r1,#0x90] ;258
000360 e3a00002 MOV r0,#2 ;260
000364 e3a0144b MOV r1,#0x4b000000 ;260
000368 e58100a0 STR r0,[r1,#0xa0] ;260
00036c eaffffd6 B |L1.716|
|L1.880|
000370 00000028 DCD ||.bss$2|| + 40
|L1.884|
000374 412f4e5b DCB "[N/A"
000378 0000005d DCB "]\0\0\0"
|L1.892|
00037c 6475415b DCB "[Aud"
000380 754f6f69 DCB "ioOu"
000384 74532074 DCB "t St"
000388 5d747261 DCB "art]"
00038c 0000000a DCB "\n\0\0\0"
|L1.912|
000390 00000018 DCD ||.bss$2|| + 24
|L1.916|
000394 55000010 DCD 0x55000010
|L1.920|
000398 a0d003e8 DCD 0xa0d003e8
ENDP
AudioInStop PROC
;;;386 void AudioInStop(void)
;;;387 {
00039c e92d4008 STMFD sp!,{r3,lr}
;;;388 Uart_Printf("\n[AudioIn Stop]\n");
0003a0 e28f0010 ADR r0,|L1.952|
0003a4 ebfffffe BL Uart_Printf
;;;389 stopRec=TRUE;
0003a8 e3a00001 MOV r0,#1
0003ac e59f1018 LDR r1,|L1.972|
0003b0 e5810000 STR r0,[r1,#0] ; stopRec
;;;390 }
0003b4 e8bd8008 LDMFD sp!,{r3,pc}
|L1.952|
0003b8 75415b0a DCB "\n[Au"
0003bc 496f6964 DCB "dioI"
0003c0 7453206e DCB "n St"
0003c4 0a5d706f DCB "op]\n"
0003c8 00000000 DCB "\0\0\0\0"
|L1.972|
0003cc 00000024 DCD ||.bss$2|| + 36
ENDP
AudioInStart PROC
;;;351 void AudioInStart(void)
;;;352 {
0003d0 e92d4008 STMFD sp!,{r3,lr}
;;;353 if(audioInActive!=FALSE)
0003d4 e51f0194 LDR r0,|L1.584|
0003d8 e5900000 LDR r0,[r0,#0] ; audioInActive
0003dc e3500000 CMP r0,#0
0003e0 0a000002 BEQ |L1.1008|
;;;354 {
;;;355 Uart_Printf("[N/A]");
0003e4 e24f0078 ADR r0,|L1.884|
0003e8 ebfffffe BL Uart_Printf
;;;356 return;
;;;357 }
;;;358
;;;359 Uart_Printf("[AudioIn Start]\n");
;;;360 stopRec=FALSE;
;;;361 audioInActive=TRUE;
;;;362 indexRecBuf=0;
;;;363
;;;364 //Init DMA Ch 1
;;;365 rDISRC1 = (U32)IISFIFO; // Rx FIFO address
;;;366 rDISRCC1 = (1<<1)|(1<<0); //Src=APB,Fixed;
;;;367 rDIDST1 = (U32)(recBuf[indexRecBuf++]);
;;;368 rDIDSTC1 = (0<<1)|(0<<0); //DSt=AHB,Increment
;;;369 rDCON1 = (1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(2<<24)|(1<<23)|(0<<22)|(1<<20)|(AUDIO_BUF_SIZE);
;;;370 //handshake,Sync=APB,IntEn,unit,single,dst=I2SSDI,HwReqMode,AutoReload,Halfword,
;;;371 rDMASKTRIG1 = (1<<1); //DMA1En
;;;372
;;;373 rIISFCON|=(1<<12); //RxFifoEn
;;;374 rIISCON|=(1<<4); //RxDmaServiceRequestEn
;;;375
;;;376 while((rDSTAT1&0xFFFFF) == 0);
;;;377
;;;378 rDIDST1 = (U32)(recBuf[indexRecBuf++]);
;;;379
;;;380 //IIS will start to work.
;;;381 }
|L1.1004|
0003ec e8bd8008 LDMFD sp!,{r3,pc}
|L1.1008|
0003f0 e28f0f43 ADR r0,|L1.1284| ;359
0003f4 ebfffffe BL Uart_Printf ;359
0003f8 e3a00000 MOV r0,#0 ;360
0003fc e51f1038 LDR r1,|L1.972| ;360
000400 e5810000 STR r0,[r1,#0] ;360 ; stopRec
000404 e3a00001 MOV r0,#1 ;361
000408 e51f11c8 LDR r1,|L1.584| ;361
00040c e5810000 STR r0,[r1,#0] ;361 ; audioInActive
000410 e3a00000 MOV r0,#0 ;362
000414 e59f10fc LDR r1,|L1.1304| ;362
000418 e5810000 STR r0,[r1,#0] ;362 ; indexRecBuf
00041c e51f0090 LDR r0,|L1.916| ;365
000420 e3a0144b MOV r1,#0x4b000000 ;365
000424 e5810040 STR r0,[r1,#0x40] ;365
000428 e3a00003 MOV r0,#3 ;366
00042c e3a0144b MOV r1,#0x4b000000 ;366
000430 e5810044 STR r0,[r1,#0x44] ;366
000434 e59f00dc LDR r0,|L1.1304| ;367
000438 e5900000 LDR r0,[r0,#0] ;367 ; indexRecBuf
00043c e2801001 ADD r1,r0,#1 ;367
000440 e59f00d0 LDR r0,|L1.1304| ;367
000444 e5902000 LDR r2,[r0,#0] ;367 ; indexRecBuf
000448 e5801000 STR r1,[r0,#0] ;367 ; indexRecBuf
00044c e3a0007d MOV r0,#0x7d ;367
000450 e0010290 MUL r1,r0,r2 ;367
000454 e51f01e8 LDR r0,|L1.628| ;367
000458 e5900000 LDR r0,[r0,#0] ;367 ; recBuf
00045c e0800201 ADD r0,r0,r1,LSL #4 ;367
000460 e3a0144b MOV r1,#0x4b000000 ;367
000464 e5810048 STR r0,[r1,#0x48] ;367
000468 e3a00000 MOV r0,#0 ;368
00046c e3a0144b MOV r1,#0x4b000000 ;368
000470 e581004c STR r0,[r1,#0x4c] ;368
000474 e59f00a0 LDR r0,|L1.1308| ;369
000478 e3a0144b MOV r1,#0x4b000000 ;369
00047c e5810050 STR r0,[r1,#0x50] ;369
000480 e3a00002 MOV r0,#2 ;371
000484 e3a0144b MOV r1,#0x4b000000 ;371
000488 e5810060 STR r0,[r1,#0x60] ;371
00048c e3a00455 MOV r0,#0x55000000 ;373
000490 e590000c LDR r0,[r0,#0xc] ;373
000494 e3800d40 ORR r0,r0,#0x1000 ;373
000498 e3a01455 MOV r1,#0x55000000 ;373
00049c e581000c STR r0,[r1,#0xc] ;373
0004a0 e3a00455 MOV r0,#0x55000000 ;374
0004a4 e5900000 LDR r0,[r0,#0] ;374
0004a8 e3800010 ORR r0,r0,#0x10 ;374
0004ac e3a01455 MOV r1,#0x55000000 ;374
0004b0 e5810000 STR r0,[r1,#0] ;374
0004b4 e1a00000 NOP ;376
|L1.1208|
0004b8 e3a0044b MOV r0,#0x4b000000 ;376
0004bc e5900054 LDR r0,[r0,#0x54] ;376
0004c0 e1a00600 MOV r0,r0,LSL #12 ;376
0004c4 e1b00620 MOVS r0,r0,LSR #12 ;376
0004c8 0afffffa BEQ |L1.1208| ;376
0004cc e59f0044 LDR r0,|L1.1304| ;378
0004d0 e5900000 LDR r0,[r0,#0] ;378 ; indexRecBuf
0004d4 e2801001 ADD r1,r0,#1 ;378
0004d8 e59f0038 LDR r0,|L1.1304| ;378
0004dc e5902000 LDR r2,[r0,#0] ;378 ; indexRecBuf
0004e0 e5801000 STR r1,[r0,#0] ;378 ; indexRecBuf
0004e4 e3a0007d MOV r0,#0x7d ;378
0004e8 e0010290 MUL r1,r0,r2 ;378
0004ec e51f0280 LDR r0,|L1.628| ;378
0004f0 e5900000 LDR r0,[r0,#0] ;378 ; recBuf
0004f4 e0800201 ADD r0,r0,r1,LSL #4 ;378
0004f8 e3a0144b MOV r1,#0x4b000000 ;378
0004fc e5810048 STR r0,[r1,#0x48] ;378
000500 eaffffb9 B |L1.1004|
|L1.1284|
000504 6475415b DCB "[Aud"
000508 6e496f69 DCB "ioIn"
00050c 61745320 DCB " Sta"
000510 0a5d7472 DCB "rt]\n"
000514 00000000 DCB "\0\0\0\0"
|L1.1304|
000518 0000001c DCD ||.bss$2|| + 28
|L1.1308|
00051c a29003e8 DCD 0xa29003e8
ENDP
AudioOutRandom PROC
;;;276 void AudioOutRandom(void)
;;;277 {
000520 e92d4008 STMFD sp!,{r3,lr}
;;;278 static state=0, cnt=0;
;;;279
;;;280 #if ADS10==TRUE
;;;281 if( (rand()/(RAND_MAX/2000000)) < 1 )
000524 ebfffffe BL rand
000528 e250ce40 SUBS r12,r0,#0x400
00052c a25cc031 SUBGES r12,r12,#0x31
000530 aa00001a BGE |L1.1440|
;;;282 #else
;;;283 if(cnt++%2)
;;;284 #endif
;;;285 {
;;;286 switch(state++)
000534 e59f00f8 LDR r0,|L1.1588|
000538 e5900000 LDR r0,[r0,#0] ; state@AudioOutRandom_0
00053c e2801001 ADD r1,r0,#1
000540 e59f20ec LDR r2,|L1.1588|
000544 e3500000 CMP r0,#0
000548 e5821000 STR r1,[r2,#0] ; state@AudioOutRandom_0
00054c 0a000004 BEQ |L1.1380|
000550 e3500001 CMP r0,#1
000554 0a000007 BEQ |L1.1400|
000558 e3500002 CMP r0,#2
00055c 1a00000e BNE |L1.1436|
000560 ea000008 B |L1.1416|
;;;287 {
;;;288 case 0:
;;;289 AudioOutStart();
|L1.1380|
000564 ebfffffe BL AudioOutStart
;;;290 state=1;
000568 e3a00001 MOV r0,#1
00056c e59f10c0 LDR r1,|L1.1588|
000570 e5810000 STR r0,[r1,#0] ; state@AudioOutRandom_0
;;;291 break;
000574 ea000009 B |L1.1440|
;;;292 case 1:
;;;293 state=2;
|L1.1400|
000578 e3a00002 MOV r0,#2
00057c e59f10b0 LDR r1,|L1.1588|
000580 e5810000 STR r0,[r1,#0] ; state@AudioOutRandom_0
;;;294 break;
000584 ea000005 B |L1.1440|
;;;295 case 2:
;;;296 AudioOutStop();
|L1.1416|
000588 ebfffffe BL AudioOutStop
;;;297 state=0;
00058c e3a00000 MOV r0,#0
000590 e59f109c LDR r1,|L1.1588|
000594 e5810000 STR r0,[r1,#0] ; state@AudioOutRandom_0
;;;298 break;
000598 ea000000 B |L1.1440|
;;;299 default:
;;;300 break;
|L1.1436|
00059c e1a00000 NOP
;;;301 }
;;;302 }
;;;303 }
|L1.1440|
0005a0 e8bd8008 LDMFD sp!,{r3,pc}
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -