【发布时间】:2020-03-08 14:30:49
【问题描述】:
我正在编写一个有趣的操作系统,我正在尝试编写一个 PATA/IDE 驱动程序来访问磁盘,但是它不起作用。我有这行unsigned char status = port_byte_in(ATAPort + COMMANDPORT);,它返回值 88(十进制)。由于这可能表明我做错了什么,并且作为其他人的参考,PATA/IDE 状态代码是什么?
我的驱动程序遵循28 bit PIO PATA/IDE 进程。
编辑 - 澄清一下,这里是 port_byte_in 函数:
unsigned char port_byte_in(unsigned short port) {
unsigned char result;
__asm__("in %%dx, %%al" : "=a" (result) : "d" (port));
return result;
}
而ATAPort 是0x1F0,COMMANDPORT = 0x07
【问题讨论】:
标签: c operating-system disk hard-drive ata