ide.h
来自「武汉创维特ARM7实验箱的全部源代码」· C头文件 代码 · 共 63 行
H
63 行
#ifndef __IDE_H__
#define __IDE_H__
#define IDE_CONTROL_ADDR 0x0a000004
#define IDE_CONTROL_MASK_POWER (1<<5)
#define IDE_CONTROL_MASK_IOIS (1<<4)
#define IDE_CONTROL_MASK_CS (0x3<<2)
#define IDE_COMMAND_BASE 0x020C0000
//control block registers
#define REG_ALT_STATUS (IDE_CONTROL_BASE+0x08) // R
#define REG_DEVICE_CONTROL (IDE_CONTROL_BASE+0x08) // W
#define REG_DRIVE_ADDRESS (IDE_CONTROL_BASE+0x0e) // R
//command block registers
#define REG_DATA (IDE_COMMAND_BASE+0x00) // RW
#define REG_ERROR (IDE_COMMAND_BASE+0x02) // RW
#define REG_SECTOR_COUNT (IDE_COMMAND_BASE+0x04) // RW
#define REG_SECTOR_NUMBER (IDE_COMMAND_BASE+0x06) // RW
#define REG_LBA_BITS_00_07 (IDE_COMMAND_BASE+0x06) // RW
#define REG_CYLINDER_LOW (IDE_COMMAND_BASE+0x08) // RW
#define REG_LBA_BITS_08_15 (IDE_COMMAND_BASE+0x08) // RW
#define REG_CYLINDER_HIGH (IDE_COMMAND_BASE+0x0a) // RW
#define REG_LBA_BITS_16_23 (IDE_COMMAND_BASE+0x0a) // RW
#define REG_DRIVE_HEAD (IDE_COMMAND_BASE+0x0c) // RW
#define REG_LBA_BITS_24_27 (IDE_COMMAND_BASE+0x0c) // RW
#define REG_STATUS (IDE_COMMAND_BASE+0x0e) // R
#define REG_COMMAND (IDE_COMMAND_BASE+0x0e) // W
// status consts
#define IDE_ST_BUSY 0x80
#define IDE_ST_DRDY 0x40
#define IDE_ST_DWF 0x20
#define IDE_ST_DSC 0x10
#define IDE_ST_DRQ 0x08
#define IDE_ST_CORR 0x04
#define IDE_ST_IDX 0x02
#define IDE_ST_ERR 0x01
// commands
#define IDE_CMD_READ_DMA 0xc8
#define IDE_CMD_READ_DMA1 0xc9
#define IDE_CMD_READ_LONG 0x22
#define IDE_CMD_READ_LONG1 0x23
#define IDE_CMD_READ_MULTI 0xc4
#define IDE_CMD_READ_SECTORS 0x20
#define IDE_CMD_READ_SECTORS1 0x21
#define IDE_CMD_READ_VERIFY_SECTORS 0x40
#define IDE_CMD_READ_VERIFY_SECTORS1 0x41
#define IDE_CMD_WRITE_SECTORS 0x30
#define IDE_CMD_WRITE_SECTORS1 0x31
// shortcut defines
#define inp(port) (*(unsigned char *)(port))
#define inw(port) (*(unsigned short *)(port))
#define outp(port, value) (*(unsigned char *)(port))=value
#define outw(port, value) (*(unsigned short*)(port))=value
#endif /*__IDE_H__*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?