硬盘控制器编程(副本).pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT 硬盘控制器编程 由 Hi_Cracker 整 理 自 赵 炯 老 师 的 《 Linux 内 核 完 全 注 释 》 @whu 1,AT 硬盘接口寄存器 下面对各端口寄存器进行详细说明。 HD_DATA 0x1f0 ◆数据寄存器( , ) 这是一 16 位高速 PIO 数据传输器,用于扇区读、写和磁道格式化操作。CPU 通 过该数据寄存器向硬盘写入或从硬盘读出 1 个扇区的数据,也即要使用命令 rep outsw rep insw / cx=256 或 重复读 写 字。 / HD_ERROR 0x1f1 ◆错误寄存器(读) 写前预补偿寄存器(写)( , ) 在 读 时 , 该 寄 存 器 存 放 有 8 位 的 错 误 状 态 。 但 只 有 当 主 状 态 寄 存 器 (HD_STATUS 0x1f7) 0=1 , 的位 时该寄存器中的数据才有效。执行控制器诊断命令时的 含义与其它命令时的不同。见下表所示。 在写操作时,该寄存器即作为写前预补偿寄存器。它记录写预补偿起始柱面号。 应于与硬盘基本参数表位移 0x05 处的一个字,需除 4 后输出。 HD_NSECTOR 0x1f2 ◆扇区数寄存器( , ) 该寄存器存放读、写、检验和格式化命令指定的扇区数。当用于多扇区操作时, 1 1 0 0 每完成 扇区的操作该寄存器就自动减 ,直到为 。若初值为 ,则表示传输最大扇 区数 256。 HD_SECTOR 0x1f3 ◆扇区号寄存器( , ) 该寄存器存放读、写、检验操作命令指定的扇区号。在多扇区操作时,保存的是 起始扇区号,而每完成 1 扇区的操作就自动增 1。 HD_LCYL HD_HCYL 0x1f4 0x1f ◆柱面号寄存器( , , , ) 该两个柱面号寄存器分别存放有柱面号的低 8 位和高 2 位。 / (HD_CURRENT 0x1f6) ◆驱动器 磁头寄存器 , 该寄存器存放有读、写、检验、寻道和格式化命令指定的驱动器和磁头号。其位 格式为 101dhhhh。其中 101 表示采用 ECC 校验码和每扇区为 512 字节;d 表示选择的 0 1 hhhh 驱动器( 或 ); 表示选择的磁头。 / HD_STATUS/HD_COMMAND 0x1f7) ◆主状态寄存器(读) 命令寄存器(写)( , 在读时,对应一个 8 位主状态寄存器。反映硬盘控制器在执行命令前后的操作状 态。各位的含义见下表所示。 当执行写操作时,该端口对应命令寄存器,接受 CPU 发出的硬盘控制命令,共有 8 种命令,下表所示。其中最后一列用于说明相应命令结束后控制器所采取的动作 (引发中断或者什么也不做)。 表中命令码字节的低 4 位是附加参数,其含义为: R R=0 35us R=1 0.5ms 是步进速率。 ,则步进速率为 ; 为 ,以此量递增。程序中默 认 R=0。 L 是数据模式。L=0 表示读/写扇区为 512 字节;L=1 表示读/写扇区为 5

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档