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
 | 
						||
 |