flashDrvLib.h
上传用户:yuanda199
上传日期:2022-06-26
资源大小:412k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. #ifndef FLASH_DRV_LIB_H
  2. #define FLASH_DRV_LIB_H
  3. #define FLASH_BASE_ADDRESS_PLCC_BOOT    0xBFC00000
  4. #define FLASH_BASE_ADDRESS_FLASH_BOOT   0xBFC00000
  5. #define FLASH_DEVICE_COUNT              1
  6. #define FLASH_DEVICE_SECTOR_SIZE        flashDevSectorSize
  7. #define FLASH_SECTOR_SIZE (FLASH_DEVICE_COUNT * FLASH_DEVICE_SECTOR_SIZE)
  8. #define FLASH_SIZE                  flashSize
  9. #define FLASH_SIZE_SECTORS          (FLASH_SIZE / FLASH_SECTOR_SIZE)
  10. #define FLASH_BASE_ADDRESS flashBaseAddress
  11. #define FLASH_SECTOR_ADDRESS(sector) 
  12.     (FLASH_BASE_ADDRESS + (sector) * FLASH_SECTOR_SIZE)
  13. #define FLASH_ERASE_TIMEOUT_COUNT 750
  14. #define FLASH_ERASE_TIMEOUT_TICKS 2
  15. #define FLASH_PROGRAM_TIMEOUT_POLLS 100000
  16. typedef enum {
  17.     AMD = 0x01,
  18.     ALLIANCE = 0x52,
  19.     INTEL = 0x89
  20. } FLASH_VENDORS;
  21. typedef enum {
  22.     FLASH_2F320 = 0x16,
  23.     FLASH_2F040 = 0xA4,
  24.     FLASH_2F080 = 0xD5,
  25.     FLASH_2L081 = 0x38,
  26.     FLASH_2L160 = 0x49,
  27.     FLASH_2L017 = 0xC8
  28. } FLASH_TYPES;
  29. struct flash_drv_funcs_s {
  30.     FLASH_TYPES dev;
  31.     FLASH_VENDORS vendor;
  32.     void (*flashAutoSelect)(FLASH_TYPES *dev, FLASH_VENDORS *vendor);
  33.     int (*flashEraseSector)(int sectorNum);
  34.     int (*flashRead)(int sectorNum, char *buff,
  35.           unsigned int offset, unsigned int count);
  36.     int (*flashWrite)(int sectorNum, char *buff,
  37.                 unsigned int offset, unsigned int count);
  38.     int (*flashFlushLoadedSector)(void);
  39. };
  40. extern int             flashVerbose; /* DEBUG */
  41. extern int             flashSectorCount;
  42. extern int             flashDevSectorSize;
  43. extern int             flashSize;
  44. extern unsigned int    flashBaseAddress;
  45. extern struct flash_drv_funcs_s flash28f320;
  46. extern struct flash_drv_funcs_s flash29l160;
  47. int             flashDrvLibInit(void);
  48. int             flashGetSectorCount(void);
  49. int             flashEraseBank(int firstSector, int nSectors);
  50. int             flashBlkRead(int sectorNum, char *buff,
  51.                 unsigned int offset, unsigned int count);
  52. int             flashBlkWrite(int sectorNum, char *buff,
  53.                 unsigned int offset, unsigned int count);
  54. int             flashSyncFilesystem(void);
  55. int             flashDiagnostic(void);
  56. #endif /* FLASH_DRV_LIB_H */