mCH375_DISK_READ 函数的代码如下:
/* 从U 盘读取多个扇区的数据块到缓冲区 */
unsigned int mCH375_DISK_READ ( unsigned long iLbaStart, unsigned int
iSectorCount, unsigned int *iBuffer )
{
/* iLbaStart 是准备读取的线性起始扇区号, iSectorCount 是准备读取的扇区数, iBuffer
是存放返回数据的缓冲区的起址 */
unsigned int i;
if (mWaitReady( ) == FALSE)
return( FALSE );
mBufferPoint = iBuffer; /* 指向缓冲区起始地址 */
UdiskStatus = STATUS_WAIT;
CH375_WR_CMD_PORT( CMD_DISK_READ ); /* 从USB 存储器读数据块 */
i = (unsigned int) iLbaStart;
CH375_WR_DAT_PORT( i ); /* LBA 的最低8 位 */
i = (unsigned int)( iLbaStart >> 8 );
CH375_WR_DAT_PORT( i );
i = (unsigned int)( iLbaStart >> 16 );
CH375_WR_DAT_PORT ( i );
i = (unsigned int) ( iLbaStart >> 24 );
CH375_WR_DAT_PORT( i ); /* LBA的最高8 位 */
CH375_WR_DAT_PORT( iSectorCount ); /* 扇区数 */
return ( mWaitReady( ) );}