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