📄 mlc_low_format.c
字号:
void mlc_low_format(INT8U FlsChipSel)
{
INT8U mlc_bad_block_num;
INT32U mlc_bad_block[20];
INT8U bad_block, j;
INT32U record_address;
INT32U i;
//add cs3 here!!!!
bad_block = 0;
record_address = 132864;//1038 * 128;
fls_read_page(record_address + 127);
if(0xff != disk_redundant[0]) bad_block = 1;
fls_read_page(record_address + 125);
if(0xff != disk_redundant[0]) bad_block = 1;
if(bad_block)
{
bad_block = 0;
record_address = 132992;//1039 * 128;
}
fls_read_page(record_address);
//add cs FlsChipSel here !!!!!!
if(0xff == gl_buffer[0])
{
mlc_bad_block_num = 0;
for(i=127;i<262144;i+=128)
{
bad_block = 0;
fls_read_page(i);
if(0xff != disk_redundant[0]) bad_block = 1;
fls_read_page(i-2);
if(0xff != disk_redundant[0]) bad_block = 1;
if(bad_block)
{
mlc_bad_block[mlc_bad_block_num] = i -127;
mlc_bad_block_num++;
}
}
}
else
{
//recover
mlc_bad_block_num = gl_buffer[0];
memcpy((INT8U *)mlc_bad_block, gl_buffer+4, 80);
if(FlsChipSel!=3)
{
for(j=0;j<mlc_bad_block_num;j++)
{
if(mlc_bad_block[j] < 262144)
{
mlc_bad_block[j] = 0;
}
else
{
mlc_bad_block[j] -= 262144;
}
}
}
}
for(i=2048;i<131072;i+=128)
{
bad_block = 0;
for(j=0;j<mlc_bad_block;j++)
{
if(i==mlc_bad_block[j]) //bad block
bad_block = 1;
}
if(!bad_block)
{
fls_erase_block(i);
}
}
for(i=133120;i<262144;i+=128)
{
bad_block = 0;
for(j=0;j<mlc_bad_block;j++)
{
if(i==mlc_bad_block[j]) //bad block
bad_block = 1;
}
if(!bad_block)
{
fls_erase_block(i);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -