NEC V850E/MA1 Application Note page 87

32-bit single-chip microcontrollers pci host bridge macro
Hide thumbs Also See for V850E/MA1:
Table of Contents

Advertisement

// Function: Executes READ SECTOR(S) command (Protocol:PI, Command:20h).//
// Argument: dev_num : Device selection (0:Master/1:Slave)
//
lba : LBA
//
sec_cnt : Number of sectors
//
buff : Buffer pointer
// Return value:
//
STATUS_SUCCESS : Normal end
//
STATUS_TIMEOUT_DEVICE_SELECTION : DEVICE SELECTION error end
//
STATUS_TIMEOUT_DRDY1 : DRDY=1 timeout error end
//
STATUS_TIMEOUT_INTRQ : INTRQ timeout error end
//
STATUS_IDE_ERROR : Error end after command execution
//
//////////////////////////////////////////////////////////////////////////
int ATA_Read_Sector(int dev_num, UWORD lba, UHWORD sec_cnt, void *buff)
{
int status;
ATA_COMMAND ac;
ac.features
ac.sector_count
ac.sector_number = (lba & 0xFF);
ac.cylinder_low
ac.cylinder_high = (lba>>16 & 0xFF);
ac.device_head
ac.command
status = ATA_PIO_datain(&ac, sec_cnt, buff);
return status;
}
///////////////////////////////////////////////////////////////////////////
// Function name: ATA_Write_Sector
// Function: Executes WRITE SECTOR(S) command (Protocol:PO, Command:30h).//
// Argument: dev_num : Device selection (0:Master/1:Slave)
//
lba : LBA
//
sec_cnt : Number of sectors
//
buff : Buffer pointer
// Return value:
//
STATUS_SUCCESS : Normal end
//
STATUS_TIMEOUT_DEVICE_SELECTION : DEVICE SELECTION error end
//
STATUS_TIMEOUT_BSY0_DRQ0 : BSY=0,DRQ=0 timeout error end
//
STATUS_TIMEOUT_DRDY1 : DRDY=1 timeout error end
//
STATUS_TIMEOUT_INTRQ : INTRQ timeout error end
//
STATUS_IDE_ERROR : Error end after command execution
//
///////////////////////////////////////////////////////////////////////////
int ATA_Write_Sector(int dev_num, UWORD lba, UHWORD sec_cnt, void *buff)
{
CHAPTER 5 APPLICATION EXAMPLES
= 0x00;
= sector_count;
= (lba>>8
& 0xFF);
= 0x40|(dev_num<<4)|(lba>>24 & 0x0F); // Device/Head register
= 0x20;
Application Note U17121EJ1V1AN
//
//
//
//
//
//
//
//
//
//
//
// Features register
// SectorCount register
// SectorNumber register
// CylinderLow register
// CylinderHigh register
// Command register
//
//
//
//
//
//
//
//
//
//
//
//
//
87

Advertisement

Table of Contents
loading

This manual is also suitable for:

V850e/ma2V850e/ma3V850e/me2

Table of Contents