请教下 nand flash 最大读写块不能够超过 512 个块,不知道是为何 ?

2019-07-20 18:40发布

请教下 nand flash 最大读写块不能够超过 512 个块,不知道是为何 ?

好块数量如下:

有效块.png


根据上面的信息看,有小块有 1901 个,怎么我的读写块就不能够超过 512 块啊 ??


  {
    static uint8_t i = 0;

    for(cc=0;cc<8192 * 2;cc++)
    {
      uart_tx_buff[cc] = i * 4 ;
      uart_rx_buff[cc] = 0 ;
      i ++;
    }
  }   

  u8 *ptr = uart_tx_buff;
  FTL_WriteSectors( ptr, 256 * 511 , 512, ((8192 * 2) / 512 ) );  // 我的这个芯片每页是2048Byte, 一个块是64页,所以 64*2048/512 = 256,
                                                                                      // 这里的 256*511 就表示从是 第512个块 开始写数据,但是程序执行到 FTL_LBNToPBN 函数会返回 0xFFFF

//逻辑块号转换为物理块号
//LBNNum:逻辑块编号
//返回值:物理块编号
u16 FTL_LBNToPBN(u32 LBNNum)
{
    u16 PBNNo=0;
    //当逻辑块号大于有效块数的时候返回0XFFFF
    if(LBNNum > nand_dev.valid_blocknum)
      return 0XFFFF;
    PBNNo = nand_dev.lut[LBNNum];
    return PBNNo;
}









  ptr = uart_rx_buff;
  FTL_ReadSectors(  ptr, 256 * 511 , 512, ((8192 * 2) / 512 ) );





















友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。