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

📄 halether.cod

📁 EP9315的BSP包(WINCE下的BSP,内有各种驱动的详细的代码)
💻 COD
📖 第 1 页 / 共 5 页
字号:
			 ENDP  ; |OEMEthISR|

	EXPORT	|OEMEthGetFrame|
	IMPORT	|VBridgeKIndicateOneRxBuffer|

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

  00000			 AREA	 |.pdata$$OEMEthGetFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthGetFrame| } ; comdat associative
|$T14506| DCD	|OEMEthGetFrame|
	DCD	0x40002c02
; Function compile flags: /Ogsy

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

  00000		 |OEMEthGetFrame| PROC

; 480  : {

  00000	e92d41f0	 stmdb     sp!, {r4 - r8, lr}
  00004	e24dd004	 sub       sp, sp, #4
  00008		 |$M14504|
  00008	e1a08000	 mov       r8, r0
  0000c	e1a07001	 mov       r7, r1

; 481  : 
; 482  : #ifdef IMGSHAREETH
; 483  :     BOOL    bStatus;
; 484  :     BOOL    bTaken;
; 485  :     UINT16  wOriginalLength;
; 486  : 
; 487  : 
; 488  :     ProcessVMiniSend();

  00010	eb000000	 bl        ProcessVMiniSend

; 489  : 
; 490  :     //
; 491  :     //  ne2000 ether library has a minor problem of returning incorrect
; 492  :     //  Ethernet packet size if we give it buffer > max Ether MTU.
; 493  :     //  So, pass in only ether MTU if the incoming buffer is greater
; 494  :     //  than ether MTU.
; 495  :     //
; 496  : 
; 497  :     if (*pwLength >= 1514)

  00014	e1d730b0	 ldrh      r3, [r7]
  00018	e3a05e5e	 mov       r5, #0x5E, 28

; 498  :         wOriginalLength = 1514;
; 499  :     else
; 500  :         wOriginalLength = *pwLength;
; 501  :     
; 502  :     while (1)
; 503  :     {   
; 504  :         *pwLength = wOriginalLength;
; 505  : 
; 506  :         bStatus  = pfnEDbgGetFrame(pData, pwLength);

  0001c	e59f4088	 ldr       r4, [pc, #0x88]
  00020	e1a00803	 mov       r0, r3, lsl #16
  00024	e385500a	 orr       r5, r5, #0xA
  00028	e1550820	 cmp       r5, r0, lsr #16
  0002c	81a05003	 movhi     r5, r3
  00030	e1c750b0	 strh      r5, [r7]
  00034	e1a01007	 mov       r1, r7
  00038	e5942000	 ldr       r2, [r4]
  0003c	e1a00008	 mov       r0, r8
  00040	e1a0e00f	 mov       lr, pc
  00044	e12fff12	 bx        r2
  00048	ea00000f	 b         |$L14503|
  0004c		 |$L14220|

; 507  :         
; 508  :         if (bStatus)
; 509  :         {
; 510  :             VBridgeKIndicateOneRxBuffer(pData, *pwLength, FALSE, &bTaken);

  0004c	e1d700b0	 ldrh      r0, [r7]
  00050	e28d3000	 add       r3, sp, #0
  00054	e3a02000	 mov       r2, #0
  00058	e1a01800	 mov       r1, r0, lsl #16
  0005c	e1a01821	 mov       r1, r1, lsr #16
  00060	e1a00008	 mov       r0, r8
  00064	eb000000	 bl        VBridgeKIndicateOneRxBuffer

; 511  :             if (!bTaken)              

  00068	e59d3000	 ldr       r3, [sp]
  0006c	e3530000	 cmp       r3, #0
  00070	0a000009	 beq       |$L14213|
  00074	e1c750b0	 strh      r5, [r7]
  00078	e1a01007	 mov       r1, r7
  0007c	e5942000	 ldr       r2, [r4]
  00080	e1a00008	 mov       r0, r8
  00084	e1a0e00f	 mov       lr, pc
  00088	e12fff12	 bx        r2
  0008c		 |$L14503|
  0008c	e1a01800	 mov       r1, r0, lsl #16
  00090	e1b06821	 movs      r6, r1, lsr #16
  00094	1affffec	 bne       |$L14220|

; 513  :         }
; 514  :         else
; 515  :             break;
; 516  :     }
; 517  : 
; 518  :     return (FALSE);

  00098	e3a06000	 mov       r6, #0
  0009c		 |$L14213|

; 512  :                 return bStatus;            

  0009c	e1a00006	 mov       r0, r6

; 519  : #else
; 520  : 
; 521  :     return (pfnEDbgGetFrame(pData, pwLength));
; 522  : 
; 523  : #endif
; 524  :     
; 525  : }

  000a0	e28dd004	 add       sp, sp, #4
  000a4	e8bd41f0	 ldmia     sp!, {r4 - r8, lr}
  000a8	e12fff1e	 bx        lr
  000ac		 |$L14508|
  000ac	00000000	 DCD       |pfnEDbgGetFrame|
  000b0		 |$M14505|

			 ENDP  ; |OEMEthGetFrame|

	EXPORT	|??_C@_0CE@LGOH@?$CBOEMEthSendFrame?5failure?0?5retry?5@| [ DATA ] ; `string'
	EXPORT	|OEMEthSendFrame|

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

  00000			 AREA	 |.pdata$$OEMEthSendFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthSendFrame| } ; comdat associative
|$T14520| DCD	|OEMEthSendFrame|
	DCD	0x40001c01

  00000			 AREA	 |.rdata| { |??_C@_0CE@LGOH@?$CBOEMEthSendFrame?5failure?0?5retry?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CE@LGOH@?$CBOEMEthSendFrame?5failure?0?5retry?5@| DCB "!OEMEthSen"
	DCB	"dFrame failure, retry %u", 0xa, 0x0	; `string'
; Function compile flags: /Ogsy

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

  00000		 |OEMEthSendFrame| PROC

; 538  : {

  00000	e92d41f0	 stmdb     sp!, {r4 - r8, lr}
  00004		 |$M14518|
  00004	e1a06000	 mov       r6, r0
  00008	e1a05001	 mov       r5, r1

; 539  :     int retries = 0;

  0000c	e59f4058	 ldr       r4, [pc, #0x58]
  00010	e3a08000	 mov       r8, #0
  00014	e1a07008	 mov       r7, r8
  00018		 |$L14232|

; 540  :     while ( retries++ < 4 ) {
; 541  :         if ( !pfnEDbgSendFrame(pData, dwLength) )

  00018	e5942000	 ldr       r2, [r4]
  0001c	e1a01005	 mov       r1, r5
  00020	e1a00006	 mov       r0, r6
  00024	e2877001	 add       r7, r7, #1
  00028	e1a0e00f	 mov       lr, pc
  0002c	e12fff12	 bx        r2
  00030	e1a01800	 mov       r1, r0, lsl #16
  00034	e1b02821	 movs      r2, r1, lsr #16
  00038	0a000005	 beq       |$L14512|

; 548  :         }
; 549  :         else
; 550  :             EdbgOutputDebugString("!OEMEthSendFrame failure, retry %u\n",retries);

  0003c	e59f0024	 ldr       r0, [pc, #0x24]
  00040	e1a01007	 mov       r1, r7
  00044	eb000000	 bl        EdbgOutputDebugString
  00048	e3570004	 cmp       r7, #4
  0004c	bafffff1	 blt       |$L14232|

; 540  :     while ( retries++ < 4 ) {
; 541  :         if ( !pfnEDbgSendFrame(pData, dwLength) )

  00050	ea000001	 b         |$L14229|
  00054		 |$L14512|

; 542  :         {
; 543  : 
; 544  : #ifdef IMGSHAREETH
; 545  :             ProcessVMiniSend();

  00054	eb000000	 bl        ProcessVMiniSend

; 546  : #endif
; 547  :             return (TRUE);

  00058	e3a08001	 mov       r8, #1
  0005c		 |$L14229|
  0005c	e1a00008	 mov       r0, r8

; 551  :     }
; 552  :     return (FALSE);
; 553  : }

  00060	e8bd41f0	 ldmia     sp!, {r4 - r8, lr}
  00064	e12fff1e	 bx        lr
  00068		 |$L14522|
  00068	00000000	 DCD       |??_C@_0CE@LGOH@?$CBOEMEthSendFrame?5failure?0?5retry?5@|
  0006c	00000000	 DCD       |pfnEDbgSendFrame|
  00070		 |$M14519|

			 ENDP  ; |OEMEthSendFrame|

	EXPORT	|??_C@_0BI@FCKF@OEMEthQueryClientInfo?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BC@MIFL@EDBG_SVC_DBGMSG?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|OEMEthQueryClientInfo|
	EXPORT	|??_C@_0BI@DJOE@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BI@EBGG@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BI@JEI@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BI@NBDL@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BI@LMON@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BI@POAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BA@ICIM@EDBG_SVC_PPSH?$AN?6?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_0BA@BHAI@EDBG_SVC_KDBG?$AN?6?$AA@| [ DATA ] ; `string'
	IMPORT	|inet_ntoa|

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

  00000			 AREA	 |.pdata$$OEMEthQueryClientInfo|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthQueryClientInfo| } ; comdat associative
|$T14534| DCD	|OEMEthQueryClientInfo|
	DCD	0x40009c01

  00000			 AREA	 |.rdata| { |??_C@_0BI@FCKF@OEMEthQueryClientInfo?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@FCKF@OEMEthQueryClientInfo?$AN?6?$AA@| DCB "OEMEthQueryClientI"
	DCB	"nfo", 0xd, 0xa, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BA@BHAI@EDBG_SVC_KDBG?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BA@BHAI@EDBG_SVC_KDBG?$AN?6?$AA@| DCB "EDBG_SVC_KDBG", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BI@DJOE@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@DJOE@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@| DCB "pPeerAd"
	DCB	"dr IP:      %s", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BI@EBGG@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@EBGG@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@| DCB "pPeerA"
	DCB	"ddr wMAC[0]: %x", 0xd, 0xa, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BI@JEI@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@JEI@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@| DCB "pPeerAd"
	DCB	"dr wMAC[1]: %x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BI@NBDL@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@NBDL@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@| DCB "pPeerA"
	DCB	"ddr wMAC[2]: %x", 0xd, 0xa, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BI@LMON@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@LMON@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@| DCB "pPeerAddr "
	DCB	"wPort:   %x", 0xd, 0xa, 0x0		; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BA@ICIM@EDBG_SVC_PPSH?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BA@ICIM@EDBG_SVC_PPSH?$AN?6?$AA@| DCB "EDBG_SVC_PPSH", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BC@MIFL@EDBG_SVC_DBGMSG?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BC@MIFL@EDBG_SVC_DBGMSG?$AN?6?$AA@| DCB "EDBG_SVC_DBGMSG", 0xd, 0xa
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_0BI@POAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@POAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@| DCB "ppBuffer"
	DCB	"Pool:      %x", 0xd, 0xa, 0x0		; `string'
; Function compile flags: /Ogsy

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

  00000		 |OEMEthQueryClientInfo| PROC

; 582  : {

  00000	e92d40f0	 stmdb     sp!, {r4 - r7, lr}
  00004		 |$M14532|
  00004	e1a05000	 mov       r5, r0
  00008	e1a06001	 mov       r6, r1
  0000c	e1a04002	 mov       r4, r2
  00010	e1a07003	 mov       r7, r3

; 583  :     EdbgOutputDebugString("OEMEthQueryClientInfo\r\n");

  00014	e59f0250	 ldr       r0, [pc, #0x250]
  00018	eb000000	 bl        EdbgOutputDebugString

; 584  : 
; 585  :     // We use the default window size (8) for all services
; 586  :     *pWindowSize = EDBG_WINDOW_SIZE;

  0001c	e3a03008	 mov       r3, #8

; 587  : 
; 588  :     switch (Service)
; 589  :     {

  00020	e20500ff	 and       r0, r5, #0xFF
  00024	e5c43000	 strb      r3, [r4]
  00028	e3500000	 cmp       r0, #0
  0002c	0a000052	 beq       |$L14251|
  00030	e3500001	 cmp       r0, #1
  00034	0a00002a	 beq       |$L14270|
  00038	e3500002	 cmp       r0, #2
  0003c	0a000002	 beq       |$L14283|
  00040		 |$L14531|

; 633  :         default:
; 634  :             return FALSE;

  00040	e3a00000	 mov       r0, #0

; 637  : }

  00044	e8bd40f0	 ldmia     sp!, {r4 - r7, lr}
  00048	e12fff1e	 bx        lr
  0004c		 |$L14283|

; 619  :         case EDBG_SVC_KDBG:
; 620  :             EdbgOutputDebugString("EDBG_SVC_KDBG\r\n");

  0004c	e59f0214	 ldr       r0, [pc, #0x214]
  00050	eb000000	 bl        EdbgOutputDebugString

; 621  :             if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_KDBG)) {

  00054	e59f31f0	 ldr       r3, [pc, #0x1F0]
  00058	e5d30000	 ldrb      r0, [r3]
  0005c	e3100004	 tst       r0, #4

; 622  :                 return FALSE;

  00060	0afffff6	 beq       |$L14531|

; 623  :             }
; 624  :             memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.KdbgHostAddr,sizeof(EDBG_ADDR));

  00064	e59f11f8	 ldr       r1, [pc, #0x1F8]
  00068	e3a0200c	 mov       r2, #0xC
  0006c	e1a00006	 mov       r0, r6
  00070	eb000000	 bl        memcpy

; 625  :             EdbgOutputDebugString("pPeerAddr IP:      %s\r\n", inet_ntoa(pPeerAddr->dwIP));              

  00074	e5960000	 ldr       r0, [r6]
  00078	eb000000	 bl        inet_ntoa
  0007c	e1a01000	 mov       r1, r0
  00080	e59f01bc	 ldr       r0, [pc, #0x1BC]
  00084	eb000000	 bl        EdbgOutputDebugString

; 626  :             EdbgOutputDebugString("pPeerAddr wMAC[0]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[0]));     

  00088	e1d630b4	 ldrh      r3, [r6, #4]
  0008c	e1a00803	 mov       r0, r3, lsl #16
  00090	e1a01820	 mov       r1, r0, lsr #16
  00094	e59f01a4	 ldr       r0, [pc, #0x1A4]
  00098	eb000000	 bl        EdbgOutputDebugString

; 627  :             EdbgOutputDebugString("pPeerAddr wMAC[1]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[1]));     

  0009c	e1d630b6	 ldrh      r3, [r6, #6]
  000a0	e1a00803	 mov       r0, r3, lsl #16
  000a4	e1a01820	 mov       r1, r0, lsr #16
  000a8	e59f018c	 ldr       r0, [pc, #0x18C]
  000ac	eb000000	 bl        EdbgOutputDebugString

; 628  :             EdbgOutputDebugString("pPeerAddr wMAC[2]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[2]));     

  000b0	e1d630b8	 ldrh      r3, [r6, #8]
  000b4	e1a00803	 mov       r0, r3, lsl #16
  000b8	e1a01820	 mov       r1, r0, lsr #16
  000bc	e59f0174	 ldr       r0, [pc, #0x174]
  000c0	eb000000	 bl        EdbgOutputDebugString

; 629  :             EdbgOutputDebugString("pPeerAddr wPort:   %x\r\n", (unsigned long)(pPeerAddr->wPort));       

  000c4	e1d630ba	 ldrh      r3, [r6, #0xA]

⌨️ 快捷键说明

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