Files
player/Project/Src/MyApp/flash_manager.h

83 lines
1.5 KiB
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
#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