⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seeddm642_ide.h

📁 这是测试SEED-VPM642系统中第1通路的图像显示(U21)的程序。
💻 H
字号:
/*
 *  Copyright 2004 by SEED Incorporated.
 *  All rights reserved. Property of SEED Incorporated.
 */

/*
 *  ======== seeddm642_ide.h ========
 *
 */
#include <std.h>
#include <csl.h>



/*ATA register*/
#define SEEDDM642_ATA_AS    	(SEEDDM642_ATACS1 + 0x18) //read only
#define SEEDDM642_ATA_DEVCON    (SEEDDM642_ATACS1 + 0x18) //write only

#define SEEDDM642_ATA_DATA  	(SEEDDM642_ATACS0 + 0x0) //write and read
#define SEEDDM642_ATA_ERROR     (SEEDDM642_ATACS0 + 0x4) //read  only
#define SEEDDM642_ATA_FEATURES  (SEEDDM642_ATACS0 + 0x4) //write only
#define SEEDDM642_ATA_SECTOR    (SEEDDM642_ATACS0 + 0x8) //write and read
#define SEEDDM642_ATA_LBAL      (SEEDDM642_ATACS0 + 0xc)//write and read
#define SEEDDM642_ATA_LBAM      (SEEDDM642_ATACS0 + 0x10) //write and read
#define SEEDDM642_ATA_LBAH      (SEEDDM642_ATACS0 + 0x14)//write and read
#define SEEDDM642_ATA_DEVICE	(SEEDDM642_ATACS0 + 0x18) //write and read
#define SEEDDM642_ATA_COM   	(SEEDDM642_ATACS0 + 0x1c) //write only
#define SEEDDM642_ATA_STATUS    (SEEDDM642_ATACS0 + 0x1c) //read only

/*the bus status*/
#define ATA_BUS_BSY  0x80
#define ATA_BUS_DRDY 0x40
#define ATA_BUS_DF   0x20
#define ATA_BUS_DRQ  0x08
#define ATA_BUS_ERR  0x01

/*ata command*/
#define IDENTIFY_DEVICE      0xEC
#define READ_SECTOR(S)       0x20
#define WRITE_SECTOR(S)      0x30
/*ATA command,if a regiset is not used during command ,set the rigiter
value :0x100*/
typedef struct {
	Uint32 features;         
	Uint32 sector_count;     
	Uint32 LBA_l;           
	Uint32 LBA_M;         
	Uint32 LBA_H;             
	Uint32 device;	        
	Uint32 com_code;
	int    prereq;
	int    complete_flag;
} ATA_command;
/* ATA Handle */
typedef int SEEDDM642_ATAHandle;

/*******************************************************************/
/*																   */
/*	int ata_status()											   */
/*		描述:读回当前硬盘的状态								   */
/*		参数:无												   */
/*		返值:当前状态寄存器的值								   */
/*																   */
/*******************************************************************/
int ata_status();
/*******************************************************************/
/*																   */
/*	SEEDDM642_ATAHandle ata_open()  							   */
/*		描述:打开有效的硬盘设备								   */
/*		参数:无												   */
/*		返值:有效设备的句柄									   */
/*																   */
/*******************************************************************/
SEEDDM642_ATAHandle ata_open();
/*******************************************************************/
/*																   */
/*	int ata_command()											   */
/*		描述:设置当前寄存器    								   */
/*		参数:regaddr:寄存器地址								   */
/*			  regdata:寄存器的值                                   */
/*		返值:无												   */
/*																   */
/*******************************************************************/
Bool ata_command(ATA_command *command,Uint32 buffer,Uint32 longth);
/*******************************************************************/
/*																   */
/*	int ata_reg_write()											   */
/*		描述:设置当前寄存器    								   */
/*		参数:regaddr:寄存器地址								   */
/*			  regdata:寄存器的值                                   */
/*		返值:无												   */
/*																   */
/*******************************************************************/
void ata_reg_write(Uint32 regaddr,Uint32 regdata);
/*******************************************************************/
/*																   */
/*	int ata_reg_read()											   */
/*		描述:读回当前寄存器的状态								   */
/*		参数:寄存器指示										   */
/*		返值:当前状态寄存器的值								   */
/*																   */
/*******************************************************************/
int ata_reg_read(Uint32 regaddr);



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -