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

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

?? ata.h

?? 嵌入式系統中的fat32和fat16源代碼(完全版)
?? H
字號:
//*****************************************************************************
//
// Title		: IDE-ATA interface driver for hard disks
// Authors		: Angelo Bannack, Giordano Bruno Wolaniuk
// File Name	: 'ata.h'
// Date			: April 26, 2004
// Version		: 1.00
// Target MCU	: Atmel AVR Series
// Editor Tabs	: 4
//
// NOTE: This code is based on original library "IDE-ATA interface driver for hard disks"
//       from Pascal Stang.
//
//	     The authors in no way will be responsible for damages that you coul'd be using this code.
//       Use this code at your own risk.
//
//       This code is distributed under the GNU Public License
//       which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

#ifndef ATA_H
#define ATA_H

#include "global.h"
#include "ataconf.h"

// constants
#define DRIVE0		0

#define STANDBY		0
#define SLEEP		1
#define IDLE		2

// ATA status register bits
#define ATA_SR_BSY		0x80
#define ATA_SR_DRDY		0x40
#define ATA_SR_DF		0x20
#define ATA_SR_DSC		0x10
#define ATA_SR_DRQ		0x08
#define ATA_SR_CORR		0x04
#define ATA_SR_IDX		0x02
#define ATA_SR_ERR		0x01

// ATA error register bits
#define ATA_ER_UNC		0x40
#define ATA_ER_MC		0x20
#define ATA_ER_IDNF		0x10
#define ATA_ER_MCR		0x08
#define ATA_ER_ABRT		0x04
#define ATA_ER_TK0NF	0x02
#define ATA_ER_AMNF		0x01

// ATA error register bits
#define ATA_HEAD_USE_LBA	0x40

// ATA commands
#define ATA_CMD_READ			0x20
#define ATA_CMD_READNR			0x21
#define ATA_CMD_WRITE			0x30
#define ATA_CMD_WRITENR			0x31
#define ATA_CMD_IDENTIFY		0xEC
#define ATA_CMD_RECALIBRATE		0x10
#define ATA_CMD_SPINDOWN		0xE0	// spin down disk immediately
#define ATA_CMD_SPINUP			0xE1	// spin up disk immediately
#define ATA_CMD_STANDBY_5SU		0xE2	// spin down disk and set auto-power-down timer (sectorcount*5sec)
#define ATA_CMD_IDLE_5SU		0xE3	// keep disk spinning and set auto-power-down timer (sectorcount*5sec)
#define ATA_CMD_SLEEP			0xE6	// sleep disk (wakeup only on HW or SW reset)
#define ATA_CMD_STANDBY_01SU	0xF2	// spin down disk and set auto-power-down timer (sectorcount*0.1sec)
#define ATA_CMD_IDLE_01SU		0xF3	// keep disk spinning and set auto-power-down timer (sectorcount*0.1sec)


// ATA CHS disk parameters (examples, now we autodetect)
#define ATA_DISKPARM_CLYS		0x03A6
#define ATA_DISKPARM_HEADS		0x10
#define ATA_DISKPARM_SECTORS	0x11

// ATA Identity fields
// all offsets refer to word offset (2 unsigned char increments)
#define ATA_IDENT_DEVICETYPE	0		// specifies ATA/ATAPI, removable/non-removable
#define ATA_IDENT_CYLINDERS		1		// number of logical cylinders
#define ATA_IDENT_HEADS			3		// number of logical heads
#define ATA_IDENT_SECTORS		6		// number of sectors per track
#define ATA_IDENT_SERIAL		10		// drive model name (20 characters)
#define ATA_IDENT_MODEL			27		// drive model name (40 characters)
#define ATA_IDENT_FIELDVALID	53		// indicates field validity of higher words (bit0: words54-58, bit1: words 64-70)
#define ATA_IDENT_LBASECTORS	60		// number of sectors in LBA translation mode

// drive mode defines (for ataSetDrivePowerMode() )
#define ATA_DISKMODE_SPINDOWN	0
#define ATA_DISKMODE_SPINUP		1
#define ATA_DISKMODE_SETTIMEOUT	2
#define ATA_DISKMODE_SLEEP		3

// typedefs
// drive info structure
typedef struct
{
	unsigned int  cylinders;
	unsigned char heads;
	unsigned char sectors;
	unsigned long sizeinsectors;
	unsigned char LBAsupport;
	char model[41];
} typeDriveInfo;


// Prototypes
void delay(unsigned short);
unsigned char IDE_Wait_State(unsigned char);
void            ataInit                (void);
void            ataDriveSelect         (unsigned char DriveNo);
void            ataSetDrivePowerMode   (unsigned char DriveNo, unsigned char mode, unsigned char timeout);
unsigned char   ataReadByte            (unsigned char reg);
void            ataWriteByte           (unsigned char reg, unsigned char data);
void            ataReadDataBuffer      (unsigned char *Buffer, unsigned short numBytes);
////////////////////
#ifndef ATA_READ_ONLY
void            ataWriteDataBuffer     (unsigned char *Buffer, unsigned short numBytes);
#endif
////////////////////
unsigned char   ataStatusWait          (unsigned char mask, unsigned char waitStatus);
unsigned long   ataGetSizeInSectors    (void);
unsigned long   ataGetSize             (void);
char           *ataGetModel            (void);

// read and write routines for CHS based drives
unsigned char   ataReadSectorsCHS      (unsigned char Drive,
										unsigned char Head,
										unsigned int Track,
										unsigned char Sector,
										unsigned char *Buffer);

////////////////////
#ifndef ATA_READ_ONLY
unsigned char   ataWriteSectorsCHS     (unsigned char Drive,
										unsigned char Head,
										unsigned int Track,
										unsigned char Sector,
										unsigned char *Buffer);
#endif
////////////////////

// read and write routines for LBA based drives
unsigned char   ataReadSectorsLBA      (unsigned char Drive,
										unsigned long lba,
                            			unsigned char *Buffer);

////////////////////
#ifndef ATA_READ_ONLY
unsigned char   ataWriteSectorsLBA     (unsigned char Drive,
										unsigned long lba,
                            			unsigned char *Buffer);
#endif
////////////////////

// generic read and write routines using LBA
//   uses native or translated LBA addressing
//   given autodetected drive type
unsigned char   ataReadSectors         (unsigned char Drive,
										unsigned long lba,//sector number
                            			unsigned char *Buffer,
                            			unsigned long *SectorInCache); //actual sector
////////////////////
#ifndef ATA_READ_ONLY
unsigned char   ataWriteSectors        (unsigned char Drive,
										unsigned long lba,
	                           			unsigned char *Buffer);
#endif
////////////////////


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线一区二区| 国产一区不卡在线| 久久综合久久久久88| a级高清视频欧美日韩| 成人av在线影院| 日韩精品一二三| 综合中文字幕亚洲| 欧美xxxx在线观看| 欧美在线观看一二区| 国产福利不卡视频| 天堂精品中文字幕在线| 成人欧美一区二区三区小说| 精品女同一区二区| 欧美性大战久久久久久久蜜臀| 国产精品一二三在| 日本麻豆一区二区三区视频| 亚洲欧洲精品一区二区三区 | 国产农村妇女毛片精品久久麻豆| 欧美中文字幕一区二区三区亚洲| 国产成人亚洲精品狼色在线| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲综合色噜噜狠狠| 国产精品免费网站在线观看| 精品国产乱码久久久久久老虎| 欧美体内she精视频| 日本福利一区二区| 91免费视频大全| 成人h动漫精品一区二区| 老司机一区二区| 美女在线视频一区| 亚洲成人激情综合网| 在线看国产一区二区| 国产超碰在线一区| 亚洲va欧美va天堂v国产综合| 岛国精品在线观看| 粉嫩av亚洲一区二区图片| 一区二区三区不卡视频| 一区二区三区四区视频精品免费| 亚洲午夜一区二区| 中文字幕成人在线观看| 亚洲女人****多毛耸耸8| 欧美国产成人在线| 国产亚洲人成网站| 国产亚洲精品免费| 国产精品视频观看| 中文av一区二区| 国产精品久久综合| 亚洲欧美激情小说另类| 亚洲天堂中文字幕| 亚洲综合久久久| 亚洲bt欧美bt精品777| 亚洲不卡一区二区三区| 午夜伊人狠狠久久| 青草av.久久免费一区| 热久久免费视频| 久久99精品国产麻豆婷婷| 国产精品一级在线| jlzzjlzz欧美大全| 欧美体内she精视频| 欧美一级片在线看| 日本一区二区在线不卡| 一区视频在线播放| 丝袜亚洲精品中文字幕一区| 激情综合色播五月| 暴力调教一区二区三区| 91成人在线免费观看| 欧美另类久久久品| 久久久亚洲精品石原莉奈| 国产精品欧美精品| 亚洲福利一区二区| 国产一区二区不卡| 色综合久久天天| 欧美一区二区视频在线观看 | 69堂国产成人免费视频| 日韩免费一区二区| 中文字幕 久热精品 视频在线| 国产精品久久网站| 午夜一区二区三区视频| 久久66热re国产| 91免费观看视频| 欧美一区二区免费视频| 中文字幕的久久| 日韩电影在线免费观看| 成人sese在线| 日韩一区二区中文字幕| 国产精品久久久久久亚洲毛片 | 亚洲一区二区中文在线| 日韩成人免费看| 成人av影院在线| 91精品国产乱码久久蜜臀| 国产精品免费aⅴ片在线观看| 亚洲国产中文字幕在线视频综合 | 国产一区二区伦理片| 色综合一个色综合| 色综合久久中文字幕| 久久夜色精品一区| 亚洲成人7777| proumb性欧美在线观看| www日韩大片| 日韩一区二区中文字幕| 成人免费视频在线观看| 久久99精品久久久久久国产越南| 色94色欧美sute亚洲线路一久 | 91高清视频在线| 久久色成人在线| 日韩成人av影视| 一本一道波多野结衣一区二区| 久久人人97超碰com| 亚洲不卡av一区二区三区| jvid福利写真一区二区三区| 久久综合色播五月| 天堂va蜜桃一区二区三区漫画版| 91在线码无精品| 国产人成亚洲第一网站在线播放| 日本午夜一区二区| 欧美综合一区二区| 亚洲精品综合在线| 成人永久看片免费视频天堂| 欧美成人官网二区| 污片在线观看一区二区 | 欧美videos大乳护士334| 亚洲第一综合色| 91捆绑美女网站| 亚洲国产经典视频| 国产一区二区精品久久99| 日韩女优av电影在线观看| 爽好多水快深点欧美视频| 在线亚洲一区二区| 一区二区三区在线播| 91免费看片在线观看| 国产精品美女一区二区在线观看| 国产乱妇无码大片在线观看| 精品盗摄一区二区三区| 久久精品久久综合| 精品国产麻豆免费人成网站| 青草av.久久免费一区| 日韩三级电影网址| 久久精品国产一区二区三区免费看 | 精品亚洲成av人在线观看| 日韩欧美国产一区二区三区| 日韩国产一二三区| 在线不卡的av| 免费久久精品视频| 2024国产精品| 高清在线不卡av| 国产精品久久久久影院亚瑟| 粉嫩av一区二区三区| 久久久久久久电影| 99久久久久免费精品国产| 国产精品白丝在线| 99国产精品久| 91香蕉视频mp4| 综合婷婷亚洲小说| 欧美最猛性xxxxx直播| 午夜欧美电影在线观看| 欧美高清你懂得| 久久电影网站中文字幕| 久久综合久久鬼色中文字| 国产不卡在线视频| 亚洲欧美日韩国产成人精品影院| 欧美在线观看一二区| 七七婷婷婷婷精品国产| 精品日韩99亚洲| 99久久国产综合精品色伊| 一区二区成人在线| 日韩三级.com| 成人在线视频首页| 亚洲午夜激情av| 欧美精品一区二区久久久| 成人免费毛片嘿嘿连载视频| 亚洲综合成人网| 精品久久久久久久久久久久久久久久久 | 亚洲综合偷拍欧美一区色| 91精品国产综合久久久久久漫画| 国内精品第一页| 亚洲欧洲三级电影| 日韩一区二区三区在线视频| 粉嫩av亚洲一区二区图片| 亚洲国产精品欧美一二99| xfplay精品久久| 欧美午夜片在线观看| 国内不卡的二区三区中文字幕| 亚洲欧美在线视频观看| 7777精品伊人久久久大香线蕉的| 国内不卡的二区三区中文字幕| 亚洲欧美激情小说另类| 欧美成va人片在线观看| 色美美综合视频| 精品一区二区在线视频| 亚洲少妇屁股交4| 欧美xxx久久| 欧美亚洲国产一卡| 国产成人精品免费视频网站| 亚洲第四色夜色| 国产精品私人影院| 欧美日韩一级黄| 91麻豆国产自产在线观看| 麻豆成人av在线| 亚洲一区二区黄色| 国产精品电影一区二区|