/*******************************************************************************
|
* 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_hal.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 *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_BulkErase
|
* Description : SPIFlashÕûƬ²Á³ý
|
* Input : _eID SPIFlash ID
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_BulkErase(E_SPIFlashID _eID);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_Read
|
* Description : SPIFlash¶ÁÈ¡Êý¾Ý
|
* Input : _eID SPIFlash ID
|
* : _u32SrcAddr Ô´µØÖ·
|
* : _u32SrcLen Ô´³¤¶È
|
* Output : _pu8DstBuf Ä¿µÄµØÖ·
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_Read(E_SPIFlashID _eID, HIDO_UINT8 *_pu8DstBuf, HIDO_UINT32 _u32SrcAddr, HIDO_UINT32 _u32SrcLen);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_Write
|
* Description : SPIFlashдÊý¾Ý
|
* Input : _eID SPIFlash ID
|
* : _u32DstAddr Ä¿µÄµØÖ·
|
* : _pu8SrcBuf Ô´µØÖ·
|
* : _u32SrcLen Ô´Êý¾Ý³¤¶È
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_Write(E_SPIFlashID _eID, HIDO_UINT32 _u32DstAddr, HIDO_UINT8 *_pu8SrcBuf, HIDO_UINT32 _u32SrcLen);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_Erase
|
* Description : SPIFlash ²Á³ý
|
* Input : _eID SPIFlash ID
|
* : _u32EraseAddr ²Á³ýµØÖ·
|
* : _u32EraseLen ²Á³ý³¤¶È
|
* : _eEraseMode ²Á³ýģʽ
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_Erase(E_SPIFlashID _eID, HIDO_UINT32 _u32EraseAddr, HIDO_UINT32 _u32EraseLen, E_SPIFlashSectorEraseMode _eEraseMode);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_ReadJedecID
|
* Description : SPIFlash¶ÁȡоƬID
|
* Input : _eID Flash ID
|
* : _u32IDBufSize ID»º´æ´óС
|
* Output : _pu8IDBuf ID»º´æ
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_ReadJedecID(E_SPIFlashID _eID, HIDO_UINT8 *_pu8IDBuf, HIDO_UINT32 _u32IDBufSize);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_PowerDown
|
* Description : SPIFlash Ö´ÐÐPOWER_DOWN
|
* Input : _eID Flash ID
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_PowerDown(E_SPIFlashID _eID);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_ReleasePowerDown
|
* Description : SPIFlash Ö´ÐÐRELEASE_POWER_DOWN
|
* Input : _eID Flash ID
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_ReleasePowerDown(E_SPIFlashID _eID);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_SPIRegister
|
* Description : SPIFlash¹Ü½Å×¢²á
|
* Input : _eID Flash ID
|
* : _eSPI_ID SPI ID
|
* Output : None
|
* Return : None
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_VOID SPIFlash_SPIRegister(E_SPIFlashID _eID, E_SPI_ID _eSPI_ID);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_PinRegister
|
* Description : SPIFlash¹Ü½Å×¢²á
|
* Input : _eID Flash ID
|
* : _ePin ¹Ü½ÅÃû³Æ
|
* : _pGPIO GPIOx
|
* : _u16Pin GPIO_PIN_x
|
* Output : None
|
* Return : None
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_VOID SPIFlash_PinRegister(E_SPIFlashID _eID, E_SPIFlashPin _ePin, HIDO_VOID *_pGPIO, HIDO_UINT16 _u16Pin);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_UnInit
|
* Description : SPIFlash·´³õʼ»¯
|
* Input : _eID Flash ID
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_UnInit(E_SPIFlashID _eID);
|
|
/*******************************************************************************
|
* Function Name : SPIFlash_Init
|
* Description : SPIFlash³õʼ»¯
|
* Input : None
|
* Output : None
|
* Return : HIDO_OK ³É¹¦, HIDO_ERR ʧ°Ü
|
* Author : www.hido-studio.com
|
* Modified Date: : 2021Äê5ÔÂ07ÈÕ
|
*******************************************************************************/
|
HIDO_INT32 SPIFlash_Init(E_SPIFlashID _eID);
|
|
#endif /* FML_SPIFLASH_H_ */
|