⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mlc_low_format.c

📁 mlc low format with reserve areas
💻 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 + -