📄 c2635.h
字号:
0x600000, /* Start offset of block 48 */
0x620000, /* Start offset of block 49 */
0x640000, /* Start offset of block 50 */
0x660000, /* Start offset of block 51 */
0x680000, /* Start offset of block 52 */
0x6A0000, /* Start offset of block 53 */
0x6C0000, /* Start offset of block 54 */
0x6E0000, /* Start offset of block 55 */
0x700000, /* Start offset of block 56 */
0x720000, /* Start offset of block 57 */
0x740000, /* Start offset of block 58 */
0x760000, /* Start offset of block 59 */
0x780000, /* Start offset of block 60 */
0x7A0000, /* Start offset of block 61 */
0x7C0000, /* Start offset of block 62 */
0x7E0000, /* Start offset of block 63 */
0x800000, /* Start offset of block 64 */
0x820000, /* Start offset of block 65 */
0x840000, /* Start offset of block 66 */
0x860000, /* Start offset of block 67 */
0x880000, /* Start offset of block 68 */
0x8A0000, /* Start offset of block 69 */
0x8C0000, /* Start offset of block 70 */
0x8E0000, /* Start offset of block 71 */
0x900000, /* Start offset of block 72 */
0x920000, /* Start offset of block 73 */
0x940000, /* Start offset of block 74 */
0x960000, /* Start offset of block 75 */
0x980000, /* Start offset of block 76 */
0x9A0000, /* Start offset of block 77 */
0x9C0000, /* Start offset of block 78 */
0x9E0000, /* Start offset of block 79 */
0xA00000, /* Start offset of block 80 */
0xA20000, /* Start offset of block 81 */
0xA40000, /* Start offset of block 82 */
0xA60000, /* Start offset of block 83 */
0xA80000, /* Start offset of block 84 */
0xAA0000, /* Start offset of block 85 */
0xAC0000, /* Start offset of block 86 */
0xAE0000, /* Start offset of block 87 */
0xB00000, /* Start offset of block 88 */
0xB20000, /* Start offset of block 89 */
0xB40000, /* Start offset of block 90 */
0xB60000, /* Start offset of block 91 */
0xB80000, /* Start offset of block 92 */
0xBA0000, /* Start offset of block 93 */
0xBC0000, /* Start offset of block 94 */
0xBE0000, /* Start offset of block 95 */
0xC00000, /* Start offset of block 96 */
0xC20000, /* Start offset of block 97 */
0xC40000, /* Start offset of block 98 */
0xC60000, /* Start offset of block 99 */
0xC80000, /* Start offset of block 100 */
0xCA0000, /* Start offset of block 101 */
0xCC0000, /* Start offset of block 102 */
0xCE0000, /* Start offset of block 103 */
0xD00000, /* Start offset of block 104 */
0xD20000, /* Start offset of block 105 */
0xD40000, /* Start offset of block 106 */
0xD60000, /* Start offset of block 107 */
0xD80000, /* Start offset of block 108 */
0xDA0000, /* Start offset of block 109 */
0xDC0000, /* Start offset of block 110 */
0xDE0000, /* Start offset of block 111 */
0xE00000, /* Start offset of block 112 */
0xE20000, /* Start offset of block 113 */
0xE40000, /* Start offset of block 114 */
0xE60000, /* Start offset of block 115 */
0xE80000, /* Start offset of block 116 */
0xEA0000, /* Start offset of block 117 */
0xEC0000, /* Start offset of block 118 */
0xEE0000, /* Start offset of block 119 */
0xF00000, /* Start offset of block 120 */
0xF20000, /* Start offset of block 121 */
0xF40000, /* Start offset of block 122 */
0xF60000, /* Start offset of block 123 */
0xF80000, /* Start offset of block 124 */
0xFA0000, /* Start offset of block 125 */
0xFC0000, /* Start offset of block 126 */
0xFE0000, /* Start offset of block 127 */
}; /* EndArray BlockOffset[] */
#endif /* USE_M29W128G_8 */
#ifdef USE_M29W128G_16 /* The M29W128G device 16 bit */
#define MANUFACTURER_ST (0x0020) /* ST Manufacturer Code is 0x20 */
#define EXPECTED_DEVICE (0x227E) /* Device code for the M29W128G */
#define FLASH_SIZE (0x800000) /* Total device size in Words */
#define FLASH_WRITE_BUFFER_SIZE 32 /* Write Buffer = 32 Word */
#define FLASH_ENHANCED_BUFFER_SIZE 256 /* Enhaced Buffer size = 256 word, available in 16 bit mode only*/
#define FLASH_MWA 1 /* Minimum Write Access */
#define ShAddr(A) (A) /* Used to supports the 8bit Commands */
#define ConvAddr(A) (A) /* Used to supports the 8bit Commands */
static const ubyte BlockGroupOffset[] = {
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1
};
static const udword BlockOffset[] = {
0x000000, /* Start offset of block 0 */
0x010000, /* Start offset of block 1 */
0x020000, /* Start offset of block 2 */
0x030000, /* Start offset of block 3 */
0x040000, /* Start offset of block 4 */
0x050000, /* Start offset of block 5 */
0x060000, /* Start offset of block 6 */
0x070000, /* Start offset of block 7 */
0x080000, /* Start offset of block 8 */
0x090000, /* Start offset of block 9 */
0x0A0000, /* Start offset of block 10 */
0x0B0000, /* Start offset of block 11 */
0x0C0000, /* Start offset of block 12 */
0x0D0000, /* Start offset of block 13 */
0x0E0000, /* Start offset of block 14 */
0x0F0000, /* Start offset of block 15 */
0x100000, /* Start offset of block 16 */
0x110000, /* Start offset of block 17 */
0x120000, /* Start offset of block 18 */
0x130000, /* Start offset of block 19 */
0x140000, /* Start offset of block 20 */
0x150000, /* Start offset of block 21 */
0x160000, /* Start offset of block 22 */
0x170000, /* Start offset of block 23 */
0x180000, /* Start offset of block 24 */
0x190000, /* Start offset of block 25 */
0x1A0000, /* Start offset of block 26 */
0x1B0000, /* Start offset of block 27 */
0x1C0000, /* Start offset of block 28 */
0x1D0000, /* Start offset of block 29 */
0x1E0000, /* Start offset of block 30 */
0x1F0000, /* Start offset of block 31 */
0x200000, /* Start offset of block 32 */
0x210000, /* Start offset of block 33 */
0x220000, /* Start offset of block 34 */
0x230000, /* Start offset of block 35 */
0x240000, /* Start offset of block 36 */
0x250000, /* Start offset of block 37 */
0x260000, /* Start offset of block 38 */
0x270000, /* Start offset of block 39 */
0x280000, /* Start offset of block 40 */
0x290000, /* Start offset of block 41 */
0x2A0000, /* Start offset of block 42 */
0x2B0000, /* Start offset of block 43 */
0x2C0000, /* Start offset of block 44 */
0x2D0000, /* Start offset of block 45 */
0x2E0000, /* Start offset of block 46 */
0x2F0000, /* Start offset of block 47 */
0x300000, /* Start offset of block 48 */
0x310000, /* Start offset of block 49 */
0x320000, /* Start offset of block 50 */
0x330000, /* Start offset of block 51 */
0x340000, /* Start offset of block 52 */
0x350000, /* Start offset of block 53 */
0x360000, /* Start offset of block 54 */
0x370000, /* Start offset of block 55 */
0x380000, /* Start offset of block 56 */
0x390000, /* Start offset of block 57 */
0x3A0000, /* Start offset of block 58 */
0x3B0000, /* Start offset of block 59 */
0x3C0000, /* Start offset of block 60 */
0x3D0000, /* Start offset of block 61 */
0x3E0000, /* Start offset of block 62 */
0x3F0000, /* Start offset of block 63 */
0x400000, /* Start offset of block 64 */
0x410000, /* Start offset of block 65 */
0x420000, /* Start offset of block 66 */
0x430000, /* Start offset of block 67 */
0x440000, /* Start offset of block 68 */
0x450000, /* Start offset of block 69 */
0x460000, /* Start offset of block 70 */
0x470000, /* Start offset of block 71 */
0x480000, /* Start offset of block 72 */
0x490000, /* Start offset of block 73 */
0x4A0000, /* Start offset of block 74 */
0x4B0000, /* Start offset of block 75 */
0x4C0000, /* Start offset of block 76 */
0x4D0000, /* Start offset of block 77 */
0x4E0000, /* Start offset of block 78 */
0x4F0000, /* Start offset of block 79 */
0x500000, /* Start offset of block 80 */
0x510000, /* Start offset of block 81 */
0x520000, /* Start offset of block 82 */
0x530000, /* Start offset of block 83 */
0x540000, /* Start offset of block 84 */
0x550000, /* Start offset of block 85 */
0x560000, /* Start offset of block 86 */
0x570000, /* Start offset of block 87 */
0x580000, /* Start offset of block 88 */
0x590000, /* Start offset of block 89 */
0x5A0000, /* Start offset of block 90 */
0x5B0000, /* Start offset of block 91 */
0x5C0000, /* Start offset of block 92 */
0x5D0000, /* Start offset of block 93 */
0x5E0000, /* Start offset of block 94 */
0x5F0000, /* Start offset of block 95 */
0x600000, /* Start offset of block 96 */
0x610000, /* Start offset of block 97 */
0x620000, /* Start offset of block 98 */
0x630000, /* Start offset of block 99 */
0x640000, /* Start offset of block 100 */
0x650000, /* Start offset of block 101 */
0x660000, /* Start offset of block 102 */
0x670000, /* Start offset of block 103 */
0x680000, /* Start offset of block 104 */
0x690000, /* Start offset of block 105 */
0x6A0000, /* Start offset of block 106 */
0x6B0000, /* Start offset of block 107 */
0x6C0000, /* Start offset of block 108 */
0x6D0000, /* Start offset of block 109 */
0x6E0000, /* Start offset of block 110 */
0x6F0000, /* Start offset of block 111 */
0x700000, /* Start offset of block 112 */
0x710000, /* Start offset of block 113 */
0x720000, /* Start offset of block 114 */
0x730000, /* Start offset of block 115 */
0x740000, /* Start offset of block 116 */
0x750000, /* Start offset of block 117 */
0x760000, /* Start offset of block 118 */
0x770000, /* Start offset of block 119 */
0x780000, /* Start offset of block 120 */
0x790000, /* Start offset of block 121 */
0x7A0000, /* Start offset of block 122 */
0x7B0000, /* Start offset of block 123 */
0x7C0000, /* Start offset of block 124 */
0x7D0000, /* Start offset of block 125 */
0x7E0000, /* Start offset of block 126 */
0x7F0000, /* Start offset of block 127 */
}; /* EndArray BlockOffset[] */
#endif /* USE_M29W128G_16 */
#define NUM_BLOCKS (sizeof(BlockOffset)/sizeof(BlockOffset[0]))
/******************************************************************************
Standard functions
*******************************************************************************/
ReturnType Flash( CommandType cmdCommand, ParameterType *fp );
ReturnType FlashBlockErase( uBlockType ublBlockNr );
ReturnType FlashCheckCompatibility( void );
ReturnType FlashChipErase( ReturnType *rpResults );
ReturnType FlashMultipleBlockErase(uBlockType ublNumBlocks,uBlockType *ublpBlock,ReturnType * rpResult);
ReturnType FlashProgram( udword udMode, udword udAddrOff, udword udNrOfElementsInArray, void *pArray );
uCPUBusType FlashRead( udword udAddrOff );
ReturnType FlashReadCfi( uword uwCFIFunc, uCPUBusType *ucpCFIValue );
ReturnType FlashReadDeviceId( uCPUBusType *ucpDeviceID);
ReturnType FlashReadManufacturerCode( uCPUBusType *ucpManufacturerCode);
ReturnType FlashReadMultipleDeviceId(uword uwDeviceIdNr, uCPUBusType *ucpDeviceId );
ReturnType FlashReset( void );
ReturnType FlashResume( void );
ReturnType FlashSingleProgram( udword udAddrOff, uCPUBusType ucVal );
ReturnType FlashSuspend( void );
void FlashWrite( udword udAddrOff, uCPUBusType ucVal );
/******************************************************************************
Fast program functions
*******************************************************************************/
ReturnType FlashBufferProgram( udword udMode,udword udAddrOff, udword udNrOfElementsInArray, void *pArray );
ReturnType FlashBufferProgramAbort( void );
ReturnType FlashBufferPrdogramConfirm( udword udAddrOff );
ReturnType FlashWriteProgramBuffer(udword udMode,udword udAddrOff, udword udNrOfElementsInArray, void *pArray );
#if defined(USE_M29W128G_16)/* In 16 bit Mode */
ReturnType FlashEnhancedBufferProgram(udword udAddrOff, void *pArray );
ReturnType FlashEnhancedBufferProgramConfirm( udword udAddrOff );
ReturnType FlashUnlockBypassEnhancedBufferProgram( udword udAddrOff, void *pArray );
#endif
ReturnType FlashUnlockBypass( void );
ReturnType FlashUnlockBypassProgram (udword udAddrOff, udword NumWords, void *pArray);
void FlashUnlockBypassReset( void );
ReturnType FlashUnlockBypassBlockErase( uBlockType ublBlockNr);
ReturnType FlashUnlockBypassBufferProgram( udword udMode,udword udAddrOff, udword udNrOfElementsInArray, void *pArray );
ReturnType FlashUnlockBypassChipErase( void );
ReturnType FlashUnlockBypassMultipleBlockErase(uBlockType ublNumBlocks,uBlockType *ublpBlock,ReturnType * rpResult);
/******************************************************************************
Utility functions
*******************************************************************************/
static ReturnType FlashCheckBlockEraseError( uBlockType ublBlock );
static ReturnType FlashDataToggle( void );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -