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

📄 cs8950.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00000			 AREA	 |.rdata| { |??_C@_01EFFIKLCJ@n?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_01EFFIKLCJ@n?$AA@| DCB "n", 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_01DGKLNCNG@R?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_01DGKLNCNG@R?$AA@| DCB "R", 0x0			; `string'
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |CS8950GetPendingInterrupts| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CS8950GetPendingInterrupts| PROC

; 584  : {

  00000		 |$L16220|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M16218|

; 585  :     PCD    pCD;
; 586  :     pCD    = (PCD)pChip->pData;

  00008	e59f3084	 ldr         r3, [pc, #0x84]
  0000c	e5933000	 ldr         r3, [r3]
  00010	e283300c	 add         r3, r3, #0xC
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d3000	 str         r3, [sp]

; 587  : 
; 588  : 
; 589  :     if (pCD->pRxStatNext->RxStat & RxStat_RxFP)  

  0001c	e59d3000	 ldr         r3, [sp]
  00020	e2833014	 add         r3, r3, #0x14
  00024	e5931000	 ldr         r1, [r3]
  00028	e5d13003	 ldrb        r3, [r1, #3]
  0002c	e1a02403	 mov         r2, r3, lsl #8
  00030	e5d13002	 ldrb        r3, [r1, #2]
  00034	e1833002	 orr         r3, r3, r2
  00038	e1a02403	 mov         r2, r3, lsl #8
  0003c	e5d13001	 ldrb        r3, [r1, #1]
  00040	e1833002	 orr         r3, r3, r2
  00044	e1a02403	 mov         r2, r3, lsl #8
  00048	e5d13000	 ldrb        r3, [r1]
  0004c	e1833002	 orr         r3, r3, r2
  00050	e3130102	 tst         r3, #2, 2
  00054	0a000004	 beq         |$L15498|

; 590  :     {
; 591  :         EdbgOutputDebugString("R");

  00058	e59f0030	 ldr         r0, [pc, #0x30]
  0005c	eb000000	 bl          EdbgOutputDebugString

; 592  :         return INTR_TYPE_RX;

  00060	e3a03001	 mov         r3, #1
  00064	e58d3004	 str         r3, [sp, #4]
  00068	ea000003	 b           |$L15495|
  0006c		 |$L15498|

; 593  :     }        
; 594  :     EdbgOutputDebugString("n");

  0006c	e59f0018	 ldr         r0, [pc, #0x18]
  00070	eb000000	 bl          EdbgOutputDebugString

; 595  :     return 0;

  00074	e3a03000	 mov         r3, #0
  00078	e58d3004	 str         r3, [sp, #4]
  0007c		 |$L15495|

; 592  :         return INTR_TYPE_RX;

  0007c	e59d0004	 ldr         r0, [sp, #4]

; 596  : }

  00080	e28dd008	 add         sp, sp, #8
  00084	e49de004	 ldr         lr, [sp], #4
  00088	e12fff1e	 bx          lr
  0008c		 |$L16223|
  0008c	00000000	 DCD         |??_C@_01EFFIKLCJ@n?$AA@|
  00090	00000000	 DCD         |??_C@_01DGKLNCNG@R?$AA@|
  00094	00000000	 DCD         |pChip|
  00098		 |$M16219|

			 ENDP  ; |CS8950GetPendingInterrupts|

	EXPORT	|CS8950ReadEEPROM|

  00000			 AREA	 |.text| { |CS8950ReadEEPROM| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CS8950ReadEEPROM|, PDATA, SELECTION=5, ASSOC=|.text| { |CS8950ReadEEPROM| } ; comdat associative
|$T16230| DCD	|$L16229|
	DCD	0x40001404
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |CS8950ReadEEPROM| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CS8950ReadEEPROM| PROC

; 609  : {

  00000		 |$L16229|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0003	 stmdb       sp!, {r0, r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M16227|

; 610  :     *pwVal = gusMacAddr[EEPROMAddress];

  00010	e1dd30bc	 ldrh        r3, [sp, #0xC]
  00014	e1a01003	 mov         r1, r3
  00018	e3a03002	 mov         r3, #2
  0001c	e0020391	 mul         r2, r1, r3
  00020	e59f3024	 ldr         r3, [pc, #0x24]
  00024	e0833002	 add         r3, r3, r2
  00028	e1d320b0	 ldrh        r2, [r3]
  0002c	e59d3010	 ldr         r3, [sp, #0x10]
  00030	e1c320b0	 strh        r2, [r3]

; 611  :     return TRUE;

  00034	e3a03001	 mov         r3, #1
  00038	e58d3000	 str         r3, [sp]
  0003c	e59d0000	 ldr         r0, [sp]

; 612  : }

  00040	e28dd004	 add         sp, sp, #4
  00044	e89d6000	 ldmia       sp, {sp, lr}
  00048	e12fff1e	 bx          lr
  0004c		 |$L16232|
  0004c	00000000	 DCD         |gusMacAddr|
  00050		 |$M16228|

			 ENDP  ; |CS8950ReadEEPROM|

	EXPORT	|CS8950WriteEEPROM|

  00000			 AREA	 |.text| { |CS8950WriteEEPROM| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CS8950WriteEEPROM|, PDATA, SELECTION=5, ASSOC=|.text| { |CS8950WriteEEPROM| } ; comdat associative
|$T16239| DCD	|$L16238|
	DCD	0x40001304
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |CS8950WriteEEPROM| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CS8950WriteEEPROM| PROC

; 625  : {

  00000		 |$L16238|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0003	 stmdb       sp!, {r0, r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M16236|

; 626  :     gusMacAddr[EEPROMAddress] = Data;

  00010	e1dd30bc	 ldrh        r3, [sp, #0xC]
  00014	e1a01003	 mov         r1, r3
  00018	e3a03002	 mov         r3, #2
  0001c	e0020391	 mul         r2, r1, r3
  00020	e59f3020	 ldr         r3, [pc, #0x20]
  00024	e0832002	 add         r2, r3, r2
  00028	e1dd31b0	 ldrh        r3, [sp, #0x10]
  0002c	e1c230b0	 strh        r3, [r2]

; 627  :     return TRUE;

  00030	e3a03001	 mov         r3, #1
  00034	e58d3000	 str         r3, [sp]
  00038	e59d0000	 ldr         r0, [sp]

; 628  : }

  0003c	e28dd004	 add         sp, sp, #4
  00040	e89d6000	 ldmia       sp, {sp, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$L16241|
  00048	00000000	 DCD         |gusMacAddr|
  0004c		 |$M16237|

			 ENDP  ; |CS8950WriteEEPROM|

	EXPORT	|CS8950MulticastAddAll|

  00000			 AREA	 |.text| { |CS8950MulticastAddAll| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$CS8950MulticastAddAll|, PDATA, SELECTION=5, ASSOC=|.text| { |CS8950MulticastAddAll| } ; comdat associative
|$T16247| DCD	|$L16246|
	DCD	0x40002101
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |CS8950MulticastAddAll| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |CS8950MulticastAddAll| PROC

; 638  : {

  00000		 |$L16246|
  00000	e24dd004	 sub         sp, sp, #4
  00004		 |$M16244|

; 639  :     DWORD RxControl;
; 640  : 
; 641  :  
; 642  :     /* Get the current settings of the receiver control register */
; 643  :     RxControl=ReadDWord( OpReg_RxCTL );

  00004	e59f3074	 ldr         r3, [pc, #0x74]
  00008	e5933000	 ldr         r3, [r3]
  0000c	e5933000	 ldr         r3, [r3]
  00010	e58d3000	 str         r3, [sp]

; 644  : 
; 645  :     /* Turn off the receiver while changing the hash table */
; 646  :     WriteDWord( OpReg_RxCTL, RxControl & ~RxCTL_SerRxON );

  00014	e59d2000	 ldr         r2, [sp]
  00018	e3e03801	 mvn         r3, #1, 16
  0001c	e0022003	 and         r2, r2, r3
  00020	e59f3058	 ldr         r3, [pc, #0x58]
  00024	e5933000	 ldr         r3, [r3]
  00028	e5832000	 str         r2, [r3]

; 647  :     
; 648  :     /* Set all the bits in the hash table */
; 649  :     WriteByte( OpReg_AFP, AFP_Hash );

  0002c	e59f304c	 ldr         r3, [pc, #0x4C]
  00030	e5933000	 ldr         r3, [r3]
  00034	e283204c	 add         r2, r3, #0x4C
  00038	e3a03007	 mov         r3, #7
  0003c	e5c23000	 strb        r3, [r2]

; 650  :     WriteDWord( OpReg_HashTb , 0xFFFFFFFF );

  00040	e59f3038	 ldr         r3, [pc, #0x38]
  00044	e5933000	 ldr         r3, [r3]
  00048	e2832050	 add         r2, r3, #0x50
  0004c	e3e03000	 mvn         r3, #0
  00050	e5823000	 str         r3, [r2]

; 651  :     WriteDWord( OpReg_HashTb+4, 0xFFFFFFFF );

  00054	e59f3024	 ldr         r3, [pc, #0x24]
  00058	e5933000	 ldr         r3, [r3]
  0005c	e2832054	 add         r2, r3, #0x54
  00060	e3e03000	 mvn         r3, #0
  00064	e5823000	 str         r3, [r2]

; 652  : 
; 653  :     /* Turn the receiver back on */
; 654  :     WriteDWord(OpReg_RxCTL, RxControl );

  00068	e59d2000	 ldr         r2, [sp]
  0006c	e59f300c	 ldr         r3, [pc, #0xC]
  00070	e5933000	 ldr         r3, [r3]
  00074	e5832000	 str         r2, [r3]

; 655  : 
; 656  : }

  00078	e28dd004	 add         sp, sp, #4
  0007c	e12fff1e	 bx          lr
  00080		 |$L16249|
  00080	00000000	 DCD         |gdwEthernetBase|
  00084		 |$M16245|

			 ENDP  ; |CS8950MulticastAddAll|


  00000			 AREA	 |.text| { |GetMACAddress| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetMACAddress|, PDATA, SELECTION=5, ASSOC=|.text| { |GetMACAddress| } ; comdat associative
|$T16256| DCD	|$L16255|
	DCD	0x40002804
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |GetMACAddress| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetMACAddress| PROC

; 665  : {

  00000		 |$L16255|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M16253|

; 666  :     if(gusMacAddr[0] == 0 && gusMacAddr[1] == 0 && gusMacAddr[2] == 0)

  00010	e59f3084	 ldr         r3, [pc, #0x84]
  00014	e1d330b0	 ldrh        r3, [r3]
  00018	e3530000	 cmp         r3, #0
  0001c	1a00000a	 bne         |$L15523|
  00020	e59f3074	 ldr         r3, [pc, #0x74]
  00024	e1d330b2	 ldrh        r3, [r3, #2]
  00028	e3530000	 cmp         r3, #0
  0002c	1a000006	 bne         |$L15523|
  00030	e59f3064	 ldr         r3, [pc, #0x64]
  00034	e1d330b4	 ldrh        r3, [r3, #4]
  00038	e3530000	 cmp         r3, #0
  0003c	1a000002	 bne         |$L15523|

; 667  :         return FALSE;

  00040	e3a03000	 mov         r3, #0
  00044	e58d3000	 str         r3, [sp]
  00048	ea00000f	 b           |$L15522|
  0004c		 |$L15523|

; 668  : 
; 669  :     //
; 670  :     // Currently copy the Mac Address from internal ram.
; 671  :     //
; 672  :     MacAddr[0] = gusMacAddr[0];

  0004c	e59f3048	 ldr         r3, [pc, #0x48]
  00050	e1d320b0	 ldrh        r2, [r3]
  00054	e59d300c	 ldr         r3, [sp, #0xC]
  00058	e1c320b0	 strh        r2, [r3]

; 673  :     MacAddr[1] = gusMacAddr[1];

  0005c	e59d300c	 ldr         r3, [sp, #0xC]
  00060	e2832002	 add         r2, r3, #2
  00064	e59f3030	 ldr         r3, [pc, #0x30]
  00068	e1d330b2	 ldrh        r3, [r3, #2]
  0006c	e1c230b0	 strh        r3, [r2]

; 674  :     MacAddr[2] = gusMacAddr[2];

  00070	e59d300c	 ldr         r3, [sp, #0xC]
  00074	e2832004	 add         r2, r3, #4
  00078	e59f301c	 ldr         r3, [pc, #0x1C]
  0007c	e1d330b4	 ldrh        r3, [r3, #4]
  00080	e1c230b0	 strh        r3, [r2]

; 675  : 
; 676  :     return TRUE;

  00084	e3a03001	 mov         r3, #1
  00088	e58d3000	 str         r3, [sp]
  0008c		 |$L15522|

; 667  :         return FALSE;

  0008c	e59d0000	 ldr         r0, [sp]

; 677  : }

  00090	e28dd004	 add         sp, sp, #4
  00094	e89d6000	 ldmia       sp, {sp, lr}
  00098	e12fff1e	 bx          lr
  0009c		 |$L16258|
  0009c	00000000	 DCD         |gusMacAddr|
  000a0		 |$M16254|

			 ENDP  ; |GetMACAddress|

	EXPORT	|??_C@_0DJ@KCNHBCHM@First?5PHY?5read?5failed?0?5Address?5?$DN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BI@HIJCNAOF@Second?5PHY?5read?5failed?$CB?$AA@| [ DATA ] ; `string'

  00000			 AREA	 |.text| { |ReadPHY| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$ReadPHY|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadPHY| } ; comdat associative
|$T16265| DCD	|$L16264|
	DCD	0x40005604

  00000			 AREA	 |.rdata| { |??_C@_0BI@HIJCNAOF@Second?5PHY?5read?5failed?$CB?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@HIJCNAOF@Second?5PHY?5read?5failed?$CB?$AA@| DCB "Second PHY r"
	DCB	"ead failed!", 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DJ@KCNHBCHM@First?5PHY?5read?5failed?0?5Address?5?$DN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DJ@KCNHBCHM@First?5PHY?5read?5failed?0?5Address?5?$DN@| DCB "Firs"
	DCB	"t PHY read failed, Address =0x%x, Register= 0x%x. ", 0xd
	DCB	0xa, 0x0				; `string'
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |ReadPHY| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |ReadPHY| PROC

; 790  : {

  00000		 |$L16264|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d000f	 stmdb       sp!, {r0 - r3}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd00c	 sub         sp, sp, #0xC
  00010		 |$M16262|

; 791  :     BYTE Status;
; 792  :     int  x;
; 793  : 
; 794  :     /* Ensure that the PHY is not busy */
; 795  :     for ( x=0; x<MAXLOOP; x++ )

  00010	e3a03000	 mov         r3, #0
  00014	e58d3000	 str         r3, [sp]
  00018	ea000002	 b           |$L15566|
  0001c		 |$L15567|
  0001c	e59d3000	 ldr         r3, [sp]

⌨️ 快捷键说明

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