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

📄 iis.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]

; commandline [-errors .\err\iis.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Ch14_IIS PROC
;;;71     void Ch14_IIS(void)
;;;72     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;73     	int i;
;;;74     	
;;;75     	Uart_Printf("\n======  IIS Controller Test program start ======\n");
000004  e28f00b0          ADR      r0,|L1.188|
000008  ebfffffe          BL       _printf
;;;76     		
;;;77     	while(1)
00000c  e1a00000          NOP      
                  |L1.16|
000010  e1a00000          NOP      
;;;78     	{
;;;79     		i=0;
000014  e3a04000          MOV      r4,#0
;;;80     		Uart_Printf("\n\n");
000018  e28f00d0          ADR      r0,|L1.240|
00001c  ebfffffe          BL       _printf
;;;81     		while(1)
000020  e1a00000          NOP      
                  |L1.36|
000024  e1a00000          NOP      
;;;82     		{   //display menu
;;;83     			Uart_Printf("%2d:%s",i,func_iis_test[i][1]);
000028  e59f00c4          LDR      r0,|L1.244|
00002c  e0800184          ADD      r0,r0,r4,LSL #3
000030  e1a01004          MOV      r1,r4
000034  e5902004          LDR      r2,[r0,#4]
000038  e28f00b8          ADR      r0,|L1.248|
00003c  ebfffffe          BL       _printf
;;;84     			i++;
000040  e2844001          ADD      r4,r4,#1
;;;85     			if((int)(func_iis_test[i][0])==0)
000044  e59f00a8          LDR      r0,|L1.244|
000048  e7900184          LDR      r0,[r0,r4,LSL #3]
00004c  e3500000          CMP      r0,#0
000050  1a000002          BNE      |L1.96|
;;;86     			{
;;;87     				Uart_Printf("\n");
000054  e28f00a4          ADR      r0,|L1.256|
000058  ebfffffe          BL       _printf
;;;88     				break;
00005c  ea000004          B        |L1.116|
;;;89     			}
;;;90     			if((i%4)==0)
                  |L1.96|
000060  e3140003          TST      r4,#3
000064  1a000001          BNE      |L1.112|
;;;91     			Uart_Printf("\n");
000068  e28f0090          ADR      r0,|L1.256|
00006c  ebfffffe          BL       _printf
;;;92     		}
                  |L1.112|
000070  eaffffeb          B        |L1.36|
;;;93     
;;;94     		Uart_Printf("\nPress Enter key to exit : ");
                  |L1.116|
000074  e28f0088          ADR      r0,|L1.260|
000078  ebfffffe          BL       _printf
;;;95     		i = Uart_GetIntNum();
00007c  ebfffffe          BL       Uart_GetIntNum
000080  e1a04000          MOV      r4,r0
;;;96     		if(i==-1) break;		// return.
000084  e3740001          CMN      r4,#1
000088  1a000000          BNE      |L1.144|
00008c  ea000007          B        |L1.176|
;;;97     		if(i>=0 && (i<((sizeof(func_iis_test)-1)/8)) )	// select and execute...
                  |L1.144|
000090  e3540000          CMP      r4,#0
000094  ba000004          BLT      |L1.172|
000098  e3540005          CMP      r4,#5
00009c  2a000002          BCS      |L1.172|
;;;98     			( (void (*)(void)) (func_iis_test[i][0]) )();
0000a0  e59f104c          LDR      r1,|L1.244|
0000a4  e7910184          LDR      r0,[r1,r4,LSL #3]
0000a8  e12fff30          BLX      r0
;;;99     	}
                  |L1.172|
0000ac  eaffffd7          B        |L1.16|
;;;100    	
;;;101    	Uart_Printf("\n====== IIS Controller Test program end ======\n");
                  |L1.176|
0000b0  e28f0068          ADR      r0,|L1.288|
0000b4  ebfffffe          BL       _printf
;;;102    }
0000b8  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.188|
0000bc  3d3d3d0a          DCB      "\n==="
0000c0  203d3d3d          DCB      "=== "
0000c4  53494920          DCB      " IIS"
0000c8  6e6f4320          DCB      " Con"
0000cc  6c6f7274          DCB      "trol"
0000d0  2072656c          DCB      "ler "
0000d4  74736554          DCB      "Test"
0000d8  6f727020          DCB      " pro"
0000dc  6d617267          DCB      "gram"
0000e0  61747320          DCB      " sta"
0000e4  3d207472          DCB      "rt ="
0000e8  3d3d3d3d          DCB      "===="
0000ec  00000a3d          DCB      "=\n\0\0"
                  |L1.240|
0000f0  00000a0a          DCB      "\n\n\0\0"
                  |L1.244|
0000f4  00000000          DCD      func_iis_test
                  |L1.248|
0000f8  3a643225          DCB      "%2d:"
0000fc  00007325          DCB      "%s\0\0"
                  |L1.256|
000100  0000000a          DCB      "\n\0\0\0"
                  |L1.260|
000104  6572500a          DCB      "\nPre"
000108  45207373          DCB      "ss E"
00010c  7265746e          DCB      "nter"
000110  79656b20          DCB      " key"
000114  206f7420          DCB      " to "
000118  74697865          DCB      "exit"
00011c  00203a20          DCB      " : \0"
                  |L1.288|
000120  3d3d3d0a          DCB      "\n==="
000124  203d3d3d          DCB      "=== "
000128  20534949          DCB      "IIS "
00012c  746e6f43          DCB      "Cont"
000130  6c6c6f72          DCB      "roll"
000134  54207265          DCB      "er T"
000138  20747365          DCB      "est "
00013c  676f7270          DCB      "prog"
000140  206d6172          DCB      "ram "
000144  20646e65          DCB      "end "
000148  3d3d3d3d          DCB      "===="
00014c  000a3d3d          DCB      "==\n\0"
                          ENDP

                  _WrL3Data PROC
;;;591    void _WrL3Data(U8 data,int halt)
;;;592    {
000150  e52de004          STR      lr,[sp,#-4]!
;;;593        S32 i,j;
;;;594    
;;;595        if(halt)
000154  e3510000          CMP      r1,#0
000158  0a00000a          BEQ      |L1.392|
;;;596        {
;;;597            rGPDAT  = rGPDAT & ~(L3D | L3M | L3C) | L3C;   //L3C=H(while tstp, L3 interface halt condition)        
00015c  e59fc4b4          LDR      r12,|L1.1560|
000160  e59cc00c          LDR      r12,[r12,#0xc]
000164  e3cccbe0          BIC      r12,r12,#0x38000
000168  e38ccb40          ORR      r12,r12,#0x10000
00016c  e59fe4a4          LDR      lr,|L1.1560|
000170  e58ec00c          STR      r12,[lr,#0xc]
;;;598            for(j=0;j<4;j++);                                //tstp(L3) > 190ns
000174  e3a02000          MOV      r2,#0
                  |L1.376|
000178  e3520004          CMP      r2,#4
00017c  aa000001          BGE      |L1.392|
000180  e2822001          ADD      r2,r2,#1
000184  eafffffb          B        |L1.376|
;;;599        }
;;;600    
;;;601        rGPDAT  = rGPDAT & ~(L3D | L3M | L3C) | (L3C | L3M);   //L3M=H(in data transfer mode)        
                  |L1.392|
000188  e59fc488          LDR      r12,|L1.1560|
00018c  e59cc00c          LDR      r12,[r12,#0xc]
000190  e3cccbe0          BIC      r12,r12,#0x38000
000194  e38ccbc0          ORR      r12,r12,#0x30000
000198  e59fe478          LDR      lr,|L1.1560|
00019c  e58ec00c          STR      r12,[lr,#0xc]
;;;602        for(j=0;j<4;j++);                                        //tsu(L3)D > 190ns
0001a0  e3a02000          MOV      r2,#0
                  |L1.420|
0001a4  e3520004          CMP      r2,#4
0001a8  aa000001          BGE      |L1.436|
0001ac  e2822001          ADD      r2,r2,#1
0001b0  eafffffb          B        |L1.420|
;;;603    
;;;604        for(i=0;i<8;i++)
                  |L1.436|
0001b4  e3a03000          MOV      r3,#0
                  |L1.440|
0001b8  e3530008          CMP      r3,#8
0001bc  aa00003a          BGE      |L1.684|
0001c0  ea000001          B        |L1.460|
                  |L1.452|
0001c4  e2833001          ADD      r3,r3,#1
0001c8  eafffffa          B        |L1.440|
;;;605        {
;;;606            if(data & 0x1)                   //if data's LSB is 'H'
                  |L1.460|
0001cc  e3100001          TST      r0,#1
0001d0  0a000017          BEQ      |L1.564|
;;;607            {
;;;608               rGPDAT &= ~L3C;              //L3C=L
0001d4  e59fc43c          LDR      r12,|L1.1560|
0001d8  e59cc00c          LDR      r12,[r12,#0xc]
0001dc  e3cccb40          BIC      r12,r12,#0x10000
0001e0  e59fe430          LDR      lr,|L1.1560|
0001e4  e58ec00c          STR      r12,[lr,#0xc]
;;;609               rGPDAT |= L3D;               //L3D=H
0001e8  e1a0c00e          MOV      r12,lr
0001ec  e59cc00c          LDR      r12,[r12,#0xc]
0001f0  e38ccc80          ORR      r12,r12,#0x8000
0001f4  e58ec00c          STR      r12,[lr,#0xc]
;;;610               
;;;611               for(j=0;j<4;j++);             //tcy(L3) > 500ns
0001f8  e3a02000          MOV      r2,#0
                  |L1.508|
0001fc  e3520004          CMP      r2,#4
000200  aa000001          BGE      |L1.524|
000204  e2822001          ADD      r2,r2,#1
000208  eafffffb          B        |L1.508|
;;;612               
;;;613               rGPDAT |= (L3C | L3D);       //L3C=H,L3D=H
                  |L1.524|
00020c  e59fc404          LDR      r12,|L1.1560|
000210  e59cc00c          LDR      r12,[r12,#0xc]
000214  e38ccb60          ORR      r12,r12,#0x18000
000218  e59fe3f8          LDR      lr,|L1.1560|
00021c  e58ec00c          STR      r12,[lr,#0xc]
;;;614               
;;;615               for(j=0;j<4;j++);             //tcy(L3) > 500ns
000220  e3a02000          MOV      r2,#0
                  |L1.548|
000224  e3520004          CMP      r2,#4
000228  aa00001d          BGE      |L1.676|
00022c  e2822001          ADD      r2,r2,#1
000230  eafffffb          B        |L1.548|
;;;616            }
;;;617            else                             //If data's LSB is 'L'
;;;618            {
;;;619               rGPDAT &= ~L3C;              //L3C=L
                  |L1.564|
000234  e59fc3dc          LDR      r12,|L1.1560|
000238  e59cc00c          LDR      r12,[r12,#0xc]
00023c  e3cccb40          BIC      r12,r12,#0x10000
000240  e59fe3d0          LDR      lr,|L1.1560|
000244  e58ec00c          STR      r12,[lr,#0xc]
;;;620               rGPDAT &= ~L3D;              //L3D=L
000248  e1a0c00e          MOV      r12,lr
00024c  e59cc00c          LDR      r12,[r12,#0xc]
000250  e3cccc80          BIC      r12,r12,#0x8000
000254  e58ec00c          STR      r12,[lr,#0xc]
;;;621               for(j=0;j<4;j++);             //tcy(L3) > 500ns
000258  e3a02000          MOV      r2,#0
                  |L1.604|
00025c  e3520004          CMP      r2,#4
000260  aa000001          BGE      |L1.620|
000264  e2822001          ADD      r2,r2,#1
000268  eafffffb          B        |L1.604|
;;;622               rGPDAT |= L3C;               //L3C=H
                  |L1.620|
00026c  e59fc3a4          LDR      r12,|L1.1560|
000270  e59cc00c          LDR      r12,[r12,#0xc]
000274  e38ccb40          ORR      r12,r12,#0x10000
000278  e59fe398          LDR      lr,|L1.1560|
00027c  e58ec00c          STR      r12,[lr,#0xc]
;;;623               rGPDAT &= ~L3D;              //L3D=L
000280  e1a0c00e          MOV      r12,lr
000284  e59cc00c          LDR      r12,[r12,#0xc]
000288  e3cccc80          BIC      r12,r12,#0x8000
00028c  e58ec00c          STR      r12,[lr,#0xc]
;;;624               for(j=0;j<4;j++);             //tcy(L3) > 500ns
000290  e3a02000          MOV      r2,#0
                  |L1.660|
000294  e3520004          CMP      r2,#4
000298  aa000001          BGE      |L1.676|
00029c  e2822001          ADD      r2,r2,#1
0002a0  eafffffb          B        |L1.660|
;;;625            }
;;;626            data >>= 1;                      //For check next bit
                  |L1.676|
0002a4  e1a000a0          MOV      r0,r0,LSR #1
;;;627        }
0002a8  eaffffc5          B        |L1.452|
;;;628        rGPDAT  = rGPDAT & ~(L3D | L3M | L3C) | (L3C | L3M);    //L3M=H,L3C=H
                  |L1.684|
0002ac  e59fc364          LDR      r12,|L1.1560|
0002b0  e59cc00c          LDR      r12,[r12,#0xc]
0002b4  e3cccbe0          BIC      r12,r12,#0x38000
0002b8  e38ccbc0          ORR      r12,r12,#0x30000
0002bc  e59fe354          LDR      lr,|L1.1560|
0002c0  e58ec00c          STR      r12,[lr,#0xc]
;;;629    }
0002c4  e49df004          LDR      pc,[sp],#4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -