📄 cs8900.txt
字号:
; 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 + -