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

📄 bootdevice.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	E:\WM604\PLATFORM\SEUICBSP\SRC\BOOTLOADER\EBOOT\.\BootDevice.c
	CODE32

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


  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	|OEMIsFlashAddr|
	IMPORT	|OALPAtoVA|
; File e:\wm604\platform\seuicbsp\src\bootloader\eboot\bootdevice.c

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

  00000			 AREA	 |.pdata$$OEMIsFlashAddr|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMIsFlashAddr| } ; comdat associative
|$T41110| DCD	|$L41109|
	DCD	0x40001901
; Function compile flags: /Ogsy

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

  00000		 |OEMIsFlashAddr| PROC

; 40   : {

  00000		 |$L41109|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M41107|
  00004	e1a04000	 mov         r4, r0

; 41   :     DWORD dwVirtFlashStart = (DWORD) OALPAtoVA(MAINSTONEII_BASE_PA_BOOT_FLASH, FALSE);

  00008	e3a01000	 mov         r1, #0
  0000c	e3a00000	 mov         r0, #0
  00010	eb000000	 bl          OALPAtoVA
  00014	e1a05000	 mov         r5, r0

; 42   :     DWORD dw2VirtFlashStart = (DWORD) OALPAtoVA(MAINSTONEII_BASE_PA_SECONDARY_FLASH, FALSE);

  00018	e3a00301	 mov         r0, #1, 6
  0001c	e3a01000	 mov         r1, #0
  00020	eb000000	 bl          OALPAtoVA

; 43   : 
; 44   :     if ((dwAddr >= dwVirtFlashStart) && (dwAddr <= (dwVirtFlashStart + MAINSTONEII_SIZE_BOOT_FLASH)))

  00024	e1540005	 cmp         r4, r5
  00028	3a000002	 bcc         |$L40746|
  0002c	e2853301	 add         r3, r5, #1, 6
  00030	e1540003	 cmp         r4, r3

; 45   :     {
; 46   :         // EdbgOutputDebugString("OEMIsFlashAddr.\r\n");
; 47   :         return(TRUE);

  00034	9a000004	 bls         |$L41106|
  00038		 |$L40746|

; 48   :     }
; 49   :     if ((dwAddr >= dw2VirtFlashStart) && (dwAddr <= (dw2VirtFlashStart + MAINSTONEII_SIZE_SECONDARY_FLASH)))

  00038	e1540000	 cmp         r4, r0
  0003c	3a000005	 bcc         |$L40747|
  00040	e2803301	 add         r3, r0, #1, 6
  00044	e1540003	 cmp         r4, r3
  00048	8a000002	 bhi         |$L40747|
  0004c		 |$L41106|

; 50   :     {
; 51   :         // EdbgOutputDebugString("OEMIs2FlashAddr.\r\n");
; 52   :         return(TRUE);

  0004c	e3a00001	 mov         r0, #1

; 56   : }

  00050	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$L40747|

; 53   :     }
; 54   : 	// EdbgOutputDebugString("Not OEMIsFlashAddr.\r\n");
; 55   :     return(FALSE);

  00058	e3a00000	 mov         r0, #0

; 56   : }

  0005c	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00060	e12fff1e	 bx          lr
  00064		 |$M41108|

			 ENDP  ; |OEMIsFlashAddr|

	EXPORT	|OEMMapMemAddr|
	IMPORT	|g_dwMinImageStart|

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

  00000			 AREA	 |.pdata$$OEMMapMemAddr|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMMapMemAddr| } ; comdat associative
|$T41121| DCD	|$L41120|
	DCD	0x40001701
; Function compile flags: /Ogsy

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

  00000		 |OEMMapMemAddr| PROC

; 67   : {

  00000		 |$L41120|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M41118|
  00004	e1a04001	 mov         r4, r1
  00008	e1a05000	 mov         r5, r0

; 68   : 
; 69   : 	if (!g_dwMinImageStart)

  0000c	e59f2044	 ldr         r2, [pc, #0x44]

; 70   : 	{
; 71   : 		g_dwMinImageStart = dwImageStart;
; 72   : 	}
; 73   : 
; 74   :     if (OEMIsFlashAddr(dwAddr))

  00010	e1a00004	 mov         r0, r4
  00014	e5923000	 ldr         r3, [r2]
  00018	e3530000	 cmp         r3, #0
  0001c	05825000	 streq       r5, [r2]
  00020	eb000000	 bl          OEMIsFlashAddr
  00024	e3500000	 cmp         r0, #0

; 75   :     {
; 76   :         // The image being downloaded is a flash image - temporarily
; 77   :         // cache the image in RAM until it's completely downloaded.
; 78   :         //
; 79   :         dwAddr -= dwImageStart;
; 80   :         //TODO - constant.
; 81   :         dwAddr += 0x80100000;

  00028	13a0247f	 movne       r2, #0x7F, 8
  0002c	1382260f	 orrne       r2, r2, #0xF, 12
  00030	10443005	 subne       r3, r4, r5
  00034	10434002	 subne       r4, r3, r2
  00038	1a000003	 bne         |$L40756|

; 82   :     }
; 83   :     else if(dwAddr < 0x4000000)

  0003c	e3540301	 cmp         r4, #1, 6

; 84   :     {
; 85   :     	dwAddr += 0x80100000;

  00040	33a0347f	 movcc       r3, #0x7F, 8
  00044	3383360f	 orrcc       r3, r3, #0xF, 12
  00048	30444003	 subcc       r4, r4, r3
  0004c		 |$L40756|

; 86   :     }
; 87   : 
; 88   :     return((LPBYTE) (dwAddr));

  0004c	e1a00004	 mov         r0, r4

; 89   : }

  00050	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$L41123|
  00058	00000000	 DCD         |g_dwMinImageStart|
  0005c		 |$M41119|

			 ENDP  ; |OEMMapMemAddr|

	EXPORT	|OEMStartEraseFlash|

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

  00000			 AREA	 |.pdata$$OEMStartEraseFlash|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMStartEraseFlash| } ; comdat associative
|$T41131| DCD	|$L41130|
	DCD	0x40000200
; Function compile flags: /Ogsy

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

  00000		 |OEMStartEraseFlash| PROC

; 99   : {

  00000		 |$L41130|
  00000		 |$M41128|

; 100  :     return(TRUE);

  00000	e3a00001	 mov         r0, #1

; 101  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M41129|

			 ENDP  ; |OEMStartEraseFlash|

	EXPORT	|OEMContinueEraseFlash|

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

  00000			 AREA	 |.pdata$$OEMContinueEraseFlash|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMContinueEraseFlash| } ; comdat associative
|$T41138| DCD	|$L41137|
	DCD	0x40000100
; Function compile flags: /Ogsy

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

  00000		 |OEMContinueEraseFlash| PROC

; 112  : {

  00000		 |$L41137|
  00000		 |$M41135|

; 113  : }

  00000	e12fff1e	 bx          lr
  00004		 |$M41136|

			 ENDP  ; |OEMContinueEraseFlash|

	EXPORT	|OEMFinishEraseFlash|

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

  00000			 AREA	 |.pdata$$OEMFinishEraseFlash|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMFinishEraseFlash| } ; comdat associative
|$T41147| DCD	|$L41146|
	DCD	0x40000200
; Function compile flags: /Ogsy

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

  00000		 |OEMFinishEraseFlash| PROC

; 123  : {

  00000		 |$L41146|
  00000		 |$M41144|

; 124  :     return(TRUE);

  00000	e3a00001	 mov         r0, #1

; 125  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M41145|

			 ENDP  ; |OEMFinishEraseFlash|

	EXPORT	|dump|
	EXPORT	|??_C@_03IGDBGCKF@?$CFx?5?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_02PCIJFNDE@?$AN?6?$AA@| [ DATA ]	; `string'
	IMPORT	|EdbgOutputDebugString|

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

  00000			 AREA	 |.pdata$$dump|, PDATA, SELECTION=5, ASSOC=|.text| { |dump| } ; comdat associative
|$T41157| DCD	|$L41156|
	DCD	0x40001101

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

  00000			 AREA	 |.rdata| { |??_C@_03IGDBGCKF@?$CFx?5?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_03IGDBGCKF@?$CFx?5?$AA@| DCB "%x ", 0x0		; `string'
; Function compile flags: /Ogsy

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

  00000		 |dump|	 PROC

; 128  : {

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

; 129  : 	DWORD	i;
; 130  :     for(i = 0; i < 8; i++)

  00004	e59f5034	 ldr         r5, [pc, #0x34]
  00008	e3a04000	 mov         r4, #0
  0000c		 |$L40771|

; 131  : 		EdbgOutputDebugString("%x ", *(BYTE *)(0x80100000 + 64 * 15 * 2056 + 2048 + i));

  0000c	e0843005	 add         r3, r4, r5
  00010	e5d31600	 ldrb        r1, [r3, #0x600]
  00014	e59f0020	 ldr         r0, [pc, #0x20]
  00018	eb000000	 bl          EdbgOutputDebugString
  0001c	e2844001	 add         r4, r4, #1
  00020	e3540008	 cmp         r4, #8
  00024	3afffff8	 bcc         |$L40771|

; 132  :     EdbgOutputDebugString("\r\n");

⌨️ 快捷键说明

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