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

📄 main.cod

📁 EP9315的BSP包(WINCE下的BSP,内有各种驱动的详细的代码)
💻 COD
📖 第 1 页 / 共 3 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615 

	TTL	d:\wince420\platform\ep931x\eboot\.\main.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|bEthLaunch| [ DATA ]

  00000			 AREA	 |.data|, DATA
	 COMMON	|EdbgDebugZone|, 0x4


  00000			 AREA	 |.bss|, NOINIT
|bEthLaunch| %	0x4
|pfnPlatformInit2| % 0x4
|pfnPreDownload| % 0x4
|pfnReadData| %	0x4

  00000			 AREA	 |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
	DCW	0x0
	DCD	0x4033
	DCB	0x1
	DCB	"AD", 0x0
	DCW	0x1050
	DCW	0x940
	DCD	0x4005
	DCB	0x1
	DCB	"LS", 0x0
	DCW	0x1050
	DCW	0x940
	DCD	0x2078
	DCB	0x1
	DCB	"LS", 0x0
	DCW	0x10ec
	DCW	0x8029
	DCD	0xc0f0
	DCB	0x1
	DCB	"KS", 0x0
	DCW	0x10ec
	DCW	0x8129
	DCD	0x0
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x10ec
	DCW	0x8139
	DCD	0x900b
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x10ec
	DCW	0x8139
	DCD	0xd0c9
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x10ec
	DCW	0x8139
	DCD	0xe04c
	DCB	0x4
	DCB	"RT", 0x0
	DCW	0x1186
	DCW	0x1300
	DCD	0x50ba
	DCB	0x4
	DCB	"DL", 0x0
	DCW	0x100b
	DCW	0x20
	DCD	0xa0cc
	DCB	0x5
	DCB	"NG", 0x0
	DCW	0x10b7
	DCW	0x9050
	DCD	0x6008
	DCB	0x6
	DCB	"3C", 0x0
	DCW	0x10b7
	DCW	0x9200
	DCD	0x476
	DCB	0x6
	DCB	"3C", 0x0
	EXPORT	|OEMLaunch|
	EXPORT	|??_C@_0DG@MOBB@ERROR?3?5EbootWaitForHostConenct?5f@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CJ@JILK@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DI@JEIJ@Enabling?5debug?5messages?5over?5Eth@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DI@EBJP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_0DI@HAGA@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CE@HOK@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| [ DATA ] ; `string'
	IMPORT	|memcpy|
	IMPORT	|EbootWaitForHostConnect|
	IMPORT	|EdbgOutputDebugString|
	IMPORT	|inet_ntoa|
	IMPORT	|DelayInuSec|
; File d:\wince420\platform\ep931x\eboot\main.c

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

  00000			 AREA	 |.pdata$$OEMLaunch|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMLaunch| } ; comdat associative
|$T37667| DCD	|OEMLaunch|
	DCD	0x4000be02

  00000			 AREA	 |.rdata| { |??_C@_0DG@MOBB@ERROR?3?5EbootWaitForHostConenct?5f@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@MOBB@ERROR?3?5EbootWaitForHostConenct?5f@| DCB "ERROR: EbootWa"
	DCB	"itForHostConenct failed, spin forever", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CJ@JILK@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CJ@JILK@EBOOT?3?5pCfgData?5?$DN?50x?$CFx?0?5pCfgData@| DCB "EBOOT"
	DCB	": pCfgData = 0x%x, pCfgData->Flags", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DI@JEIJ@Enabling?5debug?5messages?5over?5Eth@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@JEIJ@Enabling?5debug?5messages?5over?5Eth@| DCB "Enabling debu"
	DCB	"g messages over Ethernet, IP: %s, port:%u", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DI@EBJP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@EBJP@Enabling?5CESH?5over?5Ethernet?0?5?5?5?5@| DCB "Enabling "
	DCB	"CESH over Ethernet,           IP: %s, port:%u", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0DI@HAGA@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DI@HAGA@Enabling?5KDBG?5over?5Ethernet?0?5?5?5?5@| DCB "Enabling "
	DCB	"KDBG over Ethernet,           IP: %s, port:%u", 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CE@HOK@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CE@HOK@INFO?3?5Jumping?5to?5image?5at?50x?$CFX?4?4@| DCB "INFO: J"
	DCB	"umping to image at 0x%X...", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

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

  00000		 |OEMLaunch| PROC

; 124  : {

  00000	e92d40f0	 stmdb     sp!, {r4 - r7, lr}
  00004	e24dd00c	 sub       sp, sp, #0xC
  00008		 |$M37665|
  00008	e1a07002	 mov       r7, r2

; 125  :     EDBG_OS_CONFIG_DATA *pCfgData;    
; 126  :     EDBG_ADDR EshellHostAddr;
; 127  : 
; 128  :     if (bEthLaunch)	// Wait for host connection?

  0000c	e59f62e0	 ldr       r6, [pc, #0x2E0]
  00010	e5960000	 ldr       r0, [r6]
  00014	e3500000	 cmp       r0, #0
  00018	0a0000a0	 beq       |$L37535|

; 129  :     {
; 130  :         memset (&EshellHostAddr, 0, sizeof (EshellHostAddr));

  0001c	e3a00000	 mov       r0, #0
  00020	e58d0000	 str       r0, [sp]

; 131  :         //pDriverGlobals->eth.EdbgAddr
; 132  : 
; 133  :         if (!(pCfgData = EbootWaitForHostConnect(&pDriverGlobals->eth.EdbgAddr, &EshellHostAddr)))

  00024	e28d1000	 add       r1, sp, #0
  00028	e58d0004	 str       r0, [sp, #4]
  0002c	e58d0008	 str       r0, [sp, #8]
  00030	e3a00b22	 mov       r0, #0x22, 22
  00034	e3800010	 orr       r0, r0, #0x10
  00038	eb000000	 bl        EbootWaitForHostConnect
  0003c	e1b05000	 movs      r5, r0
  00040	1a000002	 bne       |$L37537|

; 134  :         {
; 135  :             EdbgOutputDebugString("ERROR: EbootWaitForHostConenct failed, spin forever\r\n");

  00044	e59f02a4	 ldr       r0, [pc, #0x2A4]
  00048	eb000000	 bl        EdbgOutputDebugString

; 136  :             SpinForever();

  0004c	eb000000	 bl        SpinForever
  00050		 |$L37537|

; 137  :         }
; 138  :         EdbgOutputDebugString
; 139  :         (
; 140  :             "EBOOT: pCfgData = 0x%x, pCfgData->Flags\n",
; 141  :             (ULONG)pCfgData,
; 142  :             (ULONG)pCfgData->Flags
; 143  :         );

  00050	e5d52000	 ldrb      r2, [r5]
  00054	e1a01005	 mov       r1, r5
  00058	e59f028c	 ldr       r0, [pc, #0x28C]
  0005c	eb000000	 bl        EdbgOutputDebugString

; 144  : 
; 145  :         if (pCfgData->Flags & EDBG_FL_DBGMSG)

  00060	e5d53000	 ldrb      r3, [r5]
  00064	e3130001	 tst       r3, #1
  00068	0a000029	 beq       |$L37542|

; 146  :         {
; 147  :             EdbgOutputDebugString("Enabling debug messages over Ethernet, IP: %s, port:%u\n",
; 148  :                               inet_ntoa(pCfgData->DbgMsgIPAddr),ntohs(pCfgData->DbgMsgPort));

  0006c	e5d51002	 ldrb      r1, [r5, #2]
  00070	e5d50003	 ldrb      r0, [r5, #3]
  00074	e1812400	 orr       r2, r1, r0, lsl #8
  00078	e5d51004	 ldrb      r1, [r5, #4]
  0007c	e5d50005	 ldrb      r0, [r5, #5]
  00080	e1823801	 orr       r3, r2, r1, lsl #16
  00084	e1830c00	 orr       r0, r3, r0, lsl #24
  00088	eb000000	 bl        inet_ntoa
  0008c	e5d51006	 ldrb      r1, [r5, #6]
  00090	e1a04000	 mov       r4, r0
  00094	e5d50007	 ldrb      r0, [r5, #7]
  00098	e1813400	 orr       r3, r1, r0, lsl #8
  0009c	e1a01403	 mov       r1, r3, lsl #8
  000a0	e1a00801	 mov       r0, r1, lsl #16
  000a4	e1a02820	 mov       r2, r0, lsr #16
  000a8	e1a01802	 mov       r1, r2, lsl #16
  000ac	e1a00821	 mov       r0, r1, lsr #16
  000b0	e1802423	 orr       r2, r0, r3, lsr #8
  000b4	e59f022c	 ldr       r0, [pc, #0x22C]
  000b8	e1a01004	 mov       r1, r4
  000bc	eb000000	 bl        EdbgOutputDebugString

; 149  :             memcpy((void *)&pDriverGlobals->eth.DbgHostAddr.wMAC, (void *)&EshellHostAddr.wMAC,6);

  000c0	e3a00b22	 mov       r0, #0x22, 22
  000c4	e3800038	 orr       r0, r0, #0x38
  000c8	e28d1004	 add       r1, sp, #4
  000cc	e3a02006	 mov       r2, #6
  000d0	eb000000	 bl        memcpy

; 150  :             pDriverGlobals->eth.DbgHostAddr.dwIP  = pCfgData->DbgMsgIPAddr;

  000d4	e5d51002	 ldrb      r1, [r5, #2]
  000d8	e5d50003	 ldrb      r0, [r5, #3]
  000dc	e3a04b22	 mov       r4, #0x22, 22
  000e0	e3844034	 orr       r4, r4, #0x34
  000e4	e1812400	 orr       r2, r1, r0, lsl #8
  000e8	e5d51004	 ldrb      r1, [r5, #4]
  000ec	e5d50005	 ldrb      r0, [r5, #5]
  000f0	e1823801	 orr       r3, r2, r1, lsl #16
  000f4	e1831c00	 orr       r1, r3, r0, lsl #24
  000f8	e5841000	 str       r1, [r4]

; 151  :             pDriverGlobals->eth.DbgHostAddr.wPort = pCfgData->DbgMsgPort;

  000fc	e3a02b22	 mov       r2, #0x22, 22
  00100	e5d51006	 ldrb      r1, [r5, #6]
  00104	e382203e	 orr       r2, r2, #0x3E
  00108	e5d50007	 ldrb      r0, [r5, #7]
  0010c	e1811400	 orr       r1, r1, r0, lsl #8
  00110	e1c210b0	 strh      r1, [r2]
  00114		 |$L37542|

; 152  :         }
; 153  :         if (pCfgData->Flags & EDBG_FL_PPSH)

  00114	e5d50000	 ldrb      r0, [r5]
  00118	e3100002	 tst       r0, #2
  0011c	0a000029	 beq       |$L37553|

; 154  :         {
; 155  :             EdbgOutputDebugString("Enabling CESH over Ethernet,           IP: %s, port:%u\n",
; 156  :                               inet_ntoa(pCfgData->PpshIPAddr),ntohs(pCfgData->PpshPort));

  00120	e5d51008	 ldrb      r1, [r5, #8]
  00124	e5d50009	 ldrb      r0, [r5, #9]
  00128	e1812400	 orr       r2, r1, r0, lsl #8
  0012c	e5d5100a	 ldrb      r1, [r5, #0xA]
  00130	e5d5000b	 ldrb      r0, [r5, #0xB]
  00134	e1823801	 orr       r3, r2, r1, lsl #16
  00138	e1830c00	 orr       r0, r3, r0, lsl #24
  0013c	eb000000	 bl        inet_ntoa
  00140	e5d5100c	 ldrb      r1, [r5, #0xC]
  00144	e1a04000	 mov       r4, r0
  00148	e5d5000d	 ldrb      r0, [r5, #0xD]
  0014c	e1813400	 orr       r3, r1, r0, lsl #8
  00150	e1a01403	 mov       r1, r3, lsl #8
  00154	e1a00801	 mov       r0, r1, lsl #16
  00158	e1a02820	 mov       r2, r0, lsr #16
  0015c	e1a01802	 mov       r1, r2, lsl #16
  00160	e1a00821	 mov       r0, r1, lsr #16
  00164	e1802423	 orr       r2, r0, r3, lsr #8
  00168	e59f0174	 ldr       r0, [pc, #0x174]
  0016c	e1a01004	 mov       r1, r4
  00170	eb000000	 bl        EdbgOutputDebugString

; 157  :             memcpy((void *)&pDriverGlobals->eth.PpshHostAddr.wMAC, (void *)&EshellHostAddr.wMAC,6);

  00174	e3a00b22	 mov       r0, #0x22, 22
  00178	e3800050	 orr       r0, r0, #0x50
  0017c	e28d1004	 add       r1, sp, #4
  00180	e3a02006	 mov       r2, #6
  00184	eb000000	 bl        memcpy

; 158  :             pDriverGlobals->eth.PpshHostAddr.dwIP  = pCfgData->PpshIPAddr;

  00188	e5d51008	 ldrb      r1, [r5, #8]
  0018c	e5d50009	 ldrb      r0, [r5, #9]
  00190	e3a04b22	 mov       r4, #0x22, 22
  00194	e384404c	 orr       r4, r4, #0x4C
  00198	e1812400	 orr       r2, r1, r0, lsl #8
  0019c	e5d5100a	 ldrb      r1, [r5, #0xA]
  001a0	e5d5000b	 ldrb      r0, [r5, #0xB]
  001a4	e1823801	 orr       r3, r2, r1, lsl #16
  001a8	e1831c00	 orr       r1, r3, r0, lsl #24
  001ac	e5841000	 str       r1, [r4]

; 159  :             pDriverGlobals->eth.PpshHostAddr.wPort = pCfgData->PpshPort;

  001b0	e3a02b22	 mov       r2, #0x22, 22
  001b4	e5d5100c	 ldrb      r1, [r5, #0xC]
  001b8	e3822056	 orr       r2, r2, #0x56
  001bc	e5d5000d	 ldrb      r0, [r5, #0xD]
  001c0	e1811400	 orr       r1, r1, r0, lsl #8
  001c4	e1c210b0	 strh      r1, [r2]
  001c8		 |$L37553|

; 160  :         }
; 161  :         if (pCfgData->Flags & EDBG_FL_KDBG)

  001c8	e5d50000	 ldrb      r0, [r5]
  001cc	e3100004	 tst       r0, #4
  001d0	0a000029	 beq       |$L37564|

; 162  :         {
; 163  :             EdbgOutputDebugString("Enabling KDBG over Ethernet,           IP: %s, port:%u\n",
; 164  :                               inet_ntoa(pCfgData->KdbgIPAddr),ntohs(pCfgData->KdbgPort));

  001d4	e5d5100e	 ldrb      r1, [r5, #0xE]
  001d8	e5d5000f	 ldrb      r0, [r5, #0xF]
  001dc	e1812400	 orr       r2, r1, r0, lsl #8
  001e0	e5d51010	 ldrb      r1, [r5, #0x10]

⌨️ 快捷键说明

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