WXK
2023-09-08 00fc23c0b2c7b7dfd6df3e9fb9e385ec949cd8cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*******************************************************************************
 * 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_ */