Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Коды ошибок и состояний из программ BIOS и регистров адаптеров внешних устройств ПК.

 Коды ошибок и состояний из программ BIOS и регистров адаптеров внешних устройств ПК.

Диагностическая информация может быть получена и в результате выполнения специально написанных простых программ тестирования. Коды ошибок, байты состояний, информация в регистрах ошибок и регистрах состояний - формируются аппаратурой контроллеров и являются информацией о конкретных состояниях и ошибках в аппаратуре контроллеров и внешних устройств. Это достоверная опорная информация для поиска ошибок в контроллерах, расположенных на системных платах и во внешних устройствах.

Кроме того, дополнительная уточняющая информация может быть получена и в результате использования специально написанных программ активизации сигналов, с проведением исследований электрической схемы с помощью осциллографа. Весьма достоверным источником уточняющей диагностической информации являются байты состояния, байты уточненного состояния, коды ошибок - информация из регистров ошибок и регистров состояний (рис.1). Эта диагностическая информация формируется схемами контроля адаптеров внешних устройств и программами BIOS, которые пишутся высококвалифицированными специалистами.

 

Рис. 1. Регистры контроллера HDD (пример). Регистр ошибок 1F1H и регистр состояния 1F7H.

Для получения такой информации, как: коды ошибок устройств, формируемые программами-функциями BIOS; байты состояния устройства, формируемые аппаратурой контроллеров; содержимое регистра ошибок или регистра состояния контроллера обычно, достаточно однократного выполнения в отладчике (например, AFD) небольшой специальной программы, запускающей контролируемый процесс в устройстве. Это возможно, если процессор работает в режиме реального адреса. В защищенном режиме обращение к регистрам контроллеров из программы пользователя невозможно (мы знаем, что команды IN и OUT запрещены в пользовательских программах). Затем с помощью AFD прочитать регистры ошибок и состояний внешнего устройств, коды ошибок в регистре АН и AL микропроцессора. После анализа полученной диагностической информации можно приступать к планированию дальнейших действий по локализации неисправности.

С помощью простых специальных программ обычную системную плату можно превратить в универсальный стенд для диагностирования и ремонта большинства узлов и устройств компьютера. Умение программировать дает возможность создавать «инструментальные» программные средства, заменяющие дорогие аппаратные тестеры, используемые для контроля и диагностики устройств. Стоимость аппаратных тестеров достаточно высока, а их номенклатура невелика. Модификация и их приспособление к конкретному устройству - это сложное и дорогостоящее удовольствие. Разработанные «инструментальные» программные средства, в отличие от аппаратных тестеров, легко модифицируются и приспосабливаются для работы с любым устройством. Программным путем можно задать в устройстве любой необходимый для контроля режим работы, удобно и эффективно осуществлять контроль процессов осциллографом.

Написание специальных программ обычно осуществляют на ассемблере. Для упрощения процесса создания программ, в составе этих программ используют стандартные программы-функции BIOS. Лучший эффект дает использование стандартных программ-функций BIOS. Программы BIOS являются низшим (физическим) уровнем стандартного ввода/вывода операционной системы. Программы «прошиты» в постоянном запоминающем устройстве ПЗУ BIOS и реализуют при своем выполнении функции управления внешними устройствами на физическом уровне. Ввод-вывод на физическом уровне осуществляется на уровне команд контроллеров внешних устройств, их программно-доступных регистров (с реализацией всех необходимых задержек и особенностей управления устройством). Программы BIOS подробно описаны (как говорят, хорошо документированы). По ним изданы справочники в печатном и электронном виде. Набор программы, ее отладку и запуск программы на выполнение, удобно осуществлять с помощью простых специальных программ типа профотладчиков Debug, AFD и др.. Программы-профотладчики предназначены для использования в работе специалистами по ремонту и диагностированию персональных компьютеров. С точки зрения программистов, они обладают скромными функциональными возможностями, но для написания и выполнения небольших специальных программ, чтения регистров контроллеров и процессора их возможностей вполне достаточно.

Например, программа BIOS INT 13h, функция 02h (Чтение сектора) читает один или группу секторов с физического диска в память. При нормальном завершении записывает в разряд регистра флагов процессора CF=0, в регистр АН=0, а в регистр АL=число переданных секторов.

При ошибке: в CF=1, АН= код состояния (или ошибки):

00h - отсутствие ошибки

0lh - неправильная команда

02h - не найдена адресная метка

03h - дискета защищена от записи

04h - сектор не найден

05h - сброс жесткого диска не прошел

0бh дискета вынута

07h - неправильная таблица параметров жесткого диска

0Ch - не найден тип носителя данных

0Dh - неправильное число секторов в формате на жестком диске

10h - невосстановимая ошибка данных

11h - восстановленная ошибка данных на жестком диске

20h - неисправность контроллера

40h - ошибка позиционирования

80h - тайм-аут диска

AAh - жесткий диск не готов

BBh - неизвестная ошибка жесткого диска

CCh - Ошибка при записи

E0h - Ошибка регистра состояния.

Программы BIOS дополнительных дисковых функций имеют номера 41h-49h и 4Eh. Дополнительные функции условно разделены на три подгруппы:

• функции для доступа к диску;

• функции для блокировки доступа и смены носителей;

• функции внутреннего назначения.

Функции первой группы применяются при работе с дисками всех типов, функции второй группы — при работе со сменными носителями информации, функции третьей группы используются для внутренних нужд BIOS.

В группу функций доступа к диску входят:

• функция 41h — проверка наличия поддержки дополнительных функций;

• функция 42h — расширенное чтение;

• функция 43h — расширенная запись;

• функция 44h — верификация секторов;

• функция 47h — расширенный поиск;

• функция 48h — чтение параметров диска.

Например, прерывание Int 13h, функция 42h: расширенное чтение (рис.2). Эта функция осуществляет передачу секторов с заданной области диска в буфер памяти.

Перед вызовом прерывания требуется записать в регистры следующие значения:

• в АН — значение 42h;

• в DL — номер дисковода;

• в DS: SI — адрес пакета дискового адреса (в котором указаны параметры обмена).

После завершения операции функция возвращает в регистре АН состояние дисковой системы. В случае аварийного завершения выполнения функции поле счетчика блоков в пакете дискового адреса содержит число блоков, которые были успешно прочитаны (прочитаны до того, как произошла ошибка).

После выполнения функции в регистре АН выдается код состояния (статус возврата). Кроме принятого для классических функций BIOS стандартного набора кодов возврата, для дополнительных функций введено еще несколько кодов, перечисленных в табл. 1.

Таблица 1.

Код

Состояние дисковода

 

B0h

Том не заперт

B1h

Том заперт в дисководе

B2h

Том является неперемещаемым

B3h

Том используется

B4h

Счетчик запирания переполнен

B5h

Команда извлечения носителя не выполнена

B6h

Носитель присутствует, но защищен от записи

 

Рис. 2.


Лицензия