所需E币: 5
时间: 2020-1-16 14:31
大小: 266.8KB
软盘控制器软盘控制器编程方法软盘控制器的编程方法赵炯oldlinux.org(gohigh@sh163.net)1.1软盘驱动器的设备号在Linux中,软驱的主设备号是2,次设备号=TYPE*4+DRIVE,其中DRIVE为0-3,分别对应软驱A、B、C或D;TYPE是软驱的类型,2表示1.2M软驱,7表示1.44M软驱,也即floppy.c中85行定义的软盘类型(floppy_type[])数组的索引值:表6.1软盘驱动器类型类型01234567说明不用。360KBPC软驱。1.2MBAT软驱。360kB在720kB驱动器中使用。3.5"720kB软盘。360kB在1.2MB驱动器中使用。720kB在1.2MB驱动器中使用。1.44MB软驱。例如,因为7*4+0=28,所以/dev/PS0(2,28)指的是1.44MA驱动器,其设备号是0x021c。同理/dev/at0(2,8)指的是1.2MA驱动器,其设备号是0x0208。1.2软盘控制器对软盘控制器的编程比较烦琐。在编程时需要访问4个端口,分别对应一个或多个寄存器。对于1.2M的软盘控制器有以下一些端口。表6.2软盘控制器端口I/O端口0x3f20x3f40x3f50x3f7读写性只写只读读/写只读只写寄存器名称数字输出寄存器(DOR)(数字控制寄存器)FDC主状态寄存器(STATUS)FDC数据寄存器(DATA)数字输入寄存器(DIR)磁盘控制寄存器(DCR)(传输率控制)数字输出端口DOR(数字控制端口)是一个8位寄存器,它控制驱动器马达开启、驱动器选择、启动/复位FDC以及允许/禁止DMA及中断请求。表6.3数字输出寄存……