存储测试通过
This commit is contained in:
@@ -200,12 +200,13 @@ DSTATUS disk_initialize(BYTE pdrv) {
|
||||
|
||||
s_nand.log2_page_size = 11;
|
||||
s_nand.log2_ppb = 6;
|
||||
s_nand.num_blocks = FTL_NUM_BLOCKS;
|
||||
/* dhara 可见块数 = 总块数 - 保留块池(BBT 存储区不交给 dhara,避免被擦写) */
|
||||
s_nand.num_blocks = gd5f_get_usable_blocks();
|
||||
|
||||
dhara_map_init(&s_map, &s_nand, s_page_buf, 4);
|
||||
|
||||
memset(s_cache_buf, 0, FTL_PAGE_SIZE);
|
||||
s_cached_lpn = 0;
|
||||
s_cached_lpn = (dhara_sector_t)-1; /* -1 表示缓存未加载;LPN 0 合法,不能用 0 作哨兵 */
|
||||
s_cache_dirty = 0;
|
||||
|
||||
{
|
||||
@@ -227,6 +228,21 @@ DSTATUS disk_initialize(BYTE pdrv) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int nand_ftl_init(void)
|
||||
{
|
||||
DSTATUS sta = disk_initialize(0);
|
||||
return (sta == 0) ? 0 : -1;
|
||||
}
|
||||
|
||||
void nand_ftl_deinit(void)
|
||||
{
|
||||
/* 复位 FTL 状态,使下次 nand_ftl_init() 真正重新走 dhara_map_resume,
|
||||
用于测试"掉电恢复"与"坏块注入后重建"场景(模拟设备重启) */
|
||||
s_initialized = 0;
|
||||
s_cached_lpn = (dhara_sector_t)-1;
|
||||
s_cache_dirty = 0;
|
||||
}
|
||||
|
||||
DSTATUS disk_status(BYTE pdrv) {
|
||||
if (pdrv != 0) {
|
||||
return STA_NOINIT;
|
||||
@@ -380,6 +396,7 @@ int nand_ftl_format(void) {
|
||||
}
|
||||
|
||||
s_cache_dirty = 0;
|
||||
s_cached_lpn = (dhara_sector_t)-1;
|
||||
|
||||
DBG_INFO("NAND FTL formatted, capacity: %lu pages", dhara_map_capacity(&s_map));
|
||||
return GD5F_OK;
|
||||
|
||||
Reference in New Issue
Block a user