亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ide_x_hw.c

?? 文件系統(tǒng)轅馬,想要的258031823大幅度反對反對法
?? C
字號:
/*
**********************************************************************
*                          Micrium, Inc.
*                      949 Crestview Circle
*                     Weston,  FL 33327-1848
*
*                            uC/FS
*
*             (c) Copyright 2001 - 2003, Micrium, Inc.
*                      All rights reserved.
*
***********************************************************************

----------------------------------------------------------------------
File        : ide_X_hw.c
Purpose     : Generic IDE hardware layer
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
None.
---------------------------END-OF-HEADER------------------------------
*/

/*********************************************************************
*
*             #include Section
*
**********************************************************************
*/

#include "fs_conf.h"
#include "FS_ConfDefaults.h"

#if FS_USE_IDE_DRIVER

#include "ide_x_hw.h"

/*********************************************************************
*
*             #define Macros
*
**********************************************************************
*/

/* */
#define IDE_BASEADDR 0x600200

#define IDE_DATA          *(volatile unsigned short*)(IDE_BASEADDR+0)
#define IDE_FEATURE       *(volatile unsigned char*) (IDE_BASEADDR+1)
#define IDE_SECTOR_COUNT  *(volatile unsigned char*) (IDE_BASEADDR+2)
#define IDE_SECTORNO      *(volatile unsigned char*) (IDE_BASEADDR+3)
#define IDE_CYLINDERLOW   *(volatile unsigned char*) (IDE_BASEADDR+4)
#define IDE_CYLINDERHIGH  *(volatile unsigned char*) (IDE_BASEADDR+5)
#define IDE_DEVICE        *(volatile unsigned char*) (IDE_BASEADDR+6)
#define IDE_COMMAND       *(volatile unsigned char*) (IDE_BASEADDR+7)

#define IDE_BASEADDR2 0x600300
#define IDE_DEVICECONTROL *(volatile unsigned char*)(IDE_BASEADDR2+6)

#define HW__DELAY400NS()        FS_IDE_HW_X_GetAltStatus(Unit); FS_IDE_HW_X_GetAltStatus(Unit); \
                                FS_IDE_HW_X_GetAltStatus(Unit); FS_IDE_HW_X_GetAltStatus(Unit)


/*********************************************************************
*
*             Local Variables        
*
**********************************************************************
*/

/*********************************************************************
*
*             Global functions section
*
**********************************************************************
*/

/*********************************************************************
*
*             FS_IDE_HW_X_BusyLedOn
*
  Description:
  FS driver hardware layer function. Turn on busy led.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_BusyLedOn(FS_U8 Unit) {
}


/*********************************************************************
*
*             FS_IDE_HW_X_BusyLedOff
*
  Description:
  FS driver hardware layer function. Turn off busy led.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_BusyLedOff(FS_U8 Unit) {
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetData
*
  Description:
  FS driver hardware layer function. Set the WR DATA register.

  Parameters:
  Unit        - Unit number.
  Data        - Data to be set.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetData(FS_U8 Unit, FS_U16 Data) {
  IDE_DATA = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetData
*
  Description:
  FS driver hardware layer function. Read the RD DATA register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the RD DATA register.
*/

FS_U16 FS_IDE_HW_X_GetData(FS_U8 Unit) {
  return IDE_DATA;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetFeatures
*
  Description:
  FS driver hardware layer function. Set the FEATURES register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the FEATURES register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetFeatures(FS_U8 Unit, unsigned char Data) {
  IDE_FEATURE = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetError
*
  Description:
  FS driver hardware layer function. Read the ERROR register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the ERROR register.
*/

unsigned char FS_IDE_HW_X_GetError(FS_U8 Unit) {
  return IDE_FEATURE;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetSectorCount
*
  Description:
  FS driver hardware layer function. Set the SECTOR COUNT register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the SECTOR COUNT register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetSectorCount(FS_U8 Unit, unsigned char Data) {
  IDE_SECTOR_COUNT = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetSectorCount
*
  Description:
  FS driver hardware layer function. Read the SECTOR COUNT register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the SECTOR COUNT register.
*/

unsigned char FS_IDE_HW_X_GetSectorCount(FS_U8 Unit) {
  return IDE_SECTOR_COUNT;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetSectorNo
*
  Description:
  FS driver hardware layer function. Set the SECTOR NUMBER register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the SECTOR NUMBER register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetSectorNo(FS_U8 Unit, unsigned char Data) {
  IDE_SECTORNO = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetSectorNo
*
  Description:
  FS driver hardware layer function. Read the SECTOR NUMBER register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the SECTOR NUMBER register.
*/

unsigned char FS_IDE_HW_X_GetSectorNo(FS_U8 Unit) {
  return IDE_SECTORNO;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetCylLow
*
  Description:
  FS driver hardware layer function. Set the CYLINDER LOW register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the CYLINDER LOW register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetCylLow(FS_U8 Unit, unsigned char Data) {
  IDE_CYLINDERLOW = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetCylLow
*
  Description:
  FS driver hardware layer function. Read the CYLINDER LOW register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the CYLINDER LOW register.
*/

unsigned char FS_IDE_HW_X_GetCylLow(FS_U8 Unit) {
  return IDE_CYLINDERLOW;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetCylHigh
*
  Description:
  FS driver hardware layer function. Set the CYLINDER HIGH register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the CYLINDER HIGH register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetCylHigh(FS_U8 Unit, unsigned char Data) {
  IDE_CYLINDERHIGH = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetCylHigh
*
  Description:
  FS driver hardware layer function. Read the CYLINDER HIGH register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the CYLINDER HIGH register.
*/

unsigned char FS_IDE_HW_X_GetCylHigh(FS_U8 Unit) {
  return IDE_CYLINDERHIGH;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetDevice
*
  Description:
  FS driver hardware layer function. Set the DEVICE/HEAD register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the DEVICE/HEAD register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetDevice(FS_U8 Unit, unsigned char Data) {
  IDE_DEVICE = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetDevice
*
  Description:
  FS driver hardware layer function. Read the DEVICE/HEAD register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the DEVICE/HEAD register.
*/

unsigned char FS_IDE_HW_X_GetDevice(FS_U8 Unit) {
  return IDE_DEVICE;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetCommand
*
  Description:
  FS driver hardware layer function. Set the COMMAND register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the COMMAND register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetCommand(FS_U8 Unit, unsigned char Data) {
  IDE_COMMAND = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetStatus
*
  Description:
  FS driver hardware layer function. Read the STATUS register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the STATUS register.
*/

unsigned char FS_IDE_HW_X_GetStatus(FS_U8 Unit) {
  return IDE_DEVICE;
}


/*********************************************************************
*
*             FS_IDE_HW_X_SetDevControl
*
  Description:
  FS driver hardware layer function. Set the DEVICE CONTROL register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the DEVICE CONTROL register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetDevControl(FS_U8 Unit, unsigned char Data) {
  IDE_DEVICECONTROL = Data;
}


/*********************************************************************
*
*             FS_IDE_HW_X_GetAltStatus
*
  Description:
  FS driver hardware layer function. Read the ALTERNATE STATUS register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the ALTERNATE STATUS register.
*/

unsigned char FS_IDE_HW_X_GetAltStatus(FS_U8 Unit) {
  return IDE_DEVICECONTROL;
}


/*********************************************************************
*
*             FS_IDE_HW_X_DetectStatus
*
  Description:
  FS driver hardware layer function. Check if the device is present.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  ==0         - Device is connected.
  !=0         - Device has not been found.
*/

char FS_IDE_HW_X_DetectStatus(FS_U8 Unit) {
  int Present;
  unsigned char a;
  unsigned char b;
  FS_IDE_HW_X_SetDevice(Unit, 0xa0);
  HW__DELAY400NS();
  FS_IDE_HW_X_SetSectorCount(Unit, 0x55);
  FS_IDE_HW_X_SetSectorNo(Unit, 0xaa);
  FS_IDE_HW_X_SetSectorCount(Unit, 0xaa);
  FS_IDE_HW_X_SetSectorNo(Unit, 0x55);
  FS_IDE_HW_X_SetSectorCount(Unit, 0x55);
  FS_IDE_HW_X_SetSectorNo(Unit, 0xaa);
  a = FS_IDE_HW_X_GetSectorCount(Unit);
  b = FS_IDE_HW_X_GetSectorNo(Unit);
  Present = (a == 0x55);
  Present = Present && (b == 0xaa);
  /* if Present is 1, we will return 0 */
  /* we have found a device */
  return (!Present);
}


/*********************************************************************
*
*             FS_IDE_HW_X_HWReset
*
  Description:
  FS driver hardware layer function. This function is called, when 
  the driver detects a new media is present. For ATA HD drives, there 
  is no action required and this function can be empty.
  When using a CF card, please be aware, that the card needs to be
  power cycled while ~OE is grounded. If the card is inserted, VCC & 
  GND will provide the card before ~OE is connected and the card will 
  be in PC Card ATA mode.

  Parameters:
  Unit        - Unit number.
  Return value:
  None.

   
*/

void FS_IDE_HW_X_HWReset(FS_U8 Unit) {
  if (Unit != 0) {
    return;
  }
}

#endif /* FS_USE_IDE_DRIVER */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
水野朝阳av一区二区三区| 亚洲美女少妇撒尿| 亚洲国产精品影院| 91小宝寻花一区二区三区| 国产午夜亚洲精品不卡| 黄一区二区三区| 国产午夜精品一区二区三区嫩草| 国产精品99久久久久久有的能看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久久综合精品| 国产成人精品一区二区三区四区 | 亚洲精品视频在线观看网站| 成人av一区二区三区| 中文字幕一区三区| 欧美性猛交xxxx乱大交退制版| 夜夜爽夜夜爽精品视频| 精品久久久久久久人人人人传媒| 久草在线在线精品观看| 日韩欧美成人一区| 国产剧情一区二区三区| 亚洲国产另类av| 久久久综合视频| 91精品黄色片免费大全| 精品中文字幕一区二区| 亚洲国产高清不卡| 欧美成人激情免费网| 欧美专区日韩专区| 大桥未久av一区二区三区中文| 亚洲午夜久久久久久久久久久| 久久久激情视频| 国产三级精品三级| 国产女主播视频一区二区| 欧美一级精品在线| 欧美系列在线观看| 日本二三区不卡| 丁香婷婷综合网| 激情都市一区二区| 成人永久看片免费视频天堂| 免费视频一区二区| 奇米色一区二区| 国产精品亚洲专一区二区三区 | 欧美国产欧美综合| 久久久国产午夜精品| 久久九九影视网| 亚洲视频一区在线| 日本欧美加勒比视频| 日本欧美在线看| 成人精品在线视频观看| 91成人在线观看喷潮| 欧美性受极品xxxx喷水| 99久久夜色精品国产网站| k8久久久一区二区三区| 在线观看成人免费视频| 国产人久久人人人人爽| 国产精品888| 成人av在线一区二区| 欧美影院一区二区| 久久日一线二线三线suv| 亚洲男同性恋视频| 日本欧美一区二区在线观看| 成人免费视频免费观看| 97精品电影院| 26uuu久久综合| 香蕉影视欧美成人| 一本大道久久a久久综合| 精品国产凹凸成av人导航| 久久久久国产精品人| 午夜av区久久| 欧美无砖砖区免费| 亚洲综合丁香婷婷六月香| 国产米奇在线777精品观看| 在线播放视频一区| 日韩一区日韩二区| 成人免费看黄yyy456| 精品国精品国产| 视频一区中文字幕| 欧美日韩高清在线| 亚洲综合精品久久| 91网站最新网址| 洋洋av久久久久久久一区| 99久久国产免费看| 日韩伦理av电影| 在线日韩一区二区| 婷婷综合另类小说色区| 91精品国产综合久久久久| 性感美女久久精品| 日韩精品中文字幕一区二区三区| 麻豆精品一区二区三区| 精品久久久三级丝袜| 一区二区三区日韩| 精品国产第一区二区三区观看体验| 五月天中文字幕一区二区| 欧美三级视频在线| 一级精品视频在线观看宜春院 | 国产色91在线| 色婷婷亚洲综合| 午夜精品福利一区二区三区av | 69av一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美无砖专区一中文字| 美脚の诱脚舐め脚责91 | 日韩黄色小视频| 欧美国产精品专区| 欧美日韩另类一区| proumb性欧美在线观看| 奇米影视在线99精品| 亚洲日本青草视频在线怡红院| 欧美日韩在线播放一区| 视频一区视频二区中文字幕| 国产日韩综合av| 欧美一区二区视频在线观看2020| 精品一区二区久久久| 日韩av中文字幕一区二区| 国产精品水嫩水嫩| 国产欧美一区二区三区沐欲| 欧美三片在线视频观看| 国产精品一区2区| 图片区小说区区亚洲影院| 综合色中文字幕| 国产欧美一区视频| 欧美一区二区三区色| 欧美大度的电影原声| 日韩精品一区二区三区四区| 88在线观看91蜜桃国自产| 色噜噜狠狠色综合欧洲selulu| 成人午夜视频福利| 国产1区2区3区精品美女| 福利91精品一区二区三区| 成人视屏免费看| 国产成人综合视频| 玖玖九九国产精品| 精品一二三四在线| 91色porny在线视频| 99久久精品免费看国产| 欧美在线三级电影| 日韩三级视频在线观看| 中文字幕在线一区免费| 中文字幕一区二区三区乱码在线| 日韩毛片一二三区| 亚洲一区二区三区自拍| 亚洲成人黄色影院| 盗摄精品av一区二区三区| 欧亚洲嫩模精品一区三区| 精品99久久久久久| 欧美韩国日本综合| 久久国内精品视频| 91蝌蚪porny成人天涯| 91麻豆精品91久久久久久清纯 | 在线播放/欧美激情| 国产视频一区二区在线观看| 日韩高清不卡一区二区| 美女看a上一区| 欧美精品第一页| 国产精品久久福利| 成人在线视频一区| 国产日韩欧美一区二区三区乱码| 亚洲综合清纯丝袜自拍| 色婷婷综合久久久中文字幕| 日韩欧美成人一区| 日韩avvvv在线播放| 欧美日精品一区视频| 婷婷亚洲久悠悠色悠在线播放| 91免费国产在线| 亚洲第一主播视频| 91精品国产欧美一区二区18| 婷婷中文字幕综合| 日韩一区二区三区视频在线观看| 亚洲国产成人av| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲色图清纯唯美| 成人动漫在线一区| 亚洲图片另类小说| 在线观看91精品国产麻豆| 亚洲三级电影网站| 成人国产精品免费观看视频| 日本一区二区三区视频视频| 国产成人鲁色资源国产91色综| 精品久久人人做人人爰| 97久久精品人人爽人人爽蜜臀| 亚洲一区二区三区自拍| 日韩女同互慰一区二区| 老司机午夜精品| 亚洲欧美激情插 | 欧美亚洲图片小说| 精品一区二区日韩| 亚洲成a人v欧美综合天堂| 欧美成人欧美edvon| 94-欧美-setu| 蜜臀av国产精品久久久久| 亚洲欧美中日韩| 欧美一区二区免费视频| 色哟哟国产精品| av网站一区二区三区| 免费成人在线观看| 亚洲乱码日产精品bd| 欧美激情综合五月色丁香小说| 777xxx欧美| 91国产视频在线观看| 91亚洲大成网污www| 经典三级一区二区|