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

📄 cs8900.txt

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

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

                          AREA ||.text||, CODE, READONLY

                  Ch34_CS8900_Test PROC
;;;65     void Ch34_CS8900_Test(void)
;;;66     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;67         int i;
;;;68     
;;;69     	rSROM_BW|=(1<<5)|(1<<4)|(1<<3);
000004  e59f0120          LDR      r0,|L1.300|
000008  e5900000          LDR      r0,[r0,#0]
00000c  e3800038          ORR      r0,r0,#0x38
000010  e59f1114          LDR      r1,|L1.300|
000014  e5810000          STR      r0,[r1,#0]
;;;70     	//rSROM_BW|=(1<<8)|(1<<7)|(1<<6);
;;;71     	//rSROM_BW=(1<<7)|(1<<6)|(1<<3);
;;;72     	//rSROM_BW&=~(1<<7);
;;;73     	printf("rSROM_BW=%x\n",rSROM_BW);
000018  e1a00001          MOV      r0,r1
00001c  e5900000          LDR      r0,[r0,#0]
000020  e1a01000          MOV      r1,r0
000024  e28f0f41          ADR      r0,|L1.304|
000028  ebfffffe          BL       _printf
;;;74     	printf("rSROM_BC0=%x\n",rSROM_BC0);
00002c  e59f00f8          LDR      r0,|L1.300|
000030  e5900004          LDR      r0,[r0,#4]
000034  e1a01000          MOV      r1,r0
000038  e28f0f40          ADR      r0,|L1.320|
00003c  ebfffffe          BL       _printf
;;;75     	printf("rSROM_BC1=%x\n",rSROM_BC1);
000040  e59f00e4          LDR      r0,|L1.300|
000044  e5900008          LDR      r0,[r0,#8]
000048  e1a01000          MOV      r1,r0
00004c  e28f00fc          ADR      r0,|L1.336|
000050  ebfffffe          BL       _printf
;;;76     	printf("rSROM_BC2=%x\n",rSROM_BC2);
000054  e59f00d0          LDR      r0,|L1.300|
000058  e590000c          LDR      r0,[r0,#0xc]
00005c  e1a01000          MOV      r1,r0
000060  e28f00f8          ADR      r0,|L1.352|
000064  ebfffffe          BL       _printf
;;;77     
;;;78         printf("\nPower mode test.\n");
000068  e28f0f40          ADR      r0,|L1.368|
00006c  ebfffffe          BL       _printf
;;;79     
;;;80         while(1)
000070  e1a00000          NOP      
                  |L1.116|
000074  e1a00000          NOP      
;;;81         {
;;;82     	i=0;
000078  e3a04000          MOV      r4,#0
;;;83     	printf("\n\n");
00007c  e28f0f40          ADR      r0,|L1.388|
000080  ebfffffe          BL       _printf
;;;84     	while(1)
000084  e1a00000          NOP      
                  |L1.136|
000088  e1a00000          NOP      
;;;85     	{   //display menu
;;;86     	    printf("%2d:%s",i,func_cs8900_test[i][1]);
00008c  e59f00f4          LDR      r0,|L1.392|
000090  e0800184          ADD      r0,r0,r4,LSL #3
000094  e1a01004          MOV      r1,r4
000098  e5902004          LDR      r2,[r0,#4]
00009c  e28f00e8          ADR      r0,|L1.396|
0000a0  ebfffffe          BL       _printf
;;;87     	    i++;
0000a4  e2844001          ADD      r4,r4,#1
;;;88     	    if((int)(func_cs8900_test[i][0])==0)
0000a8  e59f00d8          LDR      r0,|L1.392|
0000ac  e7900184          LDR      r0,[r0,r4,LSL #3]
0000b0  e3500000          CMP      r0,#0
0000b4  1a000002          BNE      |L1.196|
;;;89     	    {
;;;90     		printf("\n");
0000b8  e28f008c          ADR      r0,|L1.332|
0000bc  ebfffffe          BL       _printf
;;;91     		break;
0000c0  ea000007          B        |L1.228|
;;;92     	    }
;;;93     	    if((i%3)==0)
                  |L1.196|
0000c4  e1a01004          MOV      r1,r4
0000c8  e3a00003          MOV      r0,#3
0000cc  ebfffffe          BL       __rt_sdiv
0000d0  e3510000          CMP      r1,#0
0000d4  1a000001          BNE      |L1.224|
;;;94     	    printf("\n");
0000d8  e28f006c          ADR      r0,|L1.332|
0000dc  ebfffffe          BL       _printf
;;;95     	}
                  |L1.224|
0000e0  eaffffe8          B        |L1.136|
;;;96     
;;;97     	printf("\nSelect (\"-1\" to exit) : ");
                  |L1.228|
0000e4  e28f00a8          ADR      r0,|L1.404|
0000e8  ebfffffe          BL       _printf
;;;98     	i = Uart_GetIntNum(); 
0000ec  ebfffffe          BL       Uart_GetIntNum
0000f0  e1a04000          MOV      r4,r0
;;;99     	if(i==-1) 
0000f4  e3740001          CMN      r4,#1
0000f8  1a000000          BNE      |L1.256|
;;;100    	    break;		// return.
0000fc  ea000007          B        |L1.288|
;;;101    	if(i>=0 && (i<((sizeof(func_cs8900_test)-1)/8)) )	// select and execute...
                  |L1.256|
000100  e3540000          CMP      r4,#0
000104  ba000004          BLT      |L1.284|
000108  e3540001          CMP      r4,#1
00010c  2a000002          BCS      |L1.284|
;;;102    	    ( (void (*)(void)) (func_cs8900_test[i][0]) )();
000110  e59f1070          LDR      r1,|L1.392|
000114  e7910184          LDR      r0,[r1,r4,LSL #3]
000118  e12fff30          BLX      r0
;;;103        }
                  |L1.284|
00011c  eaffffd4          B        |L1.116|
;;;104        printf("\nCS8900_Test program end.\n");
                  |L1.288|
000120  e28f0088          ADR      r0,|L1.432|
000124  ebfffffe          BL       _printf
;;;105    }
000128  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.300|
00012c  40c20000          DCD      0x40c20000
                  |L1.304|
000130  4f525372          DCB      "rSRO"
000134  57425f4d          DCB      "M_BW"
000138  0a78253d          DCB      "=%x\n"
00013c  00000000          DCB      "\0\0\0\0"
                  |L1.320|
000140  4f525372          DCB      "rSRO"
000144  43425f4d          DCB      "M_BC"
000148  78253d30          DCB      "0=%x"
                  |L1.332|
00014c  0000000a          DCB      "\n\0\0\0"
                  |L1.336|
000150  4f525372          DCB      "rSRO"
000154  43425f4d          DCB      "M_BC"
000158  78253d31          DCB      "1=%x"
00015c  0000000a          DCB      "\n\0\0\0"
                  |L1.352|
000160  4f525372          DCB      "rSRO"
000164  43425f4d          DCB      "M_BC"
000168  78253d32          DCB      "2=%x"
00016c  0000000a          DCB      "\n\0\0\0"
                  |L1.368|
000170  776f500a          DCB      "\nPow"
000174  6d207265          DCB      "er m"
000178  2065646f          DCB      "ode "
00017c  74736574          DCB      "test"
000180  00000a2e          DCB      ".\n\0\0"
                  |L1.388|
000184  00000a0a          DCB      "\n\n\0\0"
                  |L1.392|
000188  00000000          DCD      func_cs8900_test
                  |L1.396|
00018c  3a643225          DCB      "%2d:"
000190  00007325          DCB      "%s\0\0"
                  |L1.404|
000194  6c65530a          DCB      "\nSel"
000198  20746365          DCB      "ect "
00019c  312d2228          DCB      "(\"-1"
0001a0  6f742022          DCB      "\" to"
0001a4  69786520          DCB      " exi"
0001a8  3a202974          DCB      "t) :"
0001ac  00000020          DCB      " \0\0\0"
                  |L1.432|
0001b0  3853430a          DCB      "\nCS8"
0001b4  5f303039          DCB      "900_"
0001b8  74736554          DCB      "Test"
0001bc  6f727020          DCB      " pro"
0001c0  6d617267          DCB      "gram"
0001c4  646e6520          DCB      " end"
0001c8  00000a2e          DCB      ".\n\0\0"
                          ENDP

                  ReadReg PROC
;;;110    ReadReg(unsigned short offset)
;;;111    {
0001cc  e1a01000          MOV      r1,r0
;;;112    	IOWRITE(IO_PACKET_PAGE_POINTER, offset);
0001d0  e59f010c          LDR      r0,|L1.740|
0001d4  e5900000          LDR      r0,[r0,#0]  ; dwEthernetIOBase
0001d8  e1c010ba          STRH     r1,[r0,#0xa]
;;;113    	return IOREAD(IO_PACKET_PAGE_DATA_0);
0001dc  e59f0100          LDR      r0,|L1.740|
0001e0  e5900000          LDR      r0,[r0,#0]  ; dwEthernetIOBase
0001e4  e1d000bc          LDRH     r0,[r0,#0xc]
;;;114    }
0001e8  e12fff1e          BX       lr
                          ENDP

                  WriteReg PROC
;;;117    WriteReg(unsigned short offset, unsigned short data)
;;;118    {
0001ec  e59f20f0          LDR      r2,|L1.740|
;;;119    	IOWRITE(IO_PACKET_PAGE_POINTER, offset);
0001f0  e5922000          LDR      r2,[r2,#0]  ; dwEthernetIOBase
0001f4  e1c200ba          STRH     r0,[r2,#0xa]
;;;120    	IOWRITE(IO_PACKET_PAGE_DATA_0 , data);
0001f8  e59f20e4          LDR      r2,|L1.740|
0001fc  e5922000          LDR      r2,[r2,#0]  ; dwEthernetIOBase
000200  e1c210bc          STRH     r1,[r2,#0xc]
;;;121    }
000204  e12fff1e          BX       lr
                          ENDP

                  Detect_CS8900 PROC
;;;123    void Detect_CS8900(void)
;;;124    {
000208  e92d43f8          STMFD    sp!,{r3-r9,lr}
;;;125    	unsigned int iobase = 0;
00020c  e3a07000          MOV      r7,#0

⌨️ 快捷键说明

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