⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iis.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                          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 + -