38 lines
1.5 KiB
C
38 lines
1.5 KiB
C
#ifndef __FTL_H
|
||
#define __FTL_H
|
||
|
||
#include "stm32h7xx.h"
|
||
//升级说明
|
||
//V1.1 20160124
|
||
//修改FTL_CopyAndWriteToBlock和FTL_WriteSectors函数,提高非0XFF时的写入速度.
|
||
//V1.2 20160520
|
||
//1,修改FTL_ReadSectors,增加ECC出错判断,检测坏块处理,并增加多块连读,提高速度
|
||
//2,新增FTL_BlockCompare和FTL_SearchBadBlock函数,用于搜寻坏块
|
||
//3,修改FTL_Format坏块检测方式,增加FTL_USE_BAD_BLOCK_SEARCH宏
|
||
//V1.3 20160530
|
||
//修改当1bit ECC错误出现时,读取2次,来确认1bit 错误,以防错误的修改数据
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
|
||
//坏块搜索控制
|
||
//如果设置为1,将在FTL_Format的时候,搜寻坏块,耗时久(512M,3分钟以上),且会导致RGB屏乱闪
|
||
#define FTL_USE_BAD_BLOCK_SEARCH 0 //定义是否使用坏块搜索
|
||
|
||
|
||
|
||
uint8_t FTL_Init(void);
|
||
void FTL_BadBlockMark(uint32_t blocknum);
|
||
uint8_t FTL_CheckBadBlock(uint32_t blocknum);
|
||
uint8_t FTL_UsedBlockMark(uint32_t blocknum);
|
||
uint32_t FTL_FindUnusedBlock(uint32_t sblock,uint8_t flag);
|
||
uint32_t FTL_FindSamePlaneUnusedBlock(uint32_t sblock);
|
||
uint8_t FTL_CopyAndWriteToBlock(uint32_t Source_PageNum,uint16_t ColNum,uint8_t *pBuffer,uint32_t NumByteToWrite);
|
||
uint16_t FTL_LBNToPBN(uint32_t LBNNum);
|
||
uint8_t FTL_WriteSectors(uint8_t *pBuffer,uint32_t SectorNo,uint16_t SectorSize,uint32_t SectorCount);
|
||
uint8_t FTL_ReadSectors(uint8_t *pBuffer,uint32_t SectorNo,uint16_t SectorSize,uint32_t SectorCount);
|
||
uint8_t FTL_CreateLUT(uint8_t mode);
|
||
uint8_t FTL_BlockCompare(uint32_t blockx,uint32_t cmpval);
|
||
uint32_t FTL_SearchBadBlock(void);
|
||
uint8_t FTL_Format(void);
|
||
#endif
|
||
|