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

📄 nand_media.c

📁 <B>SMSC USB2.0 Flash硬盘驱动源码</B>
💻 C
📖 第 1 页 / 共 2 页
字号:
  g_addr_rd_phy_blk=0;
  g_addr_page=0;
  g_addr_segment=0;
  _media_data(sector_buffer) = g_sector_buffer;

  //nand_select_card() ;
  _media_read_sector() ;
  for(i=0;i<0x100;i++)
    _nand_boot_cache[i] = g_sector_buffer[i] ;

  _media_data(boot_block) = 0;
  _media_data(boot_page) = 0;

}


//------------------------------------------------------------------------------
//+-----------------------------------------------------------------------------
// Name:
//   nand_read_sector()
//
// Declaration:
//   t_result nand_read_sector(void) reentrant
//
// Purpose:
//
// Arguments:
//
// Return:
//
// Notes:
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result  nand_read_sector(void) reentrant
{
  TRACE4(432, nand, 0, "nand_read_sector() - zone:%d RD_PHY:%d log:%d page:%d", g_addr_zone, g_addr_rd_phy_blk, g_addr_log_blk, g_addr_page) ;
  nand_select_card() ;
  return sm_media_read_sector() ;
}

//+-----------------------------------------------------------------------------
// Name:
//   nand_write_sector()
//
// Declaration:
// t_result nand_write_sector(uint8 *buf) reentrant
//
// Purpose:
//
// Arguments:
//
// Return:
//
// Notes:
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_write_sector() reentrant
{
  TRACE4(433, nand, 0, "nand_write_sector() zone:%d WR_PHY:%d log:%d page:%d", g_addr_zone, g_addr_wr_phy_blk, g_addr_log_blk, g_addr_page) ;
  nand_select_card() ;
  return sm_media_write_sector() ;
}

//+-----------------------------------------------------------------------------
// Name:
//   nand_copy_sector()
//
// Declaration:
// t_result nand_copy_sector() reentrant
//
// Purpose:
//
// Arguments:
//
// Return:
//
// Notes:
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_copy_sector() reentrant
{
  TRACE4(434, nand, 0, "nand_copy_sector() zone:%d SRC_BLK:%d DEST_BLK:%d page:%d", g_addr_zone, g_addr_rd_phy_blk, g_addr_wr_phy_blk, g_addr_page) ;
  nand_select_card() ;
  return sm_media_copy_sector() ;
}

//+-----------------------------------------------------------------------------
// Name:
//   nand_read_extra_data()
//
// Declaration:
//   TBD
//
// Purpose:
//   TBD
//
// Arguments:
//   TBD
//
// Return:
//   TBD
//
// Notes:
//   TBD
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_read_extra_data(void) reentrant
{
  TRACE3(435, nand, 0, "nand_read_extra_data() zone:%d phy_blk:%d page:%d", g_addr_zone, g_addr_rd_phy_blk, g_addr_page) ;
  nand_select_card( ) ;
  return sm_media_read_extra_data() ;
}


//+-----------------------------------------------------------------------------
// Name:
//   nand_write_extra_data()
//
// Declaration:
//   t_result nand_write_extra_data(void) reentrant
//
// Purpose:
//   TBD
//
// Arguments:
//   TBD
//
// Return:
//   TBD
//
// Notes:
//   TBD
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_write_extra_data(void) reentrant
{
  nand_select_card( ) ;
  return sm_media_write_extra_data() ;
}

//+-----------------------------------------------------------------------------
// Name:
//   nand_set_read_addr()
//
// Declaration:
//   t_result nand_set_read_addr() reentrant
//               
// Purpose:
//   set media-specific address from internal zone/rd_phy_blk/sector addres
//
// Arguments:
//  TBD
//
// Return:
//  k_success always
//
// Notes:
//  TBD
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_set_read_addr() reentrant 
{
  TRACE3(436, nand, 0, "nand_set_read_addr() page:%02x%02x%02x", g_nand_rd_addr_msb, g_nand_rd_addr_mid, g_nand_rd_addr_lsb) ;  
  _sm_hw_set_rd_addr();
  _sm_data_wr(0x00);
  _sm_data_wr(g_nand_rd_addr_lsb) ; 
  _sm_data_wr(g_nand_rd_addr_mid) ; 
  if ( _lun_data(media)&kbm_sm_media_addr_4cyc)
    _sm_data_wr(g_nand_rd_addr_msb);
  _sm_hw_set_rd_data(g_nand_rw_speed);
  return k_success ;
}


//+-----------------------------------------------------------------------------
// Name:
//   nand_set_write_addr()
//
// Declaration:
//   t_result nand_set_write_addr() reentrant
//
// Purpose:
//   set media-specific address from internal zone/wr_phy_blk/sector addres
//
// Arguments:
//  TBD
//
// Return:
//  k_success always
//
// Notes:
//  TBD
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_set_write_addr() reentrant 
{
  TRACE3(437, nand, 0, "nand_set_write_addr() page:%02x%02x%02x", g_nand_wr_addr_msb, g_nand_wr_addr_mid, g_nand_wr_addr_lsb) ;  
  _sm_hw_set_wr_addr();
  _sm_data_wr(0x00);
  _sm_data_wr(g_nand_wr_addr_lsb) ; 
  _sm_data_wr(g_nand_wr_addr_mid) ; 
  if ( _lun_data(media)&kbm_sm_media_addr_4cyc)
    _sm_data_wr(g_nand_wr_addr_msb);
  _sm_hw_set_wr_data(g_nand_rw_speed);
  return k_success ;
}

//+-----------------------------------------------------------------------------
// Name:
//   nand_set_erase_addr()
//
// Declaration:
//   t_result nand_set_erase_addr() reentrant
//
// Purpose:
//   set media-specific address from internal zone/wr_phy_blk
//
// Arguments:
//  TBD
//
// Return:
//  k_success always
//
// Notes:
//  The block to be erased should be in g_addr_wr_phy_blk before this 
//  function is called
//
// Since:
//   fmc-1.0
//------------------------------------------------------------------------------
t_result nand_set_erase_addr() reentrant 
{
  TRACE3(438, nand, 0, "nand_set_erase_addr() page:%02x%02x%02x", g_nand_wr_addr_msb, g_nand_wr_addr_mid, g_nand_wr_addr_lsb) ;
  _sm_hw_set_wr_addr();
  _sm_data_wr(g_nand_wr_addr_lsb) ; 
  _sm_data_wr(g_nand_wr_addr_mid) ; 
  if ( _lun_data(media)&kbm_sm_media_addr_4cyc)
    _sm_data_wr(g_nand_wr_addr_msb);
  _sm_hw_set_wr_data(g_nand_rw_speed);
  return k_success ;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -