📄 bootdevice.cod
字号:
; 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 + -