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

📄 gpif.h

📁 cypress的usb接ata源代码
💻 H
字号:
//-----------------------------------------------------------------------------
//   File:      gpif.h
//   Contents:   Header file
//
// Copyright (c) 1999 Cypress Semiconductor, Inc. All rights reserved
//
// $Archive: /USB/atapifx2/software/gpif.h $
// $Date: 6/20/01 7:17a $
// $Revision: 16 $
//-----------------------------------------------------------------------------
#include "atapi.h"

// Mapping of DA and CS numbers to port pins
#define DA(x)  (x << 1)
#define CS(x)  (x << 4)
#define OUTATAPI  IOA

// Other ATAPI signals -- Port A
#define ATAPI_DASP_           (1<<6)         /* input */
#define ATAPI_RESET_          (1<<7)         /* output */
#define GPIF_DISCON_          (1<<2)         /* output */
#define PORTA_OE              0xFE           /* all output except PA.0 */
#define PORTA_CFG_AND         (0xff ^ (DA(7)|CS(3)|ATAPI_RESET_))
#define PORTA_CFG_OR          (bmINT0)
#define ATAPI_IDLE_VALUE      (ATAPI_RESET_ | ATAPI_DASP_ | DA(7)|CS(3))

#define USE_IORDY    1

#undef _at_


//-----------------------------------------------------------------------------
// GPIF Globals
//-----------------------------------------------------------------------------

// Port B is ALL GPIF

#define ATAPI_ADDR_MASK       (DA(7)|CS(3))
#define ATAPI_OE              (DA(7)|CS(3))

#define IORDY_TIMEOUT_RELOAD	    200
#define CLEAR_INTRQ

#define readSectorDataToEP8()                                           \
{                                                                       \
    BYTE i;                                                             \
                                                                        \
   /* check for GPIF ready */                                           \
   while (!(GPIFTRIG & 0x80))    /* SFR space - faster */               \
      ;                                                                 \
   /* PIO read is waveform 1 */                                         \
   GPIFWFSELECT = (1);                                                  \
                                                                        \
                                                                        \
   /* Write the address/chip selects */                                 \
    OUTATAPI = ATAPI_DATA_REG | (~ATAPI_ADDR_MASK & ATAPI_IDLE_VALUE);  \
                                                                        \
   /* trigger GPIF and wait till done if manual mode */                 \
   i = EP8GPIFTRIG;                                                     \
   while (!(GPIFTRIG & 0x80))    /* SFR space - faster */               \
      ;                                                                 \
}

#define gpifIdle() (GPIFTRIG & 0x80)

// States
#define UNCONFIGURED        0
#define WAIT_FOR_CBW        1
#define RECEIVED_OUT_CMD    2
#define RECEIVED_IN_CMD     3


⌨️ 快捷键说明

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