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