www.pudn.com > ucosii_core.rar > mass_storage_dev.c, change:2007-06-26,size:997b
#include "usb.h"
#define BLOCKNUM 16384
#define SECTSIZE 512
static u8 disk_emu[BLOCKNUM * SECTSIZE];
static u8 disk_emu1[BLOCKNUM * SECTSIZE];
int massDevWrite(u8 scsiLun,u8 *buf, u32 start_sect, u32 num_sect)
{
if(scsiLun == 0)
memcpy(disk_emu + start_sect * SECTSIZE, buf, num_sect * SECTSIZE);
else
memcpy(disk_emu1 + start_sect * SECTSIZE, buf, num_sect * SECTSIZE);
return num_sect * SECTSIZE;
}
int massDevRead(u8 scsiLun,u8 *buf, u32 start_sect, u32 num_sect)
{
if(scsiLun == 0)
memcpy(buf, disk_emu + start_sect * SECTSIZE, num_sect * SECTSIZE);
else
memcpy(buf, disk_emu1 + start_sect * SECTSIZE, num_sect * SECTSIZE);
return num_sect * SECTSIZE;
}
int massDevInfo(u8 scsiLun,u32 *info)
{
info[0] = 0; /* hidden */
info[1] = 2; /* head */
info[2] = 4; /* sect per track */
info[3] = BLOCKNUM; /* block number */
}
int massDevInit()
{
memset(disk_emu,0,BLOCKNUM * SECTSIZE);
memset(disk_emu1,0,BLOCKNUM * SECTSIZE);
}
int GetMassDevNum()
{
return 2;
}