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

📄 halether.cod

📁 EP9315的BSP包(WINCE下的BSP,内有各种驱动的详细的代码)
💻 COD
📖 第 1 页 / 共 5 页
字号:
  000c8	e1a00803	 mov       r0, r3, lsl #16
  000cc	e1a01820	 mov       r1, r0, lsr #16
  000d0	e59f015c	 ldr       r0, [pc, #0x15C]
  000d4	eb000000	 bl        EdbgOutputDebugString

; 630  :             *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY + 2*EDBG_DFLT_BUFFER_POOL_SIZE;

  000d8	e59f3180	 ldr       r3, [pc, #0x180]

; 631  :             EdbgOutputDebugString("ppBufferPool:      %x\r\n", (unsigned long)(*ppBufferPool));          

  000dc	e59f117c	 ldr       r1, [pc, #0x17C]

; 632  :             break;

  000e0	ea00004c	 b         |$L14530|
  000e4		 |$L14270|

; 604  :             break;
; 605  :         case EDBG_SVC_PPSH:
; 606  :             EdbgOutputDebugString("EDBG_SVC_PPSH\r\n");

  000e4	e59f0170	 ldr       r0, [pc, #0x170]
  000e8	eb000000	 bl        EdbgOutputDebugString

; 607  :             if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_PPSH)) {

  000ec	e59f3158	 ldr       r3, [pc, #0x158]
  000f0	e5d30000	 ldrb      r0, [r3]
  000f4	e3100002	 tst       r0, #2

; 608  :                 return FALSE;

  000f8	0affffd0	 beq       |$L14531|

; 609  :             }
; 610  :             memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.PpshHostAddr,sizeof(EDBG_ADDR));

  000fc	e59f1154	 ldr       r1, [pc, #0x154]
  00100	e3a0200c	 mov       r2, #0xC
  00104	e1a00006	 mov       r0, r6
  00108	eb000000	 bl        memcpy

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

  0010c	e5960000	 ldr       r0, [r6]
  00110	eb000000	 bl        inet_ntoa
  00114	e1a01000	 mov       r1, r0
  00118	e59f0124	 ldr       r0, [pc, #0x124]
  0011c	eb000000	 bl        EdbgOutputDebugString

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

  00120	e1d630b4	 ldrh      r3, [r6, #4]
  00124	e1a00803	 mov       r0, r3, lsl #16
  00128	e1a01820	 mov       r1, r0, lsr #16
  0012c	e59f010c	 ldr       r0, [pc, #0x10C]
  00130	eb000000	 bl        EdbgOutputDebugString

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

  00134	e1d630b6	 ldrh      r3, [r6, #6]
  00138	e1a00803	 mov       r0, r3, lsl #16
  0013c	e1a01820	 mov       r1, r0, lsr #16
  00140	e59f00f4	 ldr       r0, [pc, #0xF4]
  00144	eb000000	 bl        EdbgOutputDebugString

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

  00148	e1d630b8	 ldrh      r3, [r6, #8]
  0014c	e1a00803	 mov       r0, r3, lsl #16
  00150	e1a01820	 mov       r1, r0, lsr #16
  00154	e59f00dc	 ldr       r0, [pc, #0xDC]
  00158	eb000000	 bl        EdbgOutputDebugString

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

  0015c	e1d630ba	 ldrh      r3, [r6, #0xA]
  00160	e1a00803	 mov       r0, r3, lsl #16
  00164	e1a01820	 mov       r1, r0, lsr #16
  00168	e59f00c4	 ldr       r0, [pc, #0xC4]
  0016c	eb000000	 bl        EdbgOutputDebugString

; 616  :             *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY + EDBG_DFLT_BUFFER_POOL_SIZE;

  00170	e59f30dc	 ldr       r3, [pc, #0xDC]

; 617  :             EdbgOutputDebugString("ppBufferPool:      %x\r\n", (unsigned long)(*ppBufferPool));          

  00174	e59f10d8	 ldr       r1, [pc, #0xD8]

; 618  :             break;

  00178	ea000026	 b         |$L14530|
  0017c		 |$L14251|

; 590  :         // Check the flag in driver globals (set by eboot when it receives the JUMPIMG command)
; 591  :         case EDBG_SVC_DBGMSG:
; 592  :             EdbgOutputDebugString("EDBG_SVC_DBGMSG\r\n");

  0017c	e59f00cc	 ldr       r0, [pc, #0xCC]
  00180	eb000000	 bl        EdbgOutputDebugString

; 593  :             if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_DBGMSG)) {

  00184	e59f30c0	 ldr       r3, [pc, #0xC0]
  00188	e5d30000	 ldrb      r0, [r3]
  0018c	e3100001	 tst       r0, #1

; 594  :                 return FALSE;

  00190	0affffaa	 beq       |$L14531|

; 595  :             }
; 596  :             memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.DbgHostAddr,sizeof(EDBG_ADDR));

  00194	e59f10ac	 ldr       r1, [pc, #0xAC]
  00198	e3a0200c	 mov       r2, #0xC
  0019c	e1a00006	 mov       r0, r6
  001a0	eb000000	 bl        memcpy

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

  001a4	e5960000	 ldr       r0, [r6]
  001a8	eb000000	 bl        inet_ntoa
  001ac	e1a01000	 mov       r1, r0
  001b0	e59f008c	 ldr       r0, [pc, #0x8C]
  001b4	eb000000	 bl        EdbgOutputDebugString

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

  001b8	e1d630b4	 ldrh      r3, [r6, #4]
  001bc	e1a00803	 mov       r0, r3, lsl #16
  001c0	e1a01820	 mov       r1, r0, lsr #16
  001c4	e59f0074	 ldr       r0, [pc, #0x74]
  001c8	eb000000	 bl        EdbgOutputDebugString

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

  001cc	e1d630b6	 ldrh      r3, [r6, #6]
  001d0	e1a00803	 mov       r0, r3, lsl #16
  001d4	e1a01820	 mov       r1, r0, lsr #16
  001d8	e59f005c	 ldr       r0, [pc, #0x5C]
  001dc	eb000000	 bl        EdbgOutputDebugString

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

  001e0	e1d630b8	 ldrh      r3, [r6, #8]
  001e4	e1a00803	 mov       r0, r3, lsl #16
  001e8	e1a01820	 mov       r1, r0, lsr #16
  001ec	e59f0044	 ldr       r0, [pc, #0x44]
  001f0	eb000000	 bl        EdbgOutputDebugString

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

  001f4	e1d630ba	 ldrh      r3, [r6, #0xA]
  001f8	e1a00803	 mov       r0, r3, lsl #16
  001fc	e1a01820	 mov       r1, r0, lsr #16
  00200	e59f002c	 ldr       r0, [pc, #0x2C]
  00204	eb000000	 bl        EdbgOutputDebugString

; 602  :             *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY;

  00208	e3a03102	 mov       r3, #2, 2

; 603  :             EdbgOutputDebugString("ppBufferPool:      %x\r\n", (unsigned long)(*ppBufferPool));          

  0020c	e3a01102	 mov       r1, #2, 2
  00210	e3833701	 orr       r3, r3, #1, 14
  00214	e3811701	 orr       r1, r1, #1, 14
  00218		 |$L14530|
  00218	e59f0010	 ldr       r0, [pc, #0x10]
  0021c	e5873000	 str       r3, [r7]
  00220	eb000000	 bl        EdbgOutputDebugString

; 635  :     }
; 636  :     return TRUE;

  00224	e3a00001	 mov       r0, #1

; 637  : }

  00228	e8bd40f0	 ldmia     sp!, {r4 - r7, lr}
  0022c	e12fff1e	 bx        lr
  00230		 |$L14536|
  00230	00000000	 DCD       |??_C@_0BI@POAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@|
  00234	00000000	 DCD       |??_C@_0BI@LMON@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@|
  00238	00000000	 DCD       |??_C@_0BI@NBDL@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@|
  0023c	00000000	 DCD       |??_C@_0BI@JEI@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@|
  00240	00000000	 DCD       |??_C@_0BI@EBGG@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@|
  00244	00000000	 DCD       |??_C@_0BI@DJOE@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@|
  00248	a0008834	 DCD       0xa0008834
  0024c	a0008805	 DCD       0xa0008805
  00250	00000000	 DCD       |??_C@_0BC@MIFL@EDBG_SVC_DBGMSG?$AN?6?$AA@|
  00254	80045f00	 DCD       0x80045f00
  00258	a000884c	 DCD       0xa000884c
  0025c	00000000	 DCD       |??_C@_0BA@ICIM@EDBG_SVC_PPSH?$AN?6?$AA@|
  00260	8004be00	 DCD       0x8004be00
  00264	a0008840	 DCD       0xa0008840
  00268	00000000	 DCD       |??_C@_0BA@BHAI@EDBG_SVC_KDBG?$AN?6?$AA@|
  0026c	00000000	 DCD       |??_C@_0BI@FCKF@OEMEthQueryClientInfo?$AN?6?$AA@|
  00270		 |$M14533|

			 ENDP  ; |OEMEthQueryClientInfo|

	EXPORT	|OEMEthGetSecs|
	EXPORT	|??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| [ DATA ] ; `string'
	IMPORT	|GetSystemTimeInMsec|

  00008			 AREA	 |.bss|, NOINIT
|dwLastTime| %	0x4

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

  00000			 AREA	 |.pdata$$OEMEthGetSecs|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthGetSecs| } ; comdat associative
|$T14543| DCD	|OEMEthGetSecs|
	DCD	0x40001301

  00000			 AREA	 |.rdata| { |??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| DCB "! Time"
	DCB	" went backwards (or wrapped): cur: %u, last %u", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

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

  00000		 |OEMEthGetSecs| PROC

; 650  : {

  00000	e92d4030	 stmdb     sp!, {r4, r5, lr}
  00004		 |$M14541|

; 651  :     DWORD dwSt;
; 652  :     DWORD dwRet;
; 653  : 
; 654  :     dwSt=GetSystemTimeInMsec(); /* Get system time in msec */

  00004	eb000000	 bl        GetSystemTimeInMsec

; 655  :     dwRet = dwSt/1000; /*(change msec to sec)*/
; 656  : 
; 657  :     if (dwRet < dwLastTime) {

  00008	e59f4038	 ldr       r4, [pc, #0x38]
  0000c	e1a03000	 mov       r3, r0
  00010	e59f002c	 ldr       r0, [pc, #0x2C]
  00014	e5942000	 ldr       r2, [r4]
  00018	e0810093	 umull     r0, r1, r3, r0
  0001c	e1a05321	 mov       r5, r1, lsr #6
  00020	e1550002	 cmp       r5, r2

; 658  :         EdbgOutputDebugString("! Time went backwards (or wrapped): cur: %u, last %u\n",
; 659  :                               dwRet,dwLastTime);

  00024	359f0014	 ldrcc     r0, [pc, #0x14]
  00028	31a01005	 movcc     r1, r5
  0002c	3b000000	 blcc      EdbgOutputDebugString

; 660  :     }
; 661  :     dwLastTime = dwRet;

  00030	e5845000	 str       r5, [r4]

; 662  :     return (dwRet);

  00034	e1a00005	 mov       r0, r5

; 663  : }

  00038	e8bd4030	 ldmia     sp!, {r4, r5, lr}
  0003c	e12fff1e	 bx        lr
  00040		 |$L14545|
  00040	00000000	 DCD       |??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@|
  00044	10624dd3	 DCD       0x10624dd3
  00048	00000000	 DCD       |dwLastTime|
  0004c		 |$M14542|

			 ENDP  ; |OEMEthGetSecs|

	EXPORT	|OEMEthCurrentPacketFilter|
	EXPORT	|??_C@_0CK@NDDC@OEMEthCurrentPacketFilter?5set?5to@| [ DATA ] ; `string'

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

  00000			 AREA	 |.pdata$$OEMEthCurrentPacketFilter|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthCurrentPacketFilter| } ; comdat associative
|$T14552| DCD	|OEMEthCurrentPacketFilter|
	DCD	0x40001b01

  00000			 AREA	 |.rdata| { |??_C@_0CK@NDDC@OEMEthCurrentPacketFilter?5set?5to@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CK@NDDC@OEMEthCurrentPacketFilter?5set?5to@| DCB "OEMEthCurrentPa"
	DCB	"cketFilter set to [0x%x]", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

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

  00000		 |OEMEthCurrentPacketFilter| PROC

; 707  : {

  00000	e92d4010	 stmdb     sp!, {r4, lr}
  00004		 |$M14550|
  00004	e1a04000	 mov       r4, r0

; 708  : 
; 709  :     if (pfnCurrentPacketFilter)

  00008	e59f0058	 ldr       r0, [pc, #0x58]
  0000c	e5901000	 ldr       r1, [r0]
  00010	e3510000	 cmp       r1, #0
  00014	0a000009	 beq       |$L14308|

; 710  :     {
; 711  :         EdbgOutputDebugString(
; 712  :             "OEMEthCurrentPacketFilter set to [0x%x]\r\n",
; 713  :             *pdwRequestedFilter);   

  00018	e5941000	 ldr       r1, [r4]
  0001c	e59f0040	 ldr       r0, [pc, #0x40]
  00020	eb000000	 bl        EdbgOutputDebugString

; 714  : 
; 715  :         //
; 716  :         //  Note that we can't do it immediately here, since we are called 
; 717  :         //  by user mode code.
; 718  :         //  So what we do is to set the flag here for the kernel mode code
; 719  :         //  to pick up.
; 720  :         //
; 721  : 
; 722  :         dwFilter   = *pdwRequestedFilter;

  00024	e5940000	 ldr       r0, [r4]
  00028	e59f3030	 ldr       r3, [pc, #0x30]

; 723  :         bNewFilter = TRUE;

  0002c	e3a01001	 mov       r1, #1
  00030	e5830000	 str       r0, [r3]
  00034	e59f0020	 ldr       r0, [pc, #0x20]
  00038	e5801000	 str       r1, [r0]

; 724  :         return TRUE;

  0003c	ea000003	 b         |$L14313|
  00040		 |$L14308|

; 725  :     }
; 726  :     else
; 727  :     {
; 728  :         //
; 729  :         //  Oh well, eth driver does not yet support filter setting
; 730  :         //  So if it is PACKET_TYPE_DIRECTED, PACKET_TYPE_MULTICAST, 
; 731  :         //  PACKET_TYPE_BROADCAST, we just lie that we are ok with it.
; 732  :         //  Since EDBG will run in this mode anyway..
; 733  :         //
; 734  : 
; 735  :         DWORD   dwInherentlySupported = 
; 736  :                     PACKET_TYPE_MULTICAST   | 
; 737  :                     PACKET_TYPE_DIRECTED    | 
; 738  :                     PACKET_TYPE_BROADCAST;
; 739  : 
; 740  :         if (*pdwRequestedFilter == dwInherentlySupported)

  00040	e5940000	 ldr       r0, [r4]

; 741  :             return TRUE;

  00044	e3a01001	 mov       r1, #1
  00048	e350000b	 cmp       r0, #0xB

; 742  :         else
; 743  :             return FALSE;

  0004c	13a01000	 movne     r1, #0
  00050		 |$L14313|

; 724  :         return TRUE;

  00050	e1a00001	 mov       r0, r1

; 744  :     }
; 745  : 
; 746  : }   //  OEMEthCurrentPacketFilter()

  00054	e8bd4010	 ldmia     sp!, {r4, lr}
  00058	e12fff1e	 bx        lr

⌨️ 快捷键说明

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