打印

请问有做过U盘的高手,write10(scsi_2)应该怎样写好?

[复制链接]
1382|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小电子|  楼主 | 2007-5-3 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是128M的flash,由于单片机的数据存储器容量有限,所以我有4次读写完成1 page 的操作.下面这样写可以吗?
void Write10(void)

  unsigned long int  ByteCount;
  unsigned int Transfer_Length;
  unsigned int address;
  unsigned char rank;
  unsigned long Logical_Block_Address;
  Logical_Block_Address=cbw.CBWCB[2]*0x1000000;
  Logical_Block_Address+=cbw.CBWCB[3]*0x10000;
  Logical_Block_Address+=cbw.CBWCB[4]*0x100;
  Logical_Block_Address+=cbw.CBWCB[5];
  Transfer_Length=cbw.CBWCB[7]*256+cbw.CBWCB[8];//the number of page(block).
  while(Transfer_Length--)
  {
   for(rank=1;rank<=4;rank++)
   {
      ByteCount=512;address=0;
      while(ByteCount>MAX_BULK_DATA_SIZE)
      {
        read_endpoint_buff(1,MAX_BULK_DATA_SIZE,&buffer[address]);
     ByteCount-=MAX_BULK_DATA_SIZE;
        address+=MAX_BULK_DATA_SIZE;
     }
    read_endpoint_buff(1,ByteCount,&buffer[address]);
    Flash_page_program(rank,Logical_Block_Address,&buffer);
    }
   Flash_reflash();
   Logical_Block_Address++;
    }
  Return_CSW(0,SUCCESS);
}


相关帖子

沙发
262063258| | 2007-5-4 19:07 | 只看该作者

怎么没人回复啊!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

181

帖子

1

粉丝