/*******************************************************************************
|
* File Name : SPIFlash.h
|
* Description :
|
* Created on : 2019Äê3ÔÂ11ÈÕ
|
* Author : www.hido-studio.com
|
*******************************************************************************/
|
|
#ifndef FML_SPIFLASH_H_
|
#define FML_SPIFLASH_H_
|
/*******************************************************************************
|
* Include Files *
|
*******************************************************************************/
|
#include "HIDO_TypeDef.h"
|
#include "SPI.h"
|
|
/*******************************************************************************
|
* Macro *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Type Definition *
|
*******************************************************************************/
|
typedef enum
|
{
|
SPI_FLASH_ID_0 = 0,
|
|
SPI_FLASH_ID_LAST,
|
}E_SPIFlashID;
|
|
typedef enum
|
{
|
SPI_FLASH_PIN_CS,
|
SPI_FLASH_PIN_MISO,
|
SPI_FLASH_PIN_MOSI,
|
SPI_FLASH_PIN_SCK,
|
|
SPI_FLASH_PIN_LAST,
|
}E_SPIFlashPin;
|
|
typedef enum
|
{
|
SPI_FLASH_SECTOR_ERASE_MODE_4K,
|
SPI_FLASH_SECTOR_ERASE_MODE_32K,
|
SPI_FLASH_SECTOR_ERASE_MODE_64K,
|
|
SPI_FLASH_SECTOR_ERASE_MODE_LAST,
|
}E_SPIFlashSectorEraseMode;
|
/*******************************************************************************
|
* Global Function *
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_BulkErase(E_SPIFlashID _eID);
|
HIDO_INT32 SPIFlash_Read(E_SPIFlashID _eID, HIDO_UINT8 *_pu8DstBuf, HIDO_UINT32 _u32SrcAddr, HIDO_UINT32 _u32SrcLen);
|
HIDO_INT32 SPIFlash_Write(E_SPIFlashID _eID, HIDO_UINT32 _u32DstAddr, HIDO_UINT8 *_pu8SrcBuf, HIDO_UINT32 _u32SrcLen);
|
HIDO_INT32 SPIFlash_WriteWithBuffer(E_SPIFlashID _eID, HIDO_UINT32 _u32DstAddr, const HIDO_UINT8 *_pu8SrcBuf, HIDO_UINT32 _u32SrcLen);
|
HIDO_INT32 SPIFlash_Erase(E_SPIFlashID _eID, HIDO_UINT32 _u32EraseAddr, HIDO_UINT32 _u32EraseLen, E_SPIFlashSectorEraseMode _eEraseMode);
|
HIDO_INT32 SPIFlash_CalcCRC32(E_SPIFlashID _eID, HIDO_UINT32 _u32StartAddr, HIDO_UINT32 _u32CalcLen, HIDO_UINT32 *_pu32CRC32);
|
|
HIDO_INT32 SPIFlash_ReadJedecID(E_SPIFlashID _eID, HIDO_UINT8 *_pu8IDBuf, HIDO_UINT32 _u32IDBufSize);
|
HIDO_INT32 SPIFlash_PowerDown(E_SPIFlashID _eID);
|
HIDO_INT32 SPIFlash_ReleasePowerDown(E_SPIFlashID _eID);
|
HIDO_VOID SPIFlash_SPIRegister(E_SPIFlashID _eID, E_SPI_ID _eSPI_ID);
|
HIDO_VOID SPIFlash_PinRegister(E_SPIFlashID _eID, E_SPIFlashPin _ePin, HIDO_VOID *_pGPIO, HIDO_UINT16 _u16Pin);
|
|
HIDO_INT32 SPIFlash_UnInit(E_SPIFlashID _eID);
|
HIDO_INT32 SPIFlash_Init(E_SPIFlashID _eID);
|
|
#endif /* FML_SPIFLASH_H_ */
|