精華區beta ASM 關於我們 聯絡資訊
※ 引述《CuckooBoy (阿書)》之銘言: : 有沒有人懂ATA COMMAND : 我手上有COMMAND表 : 但是不知道怎麼傳這些COMMAND : 有沒有人寫過類似的程式 : 可以舉個例子…嗎? : 譬如20H的 READ SECTOR 1.請先找出 ATA device 的 address. 在 IDE controller 的 PCI configuration Space 某個 Offset 有儲存 address. 傳統的 IDE mode 是以 I/O port 的方式來存取 ATA Device. AHCI mode 和 RAID mode 是以 memory address 來存取. 但是, 有向前相容之前的 ATAPI command. 2.假設某個 Primary IDE Controller 的 I/O address 是 1F0h. 則對照你手邊的 Command 表, 每個 Register 的 address 如下. 都是以 Byte 為單位存取. 1F0 (Read and Write): Data Register 1F1 (Read): Error Register 1F1 (Write): Features Register 1F2 (Read and Write): Sector Count Register 1F3 (Read and Write): LBA Low Register 1F4 (Read and Write): LBA Mid Register 1F5 (Read and Write): LBA High Register 1F6 (Read and Write): Drive/Head Register 1F7 (Read): Status Register 1F7 (Write): Command Register 3F6 (Read): Alternate Status Register 3F6 (Write): Device Control Register Status register (1F7h) 所讀出來的 1-Byte value, 每個 Bit 所代表的意義由 左至右分別: BIT7: BSY (busy) BIT6: DRDY (device ready) BIT5: DF (Device Fault) BIT4: DSC (seek complete) BIT3: DRQ (Data Transfer Requested) BIT2: CORR (data corrected) BIT1: IDX (index mark) BIT0: ERR (error) Error register 和其他 register 依此類推. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.195.232
loveflames:請問這個應該收在哪個分類? 05/19 04:23
zhim:bios 吧 05/19 05:53
mapleV:實用的指南 THX 05/19 11:53