这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » k9f2g08uom驱动问题

共1条 1/1 1 跳转至

k9f2g08uom驱动问题

菜鸟
2010-04-07 16:30:09     打赏
我使用的板子是friendly arm 的micro2440a,因为要做nand boot启动,需要开发k9f2g08uom(每页2048byte,2048 block,每块64页)的驱动,目前碰到两个问题:
1,程序烧写不正确。使用sjf2440 软件烧写,然后读出,发现部分数据烧写部分不正确,sjf2440 软件是否会自动处理坏块?如果不能自动处理坏块,怎么烧写呢?用什么工具呢?
2,以下是我的读nandflash页的程序,之前我已经把文件烧写到nandflash的第一块,也就是第64页,我的问题是为什么读取到的数据每页开头都有若干0xff数据?这个数据确定不是spare 区的数据。 
3,页地址和块地址是怎么经过页索引和块索引得到的呢???
// 页读, U8 K9F2G_PageRead(U8 *Buf, U32 size, U32 PageIndex)
{
  U32 i;
  U32 PageAddr;
  U8 *DATA;

  PageAddr = PageIndex<<12;
  if(Buf != NULL)
  {  

   

NF_nFCE_L();
NF_CLEAR_RB();

NF_CMD(K9F2G_PGAEREAD1);  

  NF_ADDR((PageAddr>>0)&0xFF); 

NF_ADDR((PageAddr>>8)&0x0F); 

  NF_ADDR((PageAddr>>12)&0xFF);
  NF_ADDR((PageAddr>>20)&0xFF);
NF_ADDR((PageAddr>>28)&0x01);
  NF_CMD(K9F2G_PAGEREAD2); 

NF_DETECT_RB();

  for(i=0; i<10; i++);
  for(i=0; i<size; i++)
  {
  Buf = NF_RDDATA8(); // Read Cycle Time: 30ns(min)
  }
   

  NF_nFCE_H();
   

  return TRUE;
  }
   

  return FALSE;
}
void CopyProgramFromNand(void)
{


  U8 i= K9F2G_init();
  //U32 startPageIndex,endPageIndex;
  U32 j,m=0;

  unsigned char *RAM = (unsigned char *)0x30100000;

  for(j=64;j<100;j++)//从64页开始读取,每页读取2048个byte
  {
K9F2G_PageRead(RAM+m, 2048, j);
  m+=2048;
  }
有知道的帮我解答下哈,谢谢
对了谁有的话,可否给我传一个,不胜感激,meadow163@163.com



关键词: k9f2g08uom     驱动     问题    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]