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

📄 intel_28f160.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 5 页
字号:

  00048	e1a00004	 mov         r0, r4

; 479  : 
; 480  :     return dwResult;
; 481  : }

  0004c	e28dd008	 add         sp, sp, #8
  00050	e8bd4010	 ldmia       sp!, {r4, lr}
  00054	e12fff1e	 bx          lr
  00058		 |$L30366|
  00058	00000000	 DCD         |g_FlashInfo|
  0005c		 |$M30362|

			 ENDP  ; |?Intel_Nor_FMD_GetBlockStatus@@YAKK@Z|, Intel_Nor_FMD_GetBlockStatus

	EXPORT	|?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z| ; Intel_Nor_FMD_SetBlockStatus
	IMPORT	|Nor_FMD_WriteSector|

  00000			 AREA	 |.text| { |?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z| } ; comdat associative
|$T30381| DCD	|$L30380|
	DCD	0x40002402
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z| PROC ; Intel_Nor_FMD_SetBlockStatus

; 491  : {

  00000		 |$L30380|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M30378|
  00008	e1a04001	 mov         r4, r1
  0000c	e1a05000	 mov         r5, r0

; 492  :     if (dwStatus & (BLOCK_STATUS_READONLY | BLOCK_STATUS_RESERVED)) {

  00010	e314000c	 tst         r4, #0xC
  00014	0a000018	 beq         |$L29902|

; 493  :         
; 494  :         SECTOR_ADDR Sector = blockID * g_FlashInfo.wSectorsPerBlock;

  00018	e59fe06c	 ldr         lr, [pc, #0x6C]

; 495  :         SectorInfo SI;
; 496  : 
; 497  :         if (!Nor_FMD_ReadSector(Sector, NULL, &SI, 1)) {

  0001c	e3a03001	 mov         r3, #1
  00020	e28d2000	 add         r2, sp, #0
  00024	e1de61b6	 ldrh        r6, [lr, #0x16]
  00028	e3a01000	 mov         r1, #0
  0002c	e0000596	 mul         r0, r6, r5
  00030	eb000000	 bl          Nor_FMD_ReadSector
  00034	e3500000	 cmp         r0, #0

; 498  :             return FALSE;

  00038	0a00000d	 beq         |$L30377|

; 499  :         }
; 500  : 
; 501  :         if (dwStatus & BLOCK_STATUS_READONLY) {
; 502  :             SI.bOEMReserved &= ~OEM_BLOCK_READONLY;

  0003c	e5dd3004	 ldrb        r3, [sp, #4]
  00040	e3140004	 tst         r4, #4

; 503  :         }
; 504  :         
; 505  :         if (dwStatus & BLOCK_STATUS_RESERVED) {
; 506  :             SI.bOEMReserved &= ~OEM_BLOCK_RESERVED;
; 507  :         }
; 508  : 
; 509  :         if (!Nor_FMD_WriteSector (Sector, NULL, &SI, 1)) {

  00044	e0000596	 mul         r0, r6, r5
  00048	120330fd	 andne       r3, r3, #0xFD
  0004c	e28d2000	 add         r2, sp, #0
  00050	15cd3004	 strneb      r3, [sp, #4]
  00054	e3140008	 tst         r4, #8
  00058	120330fe	 andne       r3, r3, #0xFE
  0005c	15cd3004	 strneb      r3, [sp, #4]
  00060	e3a03001	 mov         r3, #1
  00064	e3a01000	 mov         r1, #0
  00068	eb000000	 bl          Nor_FMD_WriteSector
  0006c	e3500000	 cmp         r0, #0
  00070	1a000001	 bne         |$L29902|
  00074		 |$L30377|

; 510  :             return FALSE;

  00074	e3a00000	 mov         r0, #0
  00078	ea000000	 b           |$L29895|
  0007c		 |$L29902|

; 511  :         }
; 512  : 
; 513  :     }    
; 514  :     
; 515  :     return TRUE;

  0007c	e3a00001	 mov         r0, #1
  00080		 |$L29895|

; 516  : }

  00080	e28dd008	 add         sp, sp, #8
  00084	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00088	e12fff1e	 bx          lr
  0008c		 |$L30383|
  0008c	00000000	 DCD         |g_FlashInfo|
  00090		 |$M30379|

			 ENDP  ; |?Intel_Nor_FMD_SetBlockStatus@@YAHKK@Z|, Intel_Nor_FMD_SetBlockStatus

	EXPORT	|??_C@_1DG@PFEDBFOC@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAE?$AAr?$AAa?$AAs?$AAe?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe@| [ DATA ] ; `string'

  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
|$T30436| DCD	|$L30435|
	DCD	0x40002501

  00000			 AREA	 |.rdata| { |??_C@_1DG@PFEDBFOC@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAE?$AAr?$AAa?$AAs?$AAe?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DG@PFEDBFOC@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAE?$AAr?$AAa?$AAs?$AAe?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe@| DCB "N"
	DCB	0x0, "o", 0x0, "r", 0x0, "_", 0x0, "F", 0x0, "M", 0x0, "D"
	DCB	0x0, "_", 0x0, "E", 0x0, "r", 0x0, "a", 0x0, "s", 0x0, "e"
	DCB	0x0, "B", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, " "
	DCB	0x0, "e", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?EraseBlockEx@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?EraseBlockEx@@YAHK@Z| PROC		; EraseBlockEx

; 519  : {

  00000		 |$L30435|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M30433|

; 520  : 	intel_IssueCmd(&g_FlashInfo, CMD_ERASE);

  00004	e59f4084	 ldr         r4, [pc, #0x84]
  00008	e3a02020	 mov         r2, #0x20

; 521  : 	intel_WriteWord(&g_FlashInfo, EraseAddr, CMD_ERASE_CONFIRM);

  0000c	e3a0e0d0	 mov         lr, #0xD0
  00010	e5943000	 ldr         r3, [r4]

; 522  : 	
; 523  : 	if(!intel_WaitComplete(&g_FlashInfo))

  00014	e3a01001	 mov         r1, #1
  00018	e1c320b0	 strh        r2, [r3]
  0001c	e5943000	 ldr         r3, [r4]
  00020	e183e0b0	 strh        lr, [r3, +r0]
  00024	e5942000	 ldr         r2, [r4]
  00028	e3a00070	 mov         r0, #0x70
  0002c		 |$L30408|
  0002c	e1c200b0	 strh        r0, [r2]
  00030	e5942000	 ldr         r2, [r4]
  00034	e1d230b0	 ldrh        r3, [r2]
  00038	e3130080	 tst         r3, #0x80
  0003c	0afffffa	 beq         |$L30408|
  00040	e3130020	 tst         r3, #0x20
  00044	1a000001	 bne         |$L30412|
  00048	e3130010	 tst         r3, #0x10
  0004c	0a000000	 beq         |$L30411|
  00050		 |$L30412|
  00050	e3a01000	 mov         r1, #0
  00054		 |$L30411|
  00054	e3a03050	 mov         r3, #0x50
  00058	e1c230b0	 strh        r3, [r2]
  0005c	e3510000	 cmp         r1, #0
  00060	1a000003	 bne         |$L29906|

; 524  : 	{
; 525  : 		RETAILMSG(1, (TEXT("Nor_FMD_EraseBlock error\r\n")));

  00064	e59f0020	 ldr         r0, [pc, #0x20]
  00068	eb000000	 bl          NKDbgPrintfW
  0006c	e3a00000	 mov         r0, #0
  00070	ea000000	 b           |$L30427|
  00074		 |$L29906|
  00074	e3a00001	 mov         r0, #1
  00078		 |$L30427|

; 526  : 		intel_IssueCmd(&g_FlashInfo, CMD_READARRAY);
; 527  : 		return FALSE;
; 528  : 	}
; 529  : 	
; 530  : 	intel_IssueCmd(&g_FlashInfo, CMD_READARRAY);

  00078	e5943000	 ldr         r3, [r4]
  0007c	e3a020ff	 mov         r2, #0xFF

; 531  : 	return TRUE;

  00080	e1c320b0	 strh        r2, [r3]

; 532  : }

  00084	e8bd4010	 ldmia       sp!, {r4, lr}
  00088	e12fff1e	 bx          lr
  0008c		 |$L30438|
  0008c	00000000	 DCD         |??_C@_1DG@PFEDBFOC@?$AAN?$AAo?$AAr?$AA_?$AAF?$AAM?$AAD?$AA_?$AAE?$AAr?$AAa?$AAs?$AAe?$AAB?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe@|
  00090	00000000	 DCD         |g_FlashInfo|
  00094		 |$M30434|

			 ENDP  ; |?EraseBlockEx@@YAHK@Z|, EraseBlockEx

	EXPORT	|?Intel_Nor_FMD_EraseBlock@@YAHK@Z|	; Intel_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@_1CI@IHMEKEHC@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'

  00000			 AREA	 |.text| { |?Intel_Nor_FMD_EraseBlock@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?Intel_Nor_FMD_EraseBlock@@YAHK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Intel_Nor_FMD_EraseBlock@@YAHK@Z| } ; comdat associative
|$T30463| DCD	|$L30462|
	DCD	0x40003b01

  00000			 AREA	 |.rdata| { |??_C@_1CI@IHMEKEHC@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@IHMEKEHC@?$AAE?$AAr?$AAa?$AAs?$AAe?$AA?5?$AAb?$AAl?$AAo?$AAc?$AAk?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?$AN?$AA?6?$AA?$AA@| 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, "e"
	DCB	0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, 0xd, 0x0, 0xa
	DCB	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| { |?Intel_Nor_FMD_EraseBlock@@YAHK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?Intel_Nor_FMD_EraseBlock@@YAHK@Z| PROC ; Intel_Nor_FMD_EraseBlock

; 542  : {

  00000		 |$L30462|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M30460|
  00004	e1a01000	 mov         r1, r0

; 543  : 	DWORD i;
; 544  : 
; 545  : 	if(g_FlashInfo.dwBlkNum < blockID)

  00008	e59f30d8	 ldr         r3, [pc, #0xD8]
  0000c	e593200c	 ldr         r2, [r3, #0xC]
  00010	e1520001	 cmp         r2, r1
  00014	2a000004	 bcs         |$L29912|

; 546  : 	{
; 547  : 		RETAILMSG(1, (TEXT("ERROR: Erase block num:0x%X large than the max block num:0x%X!\r\n"),blockID,g_FlashInfo.dwBlkNum));

  00018	e59f00c4	 ldr         r0, [pc, #0xC4]
  0001c	eb000000	 bl          NKDbgPrintfW

; 578  : 			return FALSE;

  00020	e3a00000	 mov         r0, #0

; 583  : }

  00024	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00028	e12fff1e	 bx          lr
  0002c		 |$L29912|

; 548  : 		return FALSE;
; 549  : 	}
; 550  : 	
; 551  : 	if (blockID == 0 && g_FlashInfo.flashType == FLASH_F160C3BCES)

  0002c	e3510000	 cmp         r1, #0
  00030	1a00000f	 bne         |$L29914|
  00034	e5932018	 ldr         r2, [r3, #0x18]
  00038	e3a03b22	 mov         r3, #0x22, 22
  0003c	e38330c3	 orr         r3, r3, #0xC3
  00040	e1520003	 cmp         r2, r3
  00044	1a00001c	 bne         |$L29921|

; 552  : 	{
; 553  : 		for (i = 0; i < 8; i++)

  00048	e3a04000	 mov         r4, #0
  0004c		 |$L29915|

; 554  : 		{
; 555  : 			if (!EraseBlockEx(i * SMALL_BLOCK_SIZE))

  0004c	e1a00004	 mov         r0, r4
  00050	eb000000	 bl          |?EraseBlockEx@@YAHK@Z|
  00054	e3500000	 cmp         r0, #0
  00058	0a00001b	 beq         |$L30452|
  0005c	e2844a02	 add         r4, r4, #2, 20
  00060	e3540801	 cmp         r4, #1, 16
  00064	3afffff8	 bcc         |$L29915|
  00068		 |$L29927|

; 579  : 		}
; 580  : 	}	
; 581  : 
; 582  : 	return TRUE;

  00068	e3a00001	 mov         r0, #1

; 583  : }

  0006c	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00070	e12fff1e	 bx          lr
  00074		 |$L29914|

; 556  : 			{
; 557  : 				RETAILMSG(1, (TEXT("Erase block error\r\n")));
; 558  : 				return FALSE;
; 559  : 			}
; 560  : 		}
; 561  : 	}
; 562  : 	else if (blockID == 31 && g_FlashInfo.flashType == FLASH_F160C3TDA4137360)

  00074	e351001f	 cmp         r1, #0x1F
  00078	1a00000f	 bne         |$L29921|
  0007c	e5932018	 ldr         r2, [r3, #0x18]
  00080	e3a03b22	 mov         r3, #0x22, 22
  00084	e38330c2	 orr         r3, r3, #0xC2
  00088	e1520003	 cmp         r2, r3
  0008c	1a00000a	 bne         |$L29921|

; 563  : 	{
; 564  : 		for (i = 0; i < 8; i++)

  00090	e3a04000	 mov         r4, #0
  00094	e3a0581f	 mov         r5, #0x1F, 16
  00098		 |$L29922|

; 565  : 		{
; 566  : 			if (!EraseBlockEx(COMMON_BLOCK_SIZE * 31 + i * SMALL_BLOCK_SIZE))		//

  00098	e1a00005	 mov         r0, r5
  0009c	eb000000	 bl          |?EraseBlockEx@@YAHK@Z|
  000a0	e3500000	 cmp         r0, #0
  000a4	0a000008	 beq         |$L30452|
  000a8	e2844001	 add         r

⌨️ 快捷键说明

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