📄 nandfls.cod
字号:
; Function compile flags: /Ogsy
00000 AREA |.text| { |?NandRdId@@YAHPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?NandRdId@@YAHPAE@Z| PROC ; NandRdId
; 617 : {
00000 |$L35979|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M35977|
00004 e1a01000 mov r1, r0
; 618 : /*
; 619 : PXANandInputCmd(CMD_READID);
; 620 : PXANandAleEnable();
; 621 : *(sg_PXANandFlash.pbBassAdd) = 0;
; 622 : PXANandAleDisable();
; 623 :
; 624 : *pbId = *(sg_PXANandFlash.pbBassAdd);
; 625 : *(pbId + 1) = *(sg_PXANandFlash.pbBassAdd);
; 626 : *(pbId + 2) = *(sg_PXANandFlash.pbBassAdd);
; 627 : *(pbId + 3) = *(sg_PXANandFlash.pbBassAdd);
; 628 :
; 629 : return TRUE;
; 630 : */
; 631 : *(sg_PXANandFlash.pbBassAdd + 4) = CMD_READID;
00008 e59f2050 ldr r2, [pc, #0x50]
0000c e3a0e090 mov lr, #0x90
; 632 : *(sg_PXANandFlash.pbBassAdd + 8) = 0;
00010 e3a04000 mov r4, #0
00014 e5923004 ldr r3, [r2, #4]
; 633 : *pbId = *(volatile BYTE *)(sg_PXANandFlash.pbBassAdd);
; 634 : *(pbId + 1) = *(volatile BYTE *)(sg_PXANandFlash.pbBassAdd);
; 635 : *(pbId + 2) = *(volatile BYTE *)(sg_PXANandFlash.pbBassAdd);
; 636 : *(pbId + 3) = *(volatile BYTE *)(sg_PXANandFlash.pbBassAdd);
; 637 : return TRUE;
00018 e3a00001 mov r0, #1
0001c e5c3e004 strb lr, [r3, #4]
00020 e5923004 ldr r3, [r2, #4]
00024 e5c34008 strb r4, [r3, #8]
00028 e5923004 ldr r3, [r2, #4]
0002c e5d33000 ldrb r3, [r3]
00030 e5c13000 strb r3, [r1]
00034 e5923004 ldr r3, [r2, #4]
00038 e5d33000 ldrb r3, [r3]
0003c e5c13001 strb r3, [r1, #1]
00040 e5923004 ldr r3, [r2, #4]
00044 e5d33000 ldrb r3, [r3]
00048 e5c13002 strb r3, [r1, #2]
0004c e5923004 ldr r3, [r2, #4]
00050 e5d33000 ldrb r3, [r3]
00054 e5c13003 strb r3, [r1, #3]
; 638 :
; 639 : }
00058 e8bd4010 ldmia sp!, {r4, lr}
0005c e12fff1e bx lr
00060 |$L35982|
00060 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
00064 |$M35978|
ENDP ; |?NandRdId@@YAHPAE@Z|, NandRdId
00000 AREA |.text| { |?PXANandInputRowAdd@@YAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?PXANandInputRowAdd@@YAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PXANandInputRowAdd@@YAXK@Z| } ; comdat associative
|$T35992| DCD |$L35991|
DCD 0x40001301
; Function compile flags: /Ogsy
00000 AREA |.text| { |?PXANandInputRowAdd@@YAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?PXANandInputRowAdd@@YAXK@Z| PROC ; PXANandInputRowAdd
; 654 : {
00000 |$L35991|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35989|
; 655 : for(WORD i = 0; i < sg_PXANandFlash.dwRowCycles; i++)
00004 e59fe03c ldr lr, [pc, #0x3C]
00008 e59e3028 ldr r3, [lr, #0x28]
0000c e3530000 cmp r3, #0
00010 0a00000a beq |$L35738|
00014 e3a01000 mov r1, #0
00018 |$L35736|
; 656 : {
; 657 : *(sg_PXANandFlash.pbBassAdd + 8) = (BYTE)((NandRowAddr >> (i * 8)) & 0xff);
00018 e59e2004 ldr r2, [lr, #4]
0001c e1a03181 mov r3, r1, lsl #3
00020 e1a03330 mov r3, r0, lsr r3
00024 e2811001 add r1, r1, #1
00028 e5c23008 strb r3, [r2, #8]
0002c e59e3028 ldr r3, [lr, #0x28]
00030 e1a01801 mov r1, r1, lsl #16
00034 e1a01821 mov r1, r1, lsr #16
00038 e1510003 cmp r1, r3
0003c 3afffff5 bcc |$L35736|
00040 |$L35738|
; 658 : }
; 659 : }
00040 e49de004 ldr lr, [sp], #4
00044 e12fff1e bx lr
00048 |$L35994|
00048 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
0004c |$M35990|
ENDP ; |?PXANandInputRowAdd@@YAXK@Z|, PXANandInputRowAdd
00000 AREA |.text| { |?PXANandInputAdd@@YAXKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?PXANandInputAdd@@YAXKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PXANandInputAdd@@YAXKK@Z| } ; comdat associative
|$T36008| DCD |$L36007|
DCD 0x40002101
; Function compile flags: /Ogsy
00000 AREA |.text| { |?PXANandInputAdd@@YAXKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?PXANandInputAdd@@YAXKK@Z| PROC ; PXANandInputAdd
; 662 : {
00000 |$L36007|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M36005|
; 663 : WORD i;
; 664 :
; 665 : for(i = 0; i < sg_PXANandFlash.dwColumnCycles; i++)
00004 e59f4074 ldr r4, [pc, #0x74]
00008 e5943024 ldr r3, [r4, #0x24]
0000c e3530000 cmp r3, #0
00010 0a00000a beq |$L35747|
00014 e3a0e000 mov lr, #0
00018 |$L35745|
; 666 : {
; 667 : *(sg_PXANandFlash.pbBassAdd + 8) = (BYTE)((NandColumnAddr >> (i * 8)) & 0xff);
00018 e5942004 ldr r2, [r4, #4]
0001c e1a0318e mov r3, lr, lsl #3
00020 e1a03331 mov r3, r1, lsr r3
00024 e28ee001 add lr, lr, #1
00028 e5c23008 strb r3, [r2, #8]
0002c e5943024 ldr r3, [r4, #0x24]
00030 e1a0e80e mov lr, lr, lsl #16
00034 e1a0e82e mov lr, lr, lsr #16
00038 e15e0003 cmp lr, r3
0003c 3afffff5 bcc |$L35745|
00040 |$L35747|
; 668 : }
; 669 :
; 670 : for(i = 0; i < sg_PXANandFlash.dwRowCycles; i++)
00040 e5943028 ldr r3, [r4, #0x28]
00044 e3530000 cmp r3, #0
00048 0a00000a beq |$L35751|
0004c e3a01000 mov r1, #0
00050 |$L35749|
; 671 : {
; 672 : *(sg_PXANandFlash.pbBassAdd + 8) = (BYTE)((NandRowAddr >> (i * 8)) & 0xff);
00050 e5942004 ldr r2, [r4, #4]
00054 e1a03181 mov r3, r1, lsl #3
00058 e1a03330 mov r3, r0, lsr r3
0005c e2811001 add r1, r1, #1
00060 e5c23008 strb r3, [r2, #8]
00064 e5943028 ldr r3, [r4, #0x28]
00068 e1a01801 mov r1, r1, lsl #16
0006c e1a01821 mov r1, r1, lsr #16
00070 e1510003 cmp r1, r3
00074 3afffff5 bcc |$L35749|
00078 |$L35751|
; 673 : }
; 674 : }
00078 e8bd4010 ldmia sp!, {r4, lr}
0007c e12fff1e bx lr
00080 |$L36010|
00080 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
00084 |$M36006|
ENDP ; |?PXANandInputAdd@@YAXKK@Z|, PXANandInputAdd
00000 AREA |.text| { |?PXANandInputData@@YAXKPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?PXANandInputData@@YAXKPAE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PXANandInputData@@YAXKPAE@Z| } ; comdat associative
|$T36021| DCD |$L36020|
DCD 0x40000e01
; Function compile flags: /Ogsy
00000 AREA |.text| { |?PXANandInputData@@YAXKPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?PXANandInputData@@YAXKPAE@Z| PROC ; PXANandInputData
; 677 : {
00000 |$L36020|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M36018|
00004 e3500000 cmp r0, #0
; 678 : for(DWORD i = 0; i < dwNumOfData; i++)
00008 e3a0e000 mov lr, #0
0000c 0a000006 beq |$L35760|
00010 e59f401c ldr r4, [pc, #0x1C]
00014 |$L35758|
; 679 : {
; 680 : *(sg_PXANandFlash.pbBassAdd) = pbData[i];
00014 e7de2001 ldrb r2, [lr, +r1]
00018 e5943004 ldr r3, [r4, #4]
0001c e28ee001 add lr, lr, #1
00020 e15e0000 cmp lr, r0
00024 e5c32000 strb r2, [r3]
00028 3afffff9 bcc |$L35758|
0002c |$L35760|
; 681 : }
; 682 : }
0002c e8bd4010 ldmia sp!, {r4, lr}
00030 e12fff1e bx lr
00034 |$L36023|
00034 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
00038 |$M36019|
ENDP ; |?PXANandInputData@@YAXKPAE@Z|, PXANandInputData
EXPORT |?PXANandReadData@@YAXKPAE@Z| ; PXANandReadData
00000 AREA |.text| { |?PXANandReadData@@YAXKPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?PXANandReadData@@YAXKPAE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PXANandReadData@@YAXKPAE@Z| } ; comdat associative
|$T36034| DCD |$L36033|
DCD 0x40000e01
; Function compile flags: /Ogsy
00000 AREA |.text| { |?PXANandReadData@@YAXKPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?PXANandReadData@@YAXKPAE@Z| PROC ; PXANandReadData
; 685 : {
00000 |$L36033|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M36031|
00004 e3500000 cmp r0, #0
; 686 : for(DWORD i = 0; i < dwNumOfData; i++)
00008 e3a02000 mov r2, #0
0000c 0a000006 beq |$L35768|
00010 e59fe01c ldr lr, [pc, #0x1C]
00014 |$L35766|
; 687 : {
; 688 : pbData[i] = *(sg_PXANandFlash.pbBassAdd);
00014 e59e3004 ldr r3, [lr, #4]
00018 e5d33000 ldrb r3, [r3]
0001c e7c23001 strb r3, [r2, +r1]
00020 e2822001 add r2, r2, #1
00024 e1520000 cmp r2, r0
00028 3afffff9 bcc |$L35766|
0002c |$L35768|
; 689 : }
; 690 : }
0002c e49de004 ldr lr, [sp], #4
00030 e12fff1e bx lr
00034 |$L36036|
00034 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
00038 |$M36032|
ENDP ; |?PXANandReadData@@YAXKPAE@Z|, PXANandReadData
00000 AREA |.text| { |?PXANandCheckStatus@@YAXPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?PXANandCheckStatus@@YAXPAE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PXANandCheckStatus@@YAXPAE@Z| } ; comdat associative
|$T36052| DCD |$L36051|
DCD 0x40000900
; Function compile flags: /Ogsy
00000 AREA |.text| { |?PXANandCheckStatus@@YAXPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?PXANandCheckStatus@@YAXPAE@Z| PROC ; PXANandCheckStatus
; 693 : {
00000 |$L36051|
00000 |$M36049|
; 694 : PXANandInputCmd(CMD_STATUS);
00000 e59f2018 ldr r2, [pc, #0x18]
00004 e3a01070 mov r1, #0x70
00008 e5923004 ldr r3, [r2, #4]
0000c e5c31004 strb r1, [r3, #4]
; 695 : PXANandReadData(1, pbStatus);
00010 e5923004 ldr r3, [r2, #4]
00014 e5d33000 ldrb r3, [r3]
00018 e5c03000 strb r3, [r0]
; 696 : // PXANandInputCmd(CMD_READ);
; 697 : // NandDeviceReady();
; 698 : }
0001c e12fff1e bx lr
00020 |$L36054|
00020 00000000 DCD |?sg_PXANandFlash@@3UstPXANandFlash@@A|
00024 |$M36050|
ENDP ; |?PXANandCheckStatus@@YAXPAE@Z|, PXANandCheckStatus
EXPORT |Nand_FMD_Init|
EXPORT |??_C@_1EM@BENDAAA@?$AAN?$AAa?$AAn?$AAd?$AA_?$AAF?$AAM?$AAD?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?3?$AA?5?$AAd?$AAw?$AAN?$AAa?$AAn@| [ DATA ] ; `string'
EXPORT |??_C@_1BM@LHIEIPAP@?$AAm?$AAs?$AAc?$AA0?$AA?5?$AAi?$AAs?$AA?5?$AA?$CF?$AAX?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1EA@IJCPAIBI@?$AAU?$AAn?$AAk?$AAn?$AAo?$AAw?$AAn?$AA?5?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAf?$AAl?$AAa?$AAs?$AAh?$AA?5?$AAt@| [ DATA ] ; `string'
EXPORT |??_C@_1GK@OHEOAFFP@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAC?$AAh?$AAi?$AAp?$AA?3?$AA?5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AA?$CF?$AAd@| [ DATA ] ; `string'
IMPORT |memset|
IMPORT |OALPAtoVA|
00000 AREA |.text| { |Nand_FMD_Init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$Nand_FMD_Init|, PDATA, SELECTION=5, ASSOC=|.text| { |Nand_FMD_Init| } ; comdat associative
|$T36084| DCD |$L36083|
DCD 0x40008801
00000 AREA |.rdata| { |??_C@_1GK@OHEOAFFP@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAC?$AAh?$AAi?$AAp?$AA?3?$AA?5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AA?$CF?$AAd@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GK@OHEOAFFP@?$AAN?$AAa?$AAn?$AAd?$AA?5?$AAC?$AAh?$AAi?$AAp?$AA?3?$AA?5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AA?$CF?$AAd@| DCB "N"
DCB 0x0, "a", 0x0, "n", 0x0, "d", 0x0, " ", 0x0, "C", 0x0, "h"
DCB 0x0, "i", 0x0, "p", 0x0, ":", 0x0, " ", 0x0, "D", 0x0, "e"
DCB 0x0, "t", 0x0, "e", 0x0, "c", 0x0, "t", 0x0, " ", 0x0, "%"
DCB 0x0, "d", 0x0, "M", 0x0, "B", 0x0, " ", 0x0, "s", 0x0, "a"
DCB 0x0, "m", 0x0, "s", 0x0, "u", 0x0, "n", 0x0, "g", 0x0, " "
DCB 0x0, "n", 0x0, "a", 0x0, "n", 0x0, "d", 0x0, " ", 0x0, "f"
DCB 0x0, "l", 0x0, "a", 0x0, "s", 0x0, "h", 0x0, ",", 0x0, " "
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -