📄 m29w800dt.cod
字号:
; 481 : }
00080 e28dd008 add sp, sp, #8
00084 e8bd4070 ldmia sp!, {r4 - r6, lr}
00088 e12fff1e bx lr
0008c |$L34789|
0008c 00000000 DCD |s_STFlsInfo|
00090 |$M34785|
ENDP ; |?Spansion_Nor_FMD_SetBlockStatus@@YAHKK@Z|, Spansion_Nor_FMD_SetBlockStatus
00000 AREA |.text| { |?EraseBlockEx@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?EraseBlockEx@@YAHK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?EraseBlockEx@@YAHK@Z| } ; comdat associative
|$T34814| DCD |$L34813|
DCD 0x40002501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?EraseBlockEx@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?EraseBlockEx@@YAHK@Z| PROC ; EraseBlockEx
; 485 : {
00000 |$L34813|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M34811|
00004 e1a01000 mov r1, r0
; 486 : STUnlockChip(&s_STFlsInfo);
00008 e59f4080 ldr r4, [pc, #0x80]
0000c e3a050aa mov r5, #0xAA
00010 e3a06055 mov r6, #0x55
00014 e5942000 ldr r2, [r4]
00018 e5943024 ldr r3, [r4, #0x24]
; 487 : STIssueCmd(&s_STFlsInfo, ST_CMD_ERASE);
0001c e3a0e080 mov lr, #0x80
; 488 : STUnlockChip(&s_STFlsInfo);
; 489 : STWriteWord(&s_STFlsInfo,EraseAddr, (WORD)s_STFlsInfo.stFlashCmd.dwEraseConfm);
; 490 :
; 491 : if(!STWaitComplete(&s_STFlsInfo))
00020 e1a00004 mov r0, r4
00024 e18250b3 strh r5, [r2, +r3]
00028 e5942000 ldr r2, [r4]
0002c e5943028 ldr r3, [r4, #0x28]
00030 e18260b3 strh r6, [r2, +r3]
00034 e5942020 ldr r2, [r4, #0x20]
00038 e5943000 ldr r3, [r4]
0003c e182e0b3 strh lr, [r2, +r3]
00040 e5942000 ldr r2, [r4]
00044 e5943024 ldr r3, [r4, #0x24]
00048 e18250b3 strh r5, [r2, +r3]
0004c e5942000 ldr r2, [r4]
00050 e5943028 ldr r3, [r4, #0x28]
00054 e18260b3 strh r6, [r2, +r3]
00058 e5942000 ldr r2, [r4]
0005c e594301c ldr r3, [r4, #0x1C]
00060 e18230b1 strh r3, [r2, +r1]
00064 eb000000 bl |?STWaitComplete@@YAHPAU_ST_FLS_INFO_@@@Z|
00068 e3500000 cmp r0, #0
; 492 : {
; 493 : STIssueCmd(&s_STFlsInfo,ST_CMD_RESET);
0006c 05942020 ldreq r2, [r4, #0x20]
00070 05943000 ldreq r3, [r4]
00074 03a010f0 moveq r1, #0xF0
; 494 : return FALSE;
00078 03a00000 moveq r0, #0
0007c 018210b3 streqh r1, [r2, +r3]
; 497 : }
00080 08bd4070 ldmeqia sp!, {r4 - r6, lr}
; 495 : }
; 496 : return TRUE;
00084 13a00001 movne r0, #1
; 497 : }
00088 18bd4070 ldmneia sp!, {r4 - r6, lr}
0008c e12fff1e bx lr
00090 |$L34816|
00090 00000000 DCD |s_STFlsInfo|
00094 |$M34812|
ENDP ; |?EraseBlockEx@@YAHK@Z|, EraseBlockEx
EXPORT |?Spansion_Nor_FMD_EraseBlock@@YAHK@Z| ; Spansion_Nor_FMD_EraseBlock
EXPORT |??_C@_1IC@EAMLHEPB@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAn@| [ DATA ] ; `string'
EXPORT |??_C@_1CM@BPFBCCLL@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA0?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$AN@| [ DATA ] ; `string'
EXPORT |??_C@_1CO@KDBKBJDA@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA1?$AA6?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1DA@OCCPBOIL@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?5?$AAe?$AAr?$AAr?$AAo@| [ DATA ] ; `string'
00000 AREA |.text| { |?Spansion_Nor_FMD_EraseBlock@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?Spansion_Nor_FMD_EraseBlock@@YAHK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Spansion_Nor_FMD_EraseBlock@@YAHK@Z| } ; comdat associative
|$T34849| DCD |$L34848|
DCD 0x40005801
00000 AREA |.rdata| { |??_C@_1DA@OCCPBOIL@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?5?$AAe?$AAr?$AAr?$AAo@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DA@OCCPBOIL@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA?$CF?$AAd?$AA?5?$AA?5?$AAe?$AAr?$AAr?$AAo@| DCB "E"
DCB 0x0, "r", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " ", 0x0, "b"
DCB 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "%"
DCB 0x0, "d", 0x0, " ", 0x0, " ", 0x0, "e", 0x0, "r", 0x0, "r"
DCB 0x0, "o", 0x0, "r", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CO@KDBKBJDA@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA1?$AA6?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CO@KDBKBJDA@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA1?$AA6?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr@| DCB "E"
DCB 0x0, "r", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " ", 0x0, "b"
DCB 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "1"
DCB 0x0, "6", 0x0, " ", 0x0, "e", 0x0, "r", 0x0, "r", 0x0, "o"
DCB 0x0, "r", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CM@BPFBCCLL@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA0?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@BPFBCCLL@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AA0?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$AN@| DCB "E"
DCB 0x0, "r", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " ", 0x0, "b"
DCB 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "0"
DCB 0x0, " ", 0x0, "e", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1IC@EAMLHEPB@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAn@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1IC@EAMLHEPB@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAn@| DCB "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, ":", 0x0, " "
DCB 0x0, "E", 0x0, "r", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " "
DCB 0x0, "b", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " "
DCB 0x0, "n", 0x0, "u", 0x0, "m", 0x0, ":", 0x0, "0", 0x0, "x"
DCB 0x0, "%", 0x0, "X", 0x0, " ", 0x0, "l", 0x0, "a", 0x0, "r"
DCB 0x0, "g", 0x0, "e", 0x0, " ", 0x0, "t", 0x0, "h", 0x0, "a"
DCB 0x0, "n", 0x0, " ", 0x0, "t", 0x0, "h", 0x0, "e", 0x0, " "
DCB 0x0, "m", 0x0, "a", 0x0, "x", 0x0, " ", 0x0, "b", 0x0, "l"
DCB 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "n", 0x0, "u"
DCB 0x0, "m", 0x0, ":", 0x0, "0", 0x0, "x", 0x0, "%", 0x0, "X"
DCB 0x0, "!", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Spansion_Nor_FMD_EraseBlock@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?Spansion_Nor_FMD_EraseBlock@@YAHK@Z| PROC ; Spansion_Nor_FMD_EraseBlock
; 506 : {
00000 |$L34848|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M34846|
00004 e1a04000 mov r4, r0
; 507 : // EdbgOutputDebugString("Spansion_Nor_FMD_EraseBlock(%d).\r\n", blockID);
; 508 : if(s_STFlsInfo.dwBlkNum < blockID)
00008 e59f114c ldr r1, [pc, #0x14C]
0000c e591200c ldr r2, [r1, #0xC]
00010 e1520004 cmp r2, r4
00014 2a000005 bcs |$L34409|
; 509 : {
; 510 : RETAILMSG(1, (TEXT("ERROR: Erase block num:0x%X large than the max block num:0x%X!\r\n"),blockID,s_STFlsInfo.dwBlkNum));
00018 e59f0138 ldr r0, [pc, #0x138]
0001c e1a01004 mov r1, r4
00020 eb000000 bl NKDbgPrintfW
; 567 : return FALSE;
00024 e3a00000 mov r0, #0
; 572 :
; 573 : }
00028 e8bd4010 ldmia sp!, {r4, lr}
0002c e12fff1e bx lr
00030 |$L34409|
; 511 : return FALSE;
; 512 : }
; 513 :
; 514 : if( blockID == 0 && s_STFlsInfo.flashType == ST_BOTTOM_DEV )
00030 e3540000 cmp r4, #0
00034 1a00001c bne |$L34411|
00038 e5912018 ldr r2, [r1, #0x18]
0003c e3a03d89 mov r3, #0x89, 26
00040 e383301b orr r3, r3, #0x1B
00044 e1520003 cmp r2, r3
00048 1a000034 bne |$L34418|
; 515 : {
; 516 : if(!EraseBlockEx(0))
0004c e3a00000 mov r0, #0
00050 eb000000 bl |?EraseBlockEx@@YAHK@Z|
00054 e3500000 cmp r0, #0
00058 1a000004 bne |$L34412|
0005c |$L34843|
; 517 : {
; 518 : RETAILMSG(1, (TEXT("Erase block 0 error\r\n")));
0005c e59f00f0 ldr r0, [pc, #0xF0]
00060 |$L34844|
00060 eb000000 bl NKDbgPrintfW
; 567 : return FALSE;
00064 e3a00000 mov r0, #0
; 572 :
; 573 : }
00068 e8bd4010 ldmia sp!, {r4, lr}
0006c e12fff1e bx lr
00070 |$L34412|
; 519 : return FALSE;
; 520 : }
; 521 : if(!EraseBlockEx(16 * 1024))
00070 e3a00901 mov r0, #1, 18
00074 eb000000 bl |?EraseBlockEx@@YAHK@Z|
00078 e3500000 cmp r0, #0
; 522 : {
; 523 : RETAILMSG(1, (TEXT("Erase block 0 error\r\n")));
; 524 : return FALSE;
0007c 0afffff6 beq |$L34843|
; 525 : }
; 526 : if(!EraseBlockEx(24 * 1024))
00080 e3a00a06 mov r0, #6, 20
00084 eb000000 bl |?EraseBlockEx@@YAHK@Z|
00088 e3500000 cmp r0, #0
; 527 : {
; 528 : RETAILMSG(1, (TEXT("Erase block 0 error\r\n")));
; 529 : return FALSE;
0008c 0afffff2 beq |$L34843|
; 530 : }
; 531 : if(!EraseBlockEx(32 * 1024))
00090 e3a00902 mov r0, #2, 18
00094 eb000000 bl |?EraseBlockEx@@YAHK@Z|
00098 e3500000 cmp r0, #0
0009c 0affffee beq |$L34843|
000a0 |$L34426|
; 568 : }
; 569 : }
; 570 : }
; 571 : return TRUE;
000a0 e3a00001 mov r0, #1
; 572 :
; 573 : }
000a4 e8bd4010 ldmia sp!, {r4, lr}
000a8 e12fff1e bx lr
000ac |$L34411|
; 532 : {
; 533 : RETAILMSG(1, (TEXT("Erase block 0 error\r\n")));
; 534 : return FALSE;
; 535 : }
; 536 : }
; 537 : else
; 538 : {
; 539 : if(blockID == 15 && (s_STFlsInfo.flashType == ST_TOP_DEV || s_STFlsInfo.flashType == SP_TOP_DEV))
000ac e354000f cmp r4, #0xF
000b0 1a00001a bne |$L34418|
000b4 e5912018 ldr r2, [r1, #0x18]
000b8 e3a03d8b mov r3, #0x8B, 26
000bc e3833017 orr r3, r3, #0x17
000c0 e1520003 cmp r2, r3
000c4 0a000003 beq |$L34419|
000c8 e3a03d8b mov r3, #0x8B, 26
000cc e383301a orr r3, r3, #0x1A
000d0 e1520003 cmp r2, r3
000d4 1a000011 bne |$L34418|
000d8 |$L34419|
; 540 : {
; 541 : if(!EraseBlockEx(0xf0000))
000d8 e3a0080f mov r0, #0xF, 16
000dc eb000000 bl |?EraseBlockEx@@YAHK@Z|
000e0 e3500000 cmp r0, #0
; 542 : {
; 543 : RETAILMSG(1, (TEXT("Erase block 16 error\r\n")));
; 544 : return FALSE;
000e4 0a00000b beq |$L34845|
; 545 : }
; 546 : if(!EraseBlockEx(0xf8000))
000e8 e3a0093e mov r0, #0x3E, 18
000ec eb000000 bl |?EraseBlockEx@@YAHK@Z|
000f0 e3500000 cmp r0, #0
; 547 : {
; 548 : RETAILMSG(1, (TEXT("Erase block 16 error\r\n")));
; 549 : return FALSE;
000f4 0a000007 beq |$L34845|
; 550 : }
; 551 : if(!EraseBlockEx( 0xfa000))
000f8 e3a00afa mov r0, #0xFA, 20
000fc eb000000 bl |?EraseBlockEx@@YAHK@Z|
00100 e3500000 cmp r0, #0
; 552 : {
; 553 : RETAILMSG(1, (TEXT("Erase block 16 error\r\n")));
; 554 : return FALSE;
00104 0a000003 beq |$L34845|
; 555 : }
; 556 : if(!EraseBlockEx( 0xfc000))
00108 e3a0093f mov r0, #0x3F, 18
0010c eb000000 bl |?EraseBlockEx@@YAHK@Z|
00110 e3500000 cmp r0, #0
00114 1affffe1 bne |$L34426|
00118 |$L34845|
; 557 : {
; 558 : RETAILMSG(1, (TEXT("Erase block 16 error\r\n")));
00118 e59f0030 ldr r0, [pc, #0x30]
; 559 : return FALSE;
0011c eaffffcf b |$L34844|
00120 |$L34418|
; 560 : }
; 561 : }
; 562 : else
; 563 : {
; 564 : if(!EraseBlockEx( blockID*s_STFlsInfo.dwBlkSize))
00120 e5913010 ldr r3, [r1, #0x10]
00124 e0000493 mul r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -