83 lines
1.4 KiB
C
83 lines
1.4 KiB
C
#ifndef FLASH_MANAGER_H__
|
||
#define FLASH_MANAGER_H__
|
||
|
||
#include "base.h"
|
||
|
||
|
||
|
||
typedef struct
|
||
{
|
||
char FileName[32];
|
||
u32 Address;
|
||
u32 FileSize;
|
||
}FLASH_FileStruct;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
typedef struct
|
||
{
|
||
int FileNumber;
|
||
FLASH_FileStruct File[10];
|
||
} FLASH_HeaderStruct;
|
||
|
||
|
||
|
||
|
||
|
||
int FLASH_ReadData (uint8_t* pBuffer, uint32_t ReadAddr , uint32_t NumByteToRead );
|
||
|
||
int FLASH_WriteData (uint8_t* pBuffer, uint32_t WriteAddr, uint32_t NumByteToWrite);
|
||
|
||
int FLASH_EraseOneSector (uint32_t SectorAddr);
|
||
|
||
int FLASH_EraseAllSector (void);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//获取FLASH容量
|
||
u32 FLASH_GetFlashSize (void);
|
||
|
||
//校验后擦除
|
||
int FLASH_CheckErase (u32 addr,u32 size);
|
||
//循环写入,必须在擦除之后才能写入
|
||
int FLASH_LoopWrite (u32 addr,u32 size ,int (*pGetData)(u8 *buff,u32 size));
|
||
|
||
//添加新文件
|
||
int FLASH_AddFile (char *fileName,u32 address,u32 fileSize);
|
||
|
||
//读取指定文件,返回成功读取的大小
|
||
int FLASH_ReadFile (char *fileName,u32 offset,u8 *recvBuff,u32 readLength);
|
||
|
||
//查找是否有同名文件,有返回0
|
||
u32 FLASH_FindFile (char *fileName,u32 *size);
|
||
|
||
//返回FLASH已经使用了多少存储空间
|
||
//此返回值可直接用于新文件的存储地址
|
||
u32 FLASH_GetUsed (void);
|
||
|
||
//返回FLASH中存储的文件数目
|
||
int FLASH_GetFileNum (void);
|
||
|
||
//获取指定索引的文件信息,返回0,成功
|
||
int FLASH_GetFileInfo (int index,FLASH_FileStruct *file);
|
||
|
||
//删除指定索引之后的所有文件
|
||
int FLASH_DeleteFile (int index);
|
||
|
||
//保存文件
|
||
int FLASH_SaveFile (char *FileName,u8 *data,u32 size);
|
||
|
||
|
||
|
||
|
||
#endif
|
||
|