/******************************************************************************* * 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_ */