📄 cd_rom.h
字号:
#ifndef __CD_ROM_H__
#define __CD_ROM_H__
#ifdef __cplusplus
extern "C" {
#endif
/*=========================================================================
* ata/atapi Command
*=========================================================================
*/
#define IDENTIFYDEVICE 0xec
#define READSECTOR 0x20
#define READMULTIPLE 0xc4
#define READDMA 0xc8
#define WRITESECTOR 0x30
#define WRITEMULTIPLE 0xc5
#define WRITEDMA 0xca
#define SETFEATURES 0xef
#define PACKET 0xa0
#define DEVICE_RESET 0x08
#define IDENTIFY_PACKET_DEVICE 0xa1
/*=========================================================================
* ata/atapi interface register
*=========================================================================
*/
#define ATA_BASE_2460 0x05000000
#define ATA_DATA (ATA_BASE_2460 + 0x0)
#define ATA_ERROR (ATA_BASE_2460 + 0x2)
#define ATA_FEATURE (ATA_BASE_2460 + 0x2)
#define ATA_SECTOR (ATA_BASE_2460 + 0x4)
#define ATA_LOWLBA (ATA_BASE_2460 + 0x6)
#define ATA_MIDLBA (ATA_BASE_2460 + 0x8)
#define ATA_HIGHLBA (ATA_BASE_2460 + 0xa)
#define ATA_DEVICE (ATA_BASE_2460 + 0xc)
#define ATA_STATUS (ATA_BASE_2460 + 0xe)
#define ATA_COMMAND (ATA_BASE_2460 + 0xe)
#define ATA_ALTANATE (ATA_BASE_2460 + 0x1c)
#define ATA_CONTROL (ATA_BASE_2460 + 0x1c)
/*=========================================================================
* atapi identify information
*=========================================================================
*/
#define SERIAL_NUMBER_OFFSET 10
#define SERIAL_NUMBER_SIZE (10*2)
#define FIRMWARE_REVISION_OFFSET 23
#define FIRMWARE_REVISION_SIZE (4*2)
#define MODEL_NUMBER_OFFSET 27
#define MODEL_NUMBER_SIZE (20*2)
typedef enum __ATA_error_t {
ATA_NO_ERROR=0,
ATA_TIMEOUT,
ATA_ABORT,
ATA_OUT_OF_ADDRESS,
ATA_UNCORRECTALBE_DATA,
ATA_DEVICE_BUSY,
ATA_UNKNOWN
}ATA_error_t;
/*=========================================================================
* ata controller error type
*=========================================================================
*/
#define TIME_OUT_VALUE 1200
#define TIME_OUT_VALUE2 10000
#define ATA_ABSENT 0
#define ATA_ATA 1
#define ATA_ATAPI 2
#define ATA_SECTORSIZE 512
void CD_ROM_Test(void);
#ifdef __cplusplus
}
#endif
#endif //__CD_ROM_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -