Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

АТА/pi-команда диагностики уст-ва.

2.2K
26 октября 2002 года
kar
7 / / 26.10.2002
(пргораммирование д.подсистем/Кулаков)
EXECUTE DEVICE DIAGNOSTIC - произвести диагностику устройства
'В процессе выполнения операции подключенные к каналу устройства поочередно выдают хосту информацию о результатах самодиагностики'
(вобщем команда пихает различные значения в АТА-регистры)

вопросы:
1.как отловить моменты между этими передачами чтобы прочесть инфу о каждом утройстве ??
2.почему в диагностических кодах (записываемых в регистр ошибки ER) нет кода отсутствия устройсва 0 (лишь только исправно/неисправно)
3.что будет если записать значение в регистр команд отсутствующего уст-ва?
---------
и еще раз о первом воросе ;)
меня интересует как считывается инфа с регистров кажого устройства (после команды Диагностики)
Команда EDD не выводит пакеты по 512байт..она пихает значение в ряд АТА-регистров(ERR,SC,SN и тд)... [после диагностики каждого устройства]
И если все утройства поочередно проводят диагностику (выводят значения в выше упом. регистры)то как же мне поймать информацию от Каждого устройства???
461
29 октября 2002 года
gerard
102 / / 20.12.1999
1. Не совсем понятно, в чем проблема. К одному каналу интерфейса IDE можно подключить не более двух устройств. Команда EDD выдает информацию сразу по обоим устройствам (см. диагностический код). Кстати, это практически единственная такая команда, все остальные обращаются к одному из двух устройств, номер которого задается в бите 4 регистра DH (0 - master, 1 - slave). Если у вас больше двух устройств, то остальные подключаются к другому каналу, у которого свои регистры (если для primary это 1F0 - 1F7, 3F6, 3F7, то для secondary 170 - 177, 376, 377 соответственно, если есть третий и четвертый каналы, то у них свои адреса), и вся информация идет через них.

2. Видимо, предполагается, что хотя бы одно устройство подключено. Можно предположить, что при полном отсутствии подключенных устройств все команды будут выдавать ошибку типа "отсутствует сменный носитель" или еще какую-нибудь - надо просто поэкспериментировать и посмотреть, что будет в такой ситуации в регистре ошибок, будет ли 1 в каком-нибудь бите или нет.

3. Исходя из вышесказанного, посылка команды несуществующему устройству также должна вызывать какое-нибудь из сообщений об ошибке. Его можно определить аналогично - поэкспериментировав.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог