flashdrv.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
- /* flashdrv.h - FLASH memory interface header file */
- /* Copyright Galileo Technology. */
- #ifndef __INCflashdrvh
- #define __INCflashdrvh
- /* includes */
- #include "core.h"
- /* defines */
- /* Supported Flash Manufactures */
- #define AMD_FLASH 0x01
- #define ST_FLASH 0x20
- #define INTEL_FLASH 0x89
- #define MICRON_FLASH 0x89
- /* Supported Flash Devices */
- /* AMD Devices */
- #define AM29F400BT 0x2223
- #define AM29F400BB 0x22AB
- #define AM29LV800BT 0x22DA
- #define AM29LV400BT 0x22B9
- #define AM29LV400BB 0x22BA
- #define AM29LV040B 0x4f
- /* ST Devices */
- #define M29W040 0xE3
- /* INTEL Devices - We have added I before the name defintion.*/
- #define I28F320J3A 0x16
- #define I28F640J3A 0x17
- #define I28F128J3A 0x18
- #define I28F320B3_B 0x8897
- #define I28F320B3_T 0x8896
- #define I28F160B3_B 0x8891
- #define I28F160B3_T 0x8890
- #define POINTER_TO_FLASH flashParametrs[0]
- #define FLASH_BASE_ADDRESS flashParametrs[1]
- #define FLASH_WIDTH flashParametrs[2] /* In Bytes */
- #define FLASH_MODE flashParametrs[3] /* In bits */
- #define MANUFACTOR_ID POINTER_TO_FLASH + 0
- #define VENDOR_ID POINTER_TO_FLASH + 1
- #define NUMBER_OF_SECTORS POINTER_TO_FLASH + 2
- #define FIRST_SECTOR_SIZE POINTER_TO_FLASH + 3
- #define NUM_OF_DEVICES FLASH_WIDTH / (FLASH_MODE / 8)
- /* typedefs */
- typedef enum _FlashMode {PURE8,X8 = 8,X16 = 16} FLASHmode;
- /* PURE8 - when using a flash device whice can be configurated only as
- 8 bit device. */
- /* X8 - when using a flash device which is 16 bit wide but configured to
- operate in 8 bit mode.*/
- /* X16 - when using a flash device which is 16 bit wide */
- bool flashErase(void);
- bool flashEraseSector(unsigned int sectorNumber);
- bool flashWriteWord(unsigned int offset,unsigned int data);
- bool flashWriteShort(unsigned int offset,unsigned short sdata);
- bool flashWriteChar(unsigned int offset,unsigned char cdata);
- void flashReset(void);
- unsigned int flashInWhichSector(unsigned int offset);
- unsigned int flashGetSectorSize(unsigned int sectorNumber);
- unsigned int flashInit(unsigned int baseAddress,unsigned int flashWidth,
- FLASHmode FlashMode);
- unsigned int flashGetNumOfSectors(void);
- unsigned int flashGetSize(void);
- unsigned int flashGetSectorOffset(unsigned int sectorNum);
- unsigned int flashWriteBlock(unsigned int offset,unsigned int numOfByte,
- unsigned char * blockAddress);
- unsigned int flashReadWord(unsigned int offset);
- unsigned char flashReadChar(unsigned int offset);
- unsigned short flashReadShort(unsigned int offset);
- unsigned int flashReadBlock(unsigned int offset,unsigned int numOfByte,
- unsigned char * blockAddress);
- #endif /* __INCflashdrvh */