📄 iis.txt
字号:
ENDP
_WrL3Addr PROC
;;;551 void _WrL3Addr(U8 data)
;;;552 {
0002c8 e59f3348 LDR r3,|L1.1560|
;;;553 S32 i,j;
;;;554
;;;555 rGPDAT = rGPDAT & ~(L3D | L3M | L3C) | L3C; //L3D=L, L3M=L(in address mode), L3C=H
0002cc e593300c LDR r3,[r3,#0xc]
0002d0 e3c33be0 BIC r3,r3,#0x38000
0002d4 e3833b40 ORR r3,r3,#0x10000
0002d8 e59fc338 LDR r12,|L1.1560|
0002dc e58c300c STR r3,[r12,#0xc]
;;;556
;;;557 for(j=0;j<4;j++); //tsu(L3) > 190ns
0002e0 e3a01000 MOV r1,#0
|L1.740|
0002e4 e3510004 CMP r1,#4
0002e8 aa000001 BGE |L1.756|
0002ec e2811001 ADD r1,r1,#1
0002f0 eafffffb B |L1.740|
;;;558
;;;559 for(i=0;i<8;i++) //LSB first
|L1.756|
0002f4 e3a02000 MOV r2,#0
|L1.760|
0002f8 e3520008 CMP r2,#8
0002fc aa00003e BGE |L1.1020|
000300 ea000001 B |L1.780|
|L1.772|
000304 e2822001 ADD r2,r2,#1
000308 eafffffa B |L1.760|
;;;560 {
;;;561 if(data & 0x1) //If data's LSB is 'H'
|L1.780|
00030c e3100001 TST r0,#1
000310 0a00001b BEQ |L1.900|
;;;562 {
;;;563 rGPDAT &= ~L3C; //L3C=L
000314 e59f32fc LDR r3,|L1.1560|
000318 e593300c LDR r3,[r3,#0xc]
00031c e3c33b40 BIC r3,r3,#0x10000
000320 e59fc2f0 LDR r12,|L1.1560|
000324 e58c300c STR r3,[r12,#0xc]
;;;564 rGPDAT |= L3D; //L3D=H
000328 e1a0300c MOV r3,r12
00032c e593300c LDR r3,[r3,#0xc]
000330 e3833c80 ORR r3,r3,#0x8000
000334 e58c300c STR r3,[r12,#0xc]
;;;565
;;;566 for(j=0;j<4;j++); //tcy(L3) > 500ns
000338 e3a01000 MOV r1,#0
|L1.828|
00033c e3510004 CMP r1,#4
000340 aa000001 BGE |L1.844|
000344 e2811001 ADD r1,r1,#1
000348 eafffffb B |L1.828|
;;;567
;;;568 rGPDAT |= L3C; //L3C=H
|L1.844|
00034c e59f32c4 LDR r3,|L1.1560|
000350 e593300c LDR r3,[r3,#0xc]
000354 e3833b40 ORR r3,r3,#0x10000
000358 e59fc2b8 LDR r12,|L1.1560|
00035c e58c300c STR r3,[r12,#0xc]
;;;569 rGPDAT |= L3D; //L3D=H
000360 e1a0300c MOV r3,r12
000364 e593300c LDR r3,[r3,#0xc]
000368 e3833c80 ORR r3,r3,#0x8000
00036c e58c300c STR r3,[r12,#0xc]
;;;570
;;;571 for(j=0;j<4;j++); //tcy(L3) > 500ns
000370 e3a01000 MOV r1,#0
|L1.884|
000374 e3510004 CMP r1,#4
000378 aa00001d BGE |L1.1012|
00037c e2811001 ADD r1,r1,#1
000380 eafffffb B |L1.884|
;;;572 }
;;;573 else //If data's LSB is 'L'
;;;574 {
;;;575 rGPDAT &= ~L3C; //L3C=L
|L1.900|
000384 e59f328c LDR r3,|L1.1560|
000388 e593300c LDR r3,[r3,#0xc]
00038c e3c33b40 BIC r3,r3,#0x10000
000390 e59fc280 LDR r12,|L1.1560|
000394 e58c300c STR r3,[r12,#0xc]
;;;576 rGPDAT &= ~L3D; //L3D=L
000398 e1a0300c MOV r3,r12
00039c e593300c LDR r3,[r3,#0xc]
0003a0 e3c33c80 BIC r3,r3,#0x8000
0003a4 e58c300c STR r3,[r12,#0xc]
;;;577
;;;578 for(j=0;j<4;j++); //tcy(L3) > 500ns
0003a8 e3a01000 MOV r1,#0
|L1.940|
0003ac e3510004 CMP r1,#4
0003b0 aa000001 BGE |L1.956|
0003b4 e2811001 ADD r1,r1,#1
0003b8 eafffffb B |L1.940|
;;;579
;;;580 rGPDAT |= L3C; //L3C=H
|L1.956|
0003bc e59f3254 LDR r3,|L1.1560|
0003c0 e593300c LDR r3,[r3,#0xc]
0003c4 e3833b40 ORR r3,r3,#0x10000
0003c8 e59fc248 LDR r12,|L1.1560|
0003cc e58c300c STR r3,[r12,#0xc]
;;;581 rGPDAT &= ~L3D; //L3D=L
0003d0 e1a0300c MOV r3,r12
0003d4 e593300c LDR r3,[r3,#0xc]
0003d8 e3c33c80 BIC r3,r3,#0x8000
0003dc e58c300c STR r3,[r12,#0xc]
;;;582
;;;583 for(j=0;j<4;j++); //tcy(L3) > 500ns
0003e0 e3a01000 MOV r1,#0
|L1.996|
0003e4 e3510004 CMP r1,#4
0003e8 aa000001 BGE |L1.1012|
0003ec e2811001 ADD r1,r1,#1
0003f0 eafffffb B |L1.996|
;;;584 }
;;;585 data >>= 1;
|L1.1012|
0003f4 e1a000a0 MOV r0,r0,LSR #1
;;;586 }
0003f8 eaffffc1 B |L1.772|
;;;587 rGPDAT = rGPDAT & ~(L3D | L3M | L3C) | (L3C | L3M); //L3M=H,L3C=H
|L1.1020|
0003fc e59f3214 LDR r3,|L1.1560|
000400 e593300c LDR r3,[r3,#0xc]
000404 e3c33be0 BIC r3,r3,#0x38000
000408 e3833bc0 ORR r3,r3,#0x30000
00040c e59fc204 LDR r12,|L1.1560|
000410 e58c300c STR r3,[r12,#0xc]
;;;588 }
000414 e12fff1e BX lr
ENDP
Init1341 PROC
;;;449 void Init1341(char mode)
;;;450 {
000418 e92d4010 STMFD sp!,{r4,lr}
00041c e1a04000 MOV r4,r0
;;;451 //Port Initialize
;;;452 //----------------------------------------------------------
;;;453 // GPCON_M GROUP
;;;454 //Ports : GP17 GP16 GP15
;;;455 //Signal : L3MODE L3CLOCK L3DATA
;;;456 //Setting: OUTPUT OUTPUT OUTPUT
;;;457 // [13:12] [11:10] [9:8]
;;;458 //Binary : 01 , 01 01
;;;459 //----------------------------------------------------------
;;;460 rGPDAT = rGPDAT & ~(L3M|L3C|L3D) |(L3M|L3C); //Start condition : L3M=H, L3C=H
000420 e59f01f0 LDR r0,|L1.1560|
000424 e590000c LDR r0,[r0,#0xc]
000428 e3c00be0 BIC r0,r0,#0x38000
00042c e3800bc0 ORR r0,r0,#0x30000
000430 e59f11e0 LDR r1,|L1.1560|
000434 e581000c STR r0,[r1,#0xc]
;;;461 rGPPU = rGPPU & ~(0x7<<15) |(0x7<<15); //The pull up function is disabled GPUP[17:15] 0011 1000 0000 0000 0000
000438 e1a00001 MOV r0,r1
00043c e5900010 LDR r0,[r0,#0x10]
000440 e3800be0 ORR r0,r0,#0x38000
000444 e5810010 STR r0,[r1,#0x10]
;;;462 rGPCON_M = rGPCON_M & ~(0x3f<<8) |(0x15<<8); //GPCON_M[13:8]=Output(L3MODE):Output(L3CLOCK):Output(L3DATA)
000448 e1a00001 MOV r0,r1
00044c e5900004 LDR r0,[r0,#4]
000450 e3c00dfc BIC r0,r0,#0x3f00
000454 e3800d54 ORR r0,r0,#0x1500
000458 e5810004 STR r0,[r1,#4]
;;;463
;;;464 //384fs L3 Interface
;;;465 _WrL3Addr(0x14 + 2); //STATUS (000101xx+10)
00045c e3a00016 MOV r0,#0x16
000460 ebfffffe BL _WrL3Addr
;;;466 _WrL3Data(0x50,0); //0,1,01,000,0 : Reset,384fs,no DCfilter,iis
000464 e3a01000 MOV r1,#0
000468 e3a00050 MOV r0,#0x50
00046c ebfffffe BL _WrL3Data
;;;467
;;;468 _WrL3Addr(0x14 + 2); //STATUS (000101xx+10)
000470 e3a00016 MOV r0,#0x16
000474 ebfffffe BL _WrL3Addr
;;;469 _WrL3Data(0x10,0); //0,0,01,000,0 : No reset,384fs,no DCfilter,iis
000478 e3a01000 MOV r1,#0
00047c e3a00010 MOV r0,#0x10
000480 ebfffffe BL _WrL3Data
;;;470 /*
;;;471 //256fs L3 Interface
;;;472 _WrL3Addr(0x14 + 2); //STATUS (000101xx+10)
;;;473 _WrL3Data(0x60,0); //0,1,10,000,0 : Reset,256fs,no DCfilter,iis
;;;474
;;;475 _WrL3Addr(0x14 + 2); //STATUS (000101xx+10)
;;;476 _WrL3Data(0x20,0); //0,0,10,000,0 : No reset,256fs,no DCfilter,iis
;;;477 */
;;;478 _WrL3Addr(0x14 + 2); //STATUS (000101xx+10)
000484 e3a00016 MOV r0,#0x16
000488 ebfffffe BL _WrL3Addr
;;;479 _WrL3Data(0x81,0); // 1,0,0,0,0,0,01 : OGS=0,IGS=0,ADC_NI,DAC_NI,sngl speed,AoffDon
00048c e3a01000 MOV r1,#0
000490 e3a00081 MOV r0,#0x81
000494 ebfffffe BL _WrL3Data
;;;480
;;;481 //record
;;;482 if(mode)
000498 e3540000 CMP r4,#0
00049c 0a00000c BEQ |L1.1236|
;;;483 {
;;;484 _WrL3Addr(0x14 + 2); //STATUS (000101xx+10)
0004a0 e3a00016 MOV r0,#0x16
0004a4 ebfffffe BL _WrL3Addr
;;;485 _WrL3Data(0xa2,0); // 1,0,1,0,0,0,10 : OGS=0,IGS=1,ADC_NI,DAC_NI,sngl speed,AonDoff
0004a8 e3a01000 MOV r1,#0
0004ac e3a000a2 MOV r0,#0xa2
0004b0 ebfffffe BL _WrL3Data
;;;486
;;;487 _WrL3Addr(0x14 + 0); //DATA0 (000101xx+00)
0004b4 e3a00014 MOV r0,#0x14
0004b8 ebfffffe BL _WrL3Addr
;;;488 _WrL3Data(0xc2,0); //11000,010 : DATA0, Extended addr(010)
0004bc e3a01000 MOV r1,#0
0004c0 e3a000c2 MOV r0,#0xc2
0004c4 ebfffffe BL _WrL3Data
;;;489 _WrL3Data(0x4d,0); //010,011,01 : DATA0, MS=9dB, Ch1=on Ch2=off,
0004c8 e3a01000 MOV r1,#0
0004cc e3a0004d MOV r0,#0x4d
0004d0 ebfffffe BL _WrL3Data
;;;490
;;;491 // _WrL3Addr(0x14 + 0); //DATA0 (000101xx+00)
;;;492 // _WrL3Data(0xa4,0); //10,1,10,0,00 : after, 44.1KHz de-emp, no mute, flat
;;;493
;;;494 // _WrL3Data(0x4c,0); //010,011,00 : DATA0, MS=9dB, DD Mode,
;;;495 // _WrL3Data(0x4e,0); //010,011,10 : DATA0, MS=9dB, Ch1=off Ch2=on,
;;;496 // _WrL3Data(0xaf,0);
;;;497 // _WrL3Data(0x4f,0); //010,011,11 : DATA0, MS=9dB, Mixer Mode,
;;;498 }
;;;499 }
|L1.1236|
0004d4 e8bd8010 LDMFD sp!,{r4,pc}
ENDP
IIS_Muting PROC
;;;679 void __irq IIS_Muting(void)
;;;680 {
0004d8 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;681
;;;682 if(rEINTPEND==(1<<0))
0004dc e59f0134 LDR r0,|L1.1560|
0004e0 e5900038 LDR r0,[r0,#0x38]
0004e4 e3500001 CMP r0,#1
0004e8 1a000003 BNE |L1.1276|
;;;683 {
;;;684 //Delay(1000); For Key bouncing protect!!
;;;685 //Uart_Printf("EINT0 interrupt is occured\n");
;;;686 rEINTPEND=(1<<0);
0004ec e3a00001 MOV r0,#1
0004f0 e59f1120 LDR r1,|L1.1560|
0004f4 e5810038 STR r0,[r1,#0x38]
0004f8 ea000011 B |L1.1348|
;;;687 }
;;;688 else if(rEINTPEND==(1<<1))
|L1.1276|
0004fc e59f0114 LDR r0,|L1.1560|
000500 e5900038 LDR r0,[r0,#0x38]
000504 e3500002 CMP r0,#2
000508 1a000005 BNE |L1.1316|
;;;689 {
;;;690 Uart_Printf("EINT1 interrupt is occured\n");
00050c e28f0f42 ADR r0,|L1.1564|
000510 ebfffffe BL _printf
;;;691 rEINTPEND=(1<<1);
000514 e3a00002 MOV r0,#2
000518 e59f10f8 LDR r1,|L1.1560|
00051c e5810038 STR r0,[r1,#0x38]
000520 ea000007 B |L1.1348|
;;;692 }
;;;693 else
;;;694 {
;;;695 Uart_Printf("rEINTPEND=%x\n",rEINTPEND);
|L1.1316|
000524 e59f00ec LDR r0,|L1.1560|
000528 e5900038 LDR r0,[r0,#0x38]
00052c e1a01000 MOV r1,r0
000530 e28f0f40 ADR r0,|L1.1592|
000534 ebfffffe BL _printf
;;;696 rEINTPEND=((1<<0)|(1<<1));
000538 e3a00003 MOV r0,#3
00053c e59f10d4 LDR r1,|L1.1560|
000540 e5810038 STR r0,[r1,#0x38]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -