DO_RW_DISK(COMMAND) { Set_Registers(); if(COMMAND=READ){ Set read_intr as interrupt process function Send WIN_READ or WIN_MULTREAD command to Command register } if(COMMAND=WRITE){ Send WIN_WRITE or WIN_MULTWRITE command to Command register Get the status of Status register and set DRQ bit Set write intr as interrupt process function Senddatato buferin thedisk } }
5.4 释放设备
由设备驱动程序中的release操作完成,一般完成与打开设备相反的动作:释放打开设备特殊文件时在file结构上所创建的私有结构;如果是最后一个设备的释放,则从硬件上关闭设备。
6 结束语
通过上述方法对IDE硬盘接口的设计与实现,我们可以在S3C2410开发板上安全自由地对硬盘上的各种文件系统进行访问,由于采用DMA方式,可以满足用户对速率的要求。