nor_flash.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. *********************************************************************************************************
  3. *
  4. * 模块名称 : NOR Flash驱动模块
  5. * 文件名称 : bsp_nor_flash.h
  6. * 版 本 : V1.0
  7. * 说 明 : 头文件
  8. *
  9. * 修改记录 :
  10. * 版本号 日期 作者 说明
  11. * v1.0 2012-10-12 armfly ST固件库版本 V2.1.0
  12. *
  13. * Copyright (C), 2012-2013, 安富莱电子 www.armfly.com
  14. *
  15. *********************************************************************************************************
  16. */
  17. #ifndef _NOR_FLASH_H
  18. #define _NOR_FLASH_H
  19. #include "includes.h"
  20. /*
  21. 安富莱STM32-V5开发板 NOR Flash 型号 S29GL128P10TFI01
  22. 容量16M字节,16Bit,100ns速度
  23. 物理地址 : 0x6400 0000
  24. */
  25. #define NOR_FLASH_ADDR ((uint32_t)0x64000000)
  26. #define NOR_SECTOR_SIZE (128 * 1024) /* 扇区大小 */
  27. #define NOR_SECTOR_COUNT 128 /* 扇区个数 */
  28. #define NOR_FLASH_SIZE (NOR_SECTOR_SIZE * NOR_SECTOR_COUNT)
  29. /*
  30. 制造商ID:Spansion 0x01
  31. S29GL01GP 01 7E 28 01 1 Gigabit 128M字节
  32. S29GL512P 01 7E 23 01 512 Megabit 64M字节
  33. S29GL256P 01 7E 22 01 256 Megabit 32M字节
  34. S29GL128P 01 7E 21 01 128 Megabit 16M字节
  35. */
  36. typedef enum
  37. {
  38. S29GL128P = 0x017E2101,
  39. S29GL256P = 0x017E2201,
  40. S29GL512P = 0x017E2301
  41. } NOR_CHIP_ID;
  42. /* NOR Status */
  43. typedef enum
  44. {
  45. NOR_SUCCESS = 0,
  46. NOR_ONGOING = 1,
  47. NOR_ERROR = 2,
  48. NOR_TIMEOUT = 3
  49. } NOR_STATUS;
  50. void nor_flash_init(void);
  51. uint32_t NOR_ReadID(void);
  52. uint8_t NOR_EraseChip(void);
  53. uint8_t NOR_EraseSector(uint32_t _uiBlockAddr);
  54. uint8_t NOR_ReadByte(uint32_t _uiWriteAddr);
  55. void NOR_ReadBuffer(uint8_t *_pBuf, uint32_t _uiWriteAddr, uint32_t _uiBytes);
  56. uint8_t NOR_WriteHalfWord(uint32_t _uiWriteAddr, uint16_t _usData);
  57. uint8_t NOR_WriteByte(uint32_t _uiWriteAddr, uint8_t _ucByte);
  58. uint8_t NOR_WriteInPage(uint16_t *pBuffer, uint32_t _uiWriteAddr, uint16_t _usNumHalfword);
  59. uint8_t NOR_WriteBuffer(uint8_t *_pBuf, uint32_t _uiWriteAddr, uint32_t _uiBytes);
  60. void NOR_StartEraseChip(void);
  61. uint8_t NOR_CheckStatus(void);
  62. #endif
  63. /***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/