26.02.2013 Views

第1章ZLG/CF 驱动使用 - Read

第1章ZLG/CF 驱动使用 - Read

第1章ZLG/CF 驱动使用 - Read

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

** DISK_CLOSE:关闭驱动器(移除驱动程序)<br />

** DISK_CREATE_BOOT_SECTOR:重建引导扇区<br />

** DISK_READ_SECTOR:读扇区<br />

** DISK_WRITE_SECTOR:写扇区<br />

** Parameter:剩余参数<br />

** 输 出: DISK_READ_OK:读扇区完成<br />

** DISK_READ_NOT_OK:读扇区失败<br />

** DISK_WRITE_OK:写扇区完成<br />

** DISK_WRITE_NOT_OK:写扇区失败<br />

** DISK_INIT_OK:初始化完成<br />

** DISK_INIT_NOT_OK:初始化失败<br />

** BAD_DISK_COMMAND:无效的命令<br />

** 全局变量: 无<br />

** 调用模块: 无<br />

******************************************************************************************/<br />

{<br />

uint16 rt;<br />

uint16 <strong>CF</strong>Cammand(uint8 Cammand, void *Parameter)<br />

Disk_RW_Parameter * Dp;<br />

Disk_Info *DiskInfo;<br />

Dp = (Disk_RW_Parameter *)Parameter;<br />

switch (Cammand)<br />

{<br />

case DISK_INIT: /*设备初始化*/<br />

rt = DISK_INIT_NOT_OK;<br />

if(ATA[0].ATAIsOK == TRUE) (1)<br />

{<br />

}<br />

break;<br />

DiskInfo = GetEmptyDiskInfoAddr();<br />

if (DiskInfo != NULL)<br />

{<br />

}<br />

case DISK_CLOSE:<br />

rt = RETURN_OK;<br />

break;<br />

DiskInfo->DiakCommand = <strong>CF</strong>Cammand;<br />

DiskInfo->RsvdForLow = GetVolumeFirstSect(0); (2)<br />

rt = DISK_INIT_OK;<br />

case DISK_READ_SECTOR: /*读扇区*/<br />

rt = DISK_READ_NOT_OK;<br />

if(ATA_<strong>Read</strong>Sector(0,(uint16*)Dp->Buf, Dp->SectorIndex + Dp->RsvdForLow,1)) (3)<br />

{

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!