- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个爱好操作系统,特别是 ATA 驱动程序。我在使用带有中断的 PIO 数据输入命令时遇到了一些问题。我正在尝试执行 READ MULTIPLE 命令以逐 block 读取驱动器中的多个扇区,并为每个 block 触发一个中断。
如果我请求读取 4 个 block (每 block 1 个扇区)。我希望得到 4 个中断,每个数据 block 一个。在收到第四次中断后,我可以确定我已经传输了所有数据并相应地更新了我的请求结构。但是,在 VirtualBox 中,我发现在传输最后一个数据 block 后,我收到了另一个中断(状态 = 0x50,就绪,重叠模式服务器请求)。我可以简单地读取状态寄存器然后将其清除,但我认为根据规范我不应该收到第 5 个中断。
那么,什么是正确的方法来确认 ATA 设备发出的中断呢?
在这个例子中,我发出一个 READ MULTIPLE 命令,然后我的 ISR 执行以下操作:
最佳答案
这总是发生在我身上,我发布了一个我一直在努力解决的问题,但不久之后我自己找到了答案。
我一直引用的 ATA-6 规范在 PIO 数据输入部分(9.5)中有这一行:
When in this state, the host shall read the device Status register.
关于device-driver - 确认 ATA/IDE 中断的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487312/
有人知道我在哪里可以找到详细说明触发 TRIM 的协议(protocol)的 ATA 引用资料吗?我正在寻找我需要在原始 IOCTL 中发送什么样的结构/对象/数据才能让 ATA 设备触发 TRIM(
我想在 vc++ 中使用 ATA 命令读取磁盘的特定扇区(MBR 扇区)。我是 VC++ 的新手,所以在使用 DeviceIoControl 向磁盘发送命令时遇到问题。我提供了一个代码,我用它来使用命
我是做硬盘分析的,想知道windows下有没有直接控制ATA硬盘的方法。简而言之,我想做一些类似于数据包嗅探器的事情,但用于发送到硬盘驱动器/从硬盘驱动器发送的 ATA 命令。 在那之后,我希望能够直
已解决 在经历了很多困惑和挫折之后,我终于让我的硬盘中断了。 :D 这基本上归结为我一直在读取状态寄存器而不是 alternate 状态寄存器这一事实。其他一些东西在启动时搞砸了,但关键是我的硬盘驱动
同事们, 我正在实现对 ATA 可信命令的支持 0x5C, TRUSTED RECEIVE, 0x5D, TRUSTED RECEIVE DMA, 0x5E, TRUSTED SEND 0x5F, T
我可以使用我自己编写的驱动程序在 Windows 8 x64 下以 PIO 模式传输数据以访问 I/O 端口。即使我将目标硬盘的传输模式(使用 ATA 命令)设置为 PIO 4,(读取操作的)传输速度
我目前正在开发一个爱好操作系统,特别是 ATA 驱动程序。我在使用带有中断的 PIO 数据输入命令时遇到了一些问题。我正在尝试执行 READ MULTIPLE 命令以逐 block 读取驱动器中的多个
我已经阅读了一些关于 PCI 和 IDE/ATA 的文章,但我现在有点困惑。 PCI 类 0x01(大容量存储 Controller )包含一个 IDE (0x01) 和一个 ATA (0x05) 子
在 Anchor 测试中注意到此代码注释: ATA 代表什么?为什么它对于 DAO 控制的机构很重要? 最佳答案 ATA 是关联的 token 地址。 可以使用 findProgramAddress
在 Anchor 测试中注意到此代码注释: ATA 代表什么?为什么它对于 DAO 控制的机构很重要? 最佳答案 ATA 是关联的 token 地址。 可以使用 findProgramAddress
我正在尝试将 ATA 命令发送到 Windows 中的物理磁盘,并从设备获取响应。 Note: In this case I want to send the IDENTIFY DEVICE (0xE
我想将可信发送/可信接收发送到我的硬盘。我找到了这个页面: ATA Trusted commands in Linux .(谢谢你 ephemient 和 Dmitry Obukhov)。 目前,我的
看了很多书后,我才知道没有单一的计算 CRC 的方法。我需要专门为串行 ATA (SATA) 计算 CRC 的方法/算法/VHDL 代码 最佳答案 SATA 使用 IEEE 802.3 CRC。以下是
我想使用 libata 从用户空间应用程序向我的 HDD(它是一个 SATA 驱动器)发送 ATA 命令(最终,任何支持的 ATA 命令)(这是可能的,对吧?)。一开始我会很高兴的是执行 ATA 命令
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我的代码如下: unsigned char cmd[16]; cmd[0] = WRITE_16; //lba is start address cmd[2] = (lba >> 54) & 0xFF
在发送 ATA 命令期间,我发现了几个分类。例如,第一个 - 我们可以将命令分为数据输入、数据输出和非数据命令。另一种分类是有48位命令和28位命令。第一个是磁盘,大于 120Gb。 问题是:我是否需
我正在为 PXE 环境编译我自己的 Linux 内核和用户区工具,用于克隆和重新镜像。现在,我坚持使用特定的内核版本并使用预配置的 .config 来构建 Linux 内核。 我需要从使用预配置的 .
我想使用通过 DeviceIoControl() 发送的 ATA 命令读取大容量磁盘。使用 ATA_PASS_THROUGH_EX 结构发送命令是主要问题。实际上 CurrentTaskFile[]
我是一名优秀的程序员,十分优秀!