#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