📄 64m_ese.c
字号:
0x090000L, /* Block 18:090000 - 097FFF(32kword) */
0x098000L, /* Block 19:098000 - 09FFFF(32kword) */
0x0A0000L, /* Block 20:0A0000 - 0A7FFF(32kword) */
0x0A8000L, /* Block 21:0A8000 - 0AFFFF(32kword) */
0x0B0000L, /* Block 22:0B0000 - 0B7FFF(32kword) */
0x0B8000L, /* Block 23:0B8000 - 0BFFFF(32kword) */
0x0C0000L, /* Block 24:0C0000 - 0C7FFF(32kword) */
0x0C8000L, /* Block 25:0C8000 - 0CFFFF(32kword) */
0x0D0000L, /* Block 26:0D0000 - 0D7FFF(32kword) */
0x0D8000L, /* Block 27:0D8000 - 0DFFFF(32kword) */
0x0E0000L, /* Block 28:0E0000 - 0E7FFF(32kword) */
0x0E8000L, /* Block 29:0E8000 - 0EFFFF(32kword) */
0x0F0000L, /* Block 30:0F0000 - 0F7FFF(32kword) */
0x0F8000L, /* Block 31:0F8000 - 0FFFFF(32kword) */
0x100000L, /* Block 32:100000 - 107FFF(32kword) */
0x108000L, /* Block 33:108000 - 10FFFF(32kword) */
0x110000L, /* Block 34:110000 - 117FFF(32kword) */
0x118000L, /* Block 35:118000 - 11FFFF(32kword) */
0x120000L, /* Block 36:120000 - 127FFF(32kword) */
0x128000L, /* Block 37:128000 - 12FFFF(32kword) */
0x130000L, /* Block 38:130000 - 137FFF(32kword) */
0x138000L, /* Block 39:138000 - 13FFFF(32kword) */
0x140000L, /* Block 40:140000 - 147FFF(32kword) */
0x148000L, /* Block 41:148000 - 14FFFF(32kword) */
0x150000L, /* Block 42:150000 - 157FFF(32kword) */
0x158000L, /* Block 43:158000 - 15FFFF(32kword) */
0x160000L, /* Block 44:160000 - 167FFF(32kword) */
0x168000L, /* Block 45:168000 - 16FFFF(32kword) */
0x170000L, /* Block 46:170000 - 177FFF(32kword) */
0x178000L, /* Block 47:178000 - 17FFFF(32kword) */
0x180000L, /* Block 48:180000 - 187FFF(32kword) */
0x188000L, /* Block 49:188000 - 18FFFF(32kword) */
0x190000L, /* Block 50:190000 - 197FFF(32kword) */
0x198000L, /* Block 51:198000 - 19FFFF(32kword) */
0x1A0000L, /* Block 52:1A0000 - 1A7FFF(32kword) */
0x1A8000L, /* Block 53:1A8000 - 1AFFFF(32kword) */
0x1B0000L, /* Block 54:1B0000 - 1B7FFF(32kword) */
0x1B8000L, /* Block 55:1B8000 - 1BFFFF(32kword) */
0x1C0000L, /* Block 56:1C0000 - 1C7FFF(32kword) */
0x1C8000L, /* Block 57:1C8000 - 1CFFFF(32kword) */
0x1D0000L, /* Block 58:1D0000 - 1D7FFF(32kword) */
0x1D8000L, /* Block 59:1D8000 - 1DFFFF(32kword) */
0x1E0000L, /* Block 60:1E0000 - 1E7FFF(32kword) */
0x1E8000L, /* Block 61:1E8000 - 1EFFFF(32kword) */
0x1F0000L, /* Block 62:1F0000 - 1F7FFF(32kword) */
0x1F8000L, /* Block 63:1F8000 - 1FFFFF(32kword) */
0x200000L, /* Block 64:200000 - 207FFF(32kword) */
0x208000L, /* Block 65:208000 - 20FFFF(32kword) */
0x210000L, /* Block 66:210000 - 217FFF(32kword) */
0x218000L, /* Block 67:218000 - 21FFFF(32kword) */
0x220000L, /* Block 68:220000 - 227FFF(32kword) */
0x228000L, /* Block 69:228000 - 22FFFF(32kword) */
0x230000L, /* Block 70:230000 - 237FFF(32kword) */
0x238000L, /* Block 71:238000 - 23FFFF(32kword) */
0x240000L, /* Block 72:240000 - 247FFF(32kword) */
0x248000L, /* Block 73:248000 - 24FFFF(32kword) */
0x250000L, /* Block 74:250000 - 257FFF(32kword) */
0x258000L, /* Block 75:258000 - 25FFFF(32kword) */
0x260000L, /* Block 76:260000 - 267FFF(32kword) */
0x268000L, /* Block 77:268000 - 26FFFF(32kword) */
0x270000L, /* Block 78:270000 - 277FFF(32kword) */
0x278000L, /* Block 79:278000 - 27FFFF(32kword) */
0x280000L, /* Block 80:280000 - 287FFF(32kword) */
0x288000L, /* Block 81:288000 - 28FFFF(32kword) */
0x290000L, /* Block 82:290000 - 297FFF(32kword) */
0x298000L, /* Block 83:298000 - 29FFFF(32kword) */
0x2A0000L, /* Block 84:2A0000 - 2A7FFF(32kword) */
0x2A8000L, /* Block 85:2A8000 - 2AFFFF(32kword) */
0x2B0000L, /* Block 86:2B0000 - 2B7FFF(32kword) */
0x2B8000L, /* Block 87:2B8000 - 2BFFFF(32kword) */
0x2C0000L, /* Block 88:2C0000 - 2C7FFF(32kword) */
0x2C8000L, /* Block 89:2C8000 - 2CFFFF(32kword) */
0x2D0000L, /* Block 90:2D0000 - 2D7FFF(32kword) */
0x2D8000L, /* Block 91:2D8000 - 2DFFFF(32kword) */
0x2E0000L, /* Block 92:2E0000 - 2E7FFF(32kword) */
0x2E8000L, /* Block 93:2E8000 - 2EFFFF(32kword) */
0x2F0000L, /* Block 94:2F0000 - 2F7FFF(32kword) */
0x2F8000L, /* Block 95:2F8000 - 2FFFFF(32kword) */
0x300000L, /* Block 96:300000 - 307FFF(32kword) */
0x308000L, /* Block 97:308000 - 30FFFF(32kword) */
0x310000L, /* Block 98:310000 - 317FFF(32kword) */
0x318000L, /* Block 99:318000 - 31FFFF(32kword) */
0x320000L, /* Block 100:320000 - 327FFF(32kword) */
0x328000L, /* Block 101:328000 - 32FFFF(32kword) */
0x330000L, /* Block 102:330000 - 337FFF(32kword) */
0x338000L, /* Block 103:338000 - 33FFFF(32kword) */
0x340000L, /* Block 104:340000 - 347FFF(32kword) */
0x348000L, /* Block 105:348000 - 34FFFF(32kword) */
0x350000L, /* Block 106:350000 - 357FFF(32kword) */
0x358000L, /* Block 107:358000 - 35FFFF(32kword) */
0x360000L, /* Block 108:360000 - 367FFF(32kword) */
0x368000L, /* Block 109:368000 - 36FFFF(32kword) */
0x370000L, /* Block 110:370000 - 377FFF(32kword) */
0x378000L, /* Block 111:378000 - 37FFFF(32kword) */
0x380000L, /* Block 112:380000 - 387FFF(32kword) */
0x388000L, /* Block 113:388000 - 38FFFF(32kword) */
0x390000L, /* Block 114:390000 - 397FFF(32kword) */
0x398000L, /* Block 115:398000 - 39FFFF(32kword) */
0x3A0000L, /* Block 116:3A0000 - 3A7FFF(32kword) */
0x3A8000L, /* Block 117:3A8000 - 3AFFFF(32kword) */
0x3B0000L, /* Block 118:3B0000 - 3B7FFF(32kword) */
0x3B8000L, /* Block 119:3B8000 - 3BFFFF(32kword) */
0x3C0000L, /* Block 120:3C0000 - 3C7FFF(32kword) */
0x3C8000L, /* Block 121:3C8000 - 3CFFFF(32kword) */
0x3D0000L, /* Block 122:3D0000 - 3D7FFF(32kword) */
0x3D8000L, /* Block 123:3D8000 - 3DFFFF(32kword) */
0x3E0000L, /* Block 124:3E0000 - 3E7FFF(32kword) */
0x3E8000L, /* Block 125:3E8000 - 3EFFFF(32kword) */
0x3F0000L, /* Block 126:3F0000 - 3F7FFF(32kword) */
0x3F8000L, /* Block 127:3F8000 - 3F8FFF( 4kword) */
0x3F9000L, /* Block 128:3F9000 - 3F9FFF( 4kword) */
0x3FA000L, /* Block 129:3FA000 - 3FAFFF( 4kword) */
0x3FB000L, /* Block 130:3FB000 - 3FBFFF( 4kword) */
0x3FC000L, /* Block 131:3FC000 - 3FCFFF( 4kword) */
0x3FD000L, /* Block 132:3FD000 - 3FDFFF( 4kword) */
0x3FE000L, /* Block 133:3FE000 - 3FEFFF( 4kword) */
0x3FF000L /* Block 134:3FF000 - 3FFFFF( 4kword) */
};
#endif
/* Specify Erase Block Number */
static const unsigned short nBlocks = sizeof( BlockOfs)/sizeof( BlockOfs[0]);
int EraseStop; /* Request of Suspend Erase */
/******************************************************************************
* FmEraseSuspendResume() Erase Suspend/Resume operation
* ---------------------------------------------------------------------------
* Declaration int FmEraseSuspendResume(unsigned short *pEraseStart,
* unsigned char BlockNum)
* ---------------------------------------------------------------------------
* Description This function is a sample program in the case of reading data
* from the same bank during erase.
* In this sample program, when an EraseStop flag is set to TRUE
* during erase function, function is interrupted and it waits to
* set an EraseStop flag to FALSE.
* If an EraseStop flag is set to FALSE, it will consider that
* read the data in other tasks was completed, and function will
* be resumed.
* Please initialize the EraseStop flag by FALSE.
* ---------------------------------------------------------------------------
* Parameter unsigned short *pEraseStart; Erase address
* unsigned char BlockNum; Erase block number
* ---------------------------------------------------------------------------
* Return Value int Errflg;
* TRUE : Erase normal stop
* FALSE: Erase abnormal stop
* ---------------------------------------------------------------------------
* No Related Function
* ---------------------------------------------------------------------------
* Version Ver. 0.10.00 '03/03/07 First release
*******************************************************************************/
int FmEraseSuspendResume(unsigned short *pEraseStart,unsigned char BlockNum)
{
int Errflg = TRUE; /* Error Flag */
unsigned short *pCopyEraseStart; /* Erase Start Address */
pCopyEraseStart = pEraseStart;
if(BlockNum >= nBlocks) return FALSE; /* Check of Block Number */
/***** Specified Erase Address *****/
pEraseStart = pEraseStart + BlockOfs[BlockNum];
/***** Output of Block Erase Command *****/
*pEraseStart = 0x20; /* 1st Bus Cycle */
*pEraseStart = 0xd0; /* 2nd Bus Cycle */
/***** Status Polling *****/
while((*pEraseStart & 0x80) != 0x80) { /* Check of Status Data */
if( EraseStop == TRUE) { /* Check of Request Suspend Erase */
/***** Suspend Erase *****/
if ((*pEraseStart & 0xC0) == 0x00) {
*pEraseStart = 0xB0; /* Output of Suspend Command */
/*==== Supend Status Polling ====*/
while((*pEraseStart & 0x40) != 0x40);/* Status Data Confirmation */
}else{
Errflg = FALSE; /* Set of Error Flag */
break;
}
*pEraseStart = 0xFF; /* Output of Read Array Command */
/***** Waiting for Data Reference *****/
while( EraseStop == TRUE);
/***** Resume Erase *****/
*pEraseStart = 0x70; /* Read Status Register */
if ((*pEraseStart & 0xC0) == 0xC0) {/* Suspend Continue丠 */
*pEraseStart = 0xD0; /* Output of Resume Command */
}else{
Errflg = FALSE; /* Set of Error Flag */
break;
}
}
}
if ((*pEraseStart & 0x38) != 0x00) { /* Check of Error */
Errflg = FALSE; /* Set of Error Flag */
*pEraseStart = 0x50; /* Clear Status */
}
*pCopyEraseStart = 0xff; /* Output of Read Array Command */
return Errflg;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -