Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

Конфигурация в памяти cmos

Как мы уже говорили, энергонезависимая память CMOS используется в современных компьютерах для хранения текущей конфигурации аппаратных средств. Эта память состоит из набора ячеек, доступ к которым для чтения и записи выполняется через порты ввода и вывода с адресами 70h и 71h.

Процедура чтения ячейки памяти CMOS состоит из двух шагов. На первом шаге программа записывает в выходной порт с адресом 70h номер ячейки, из которой необходимо прочитать информацию. На втором шаге программа читает содержимое данной ячейки из входного порта с адресом 71h:

int nCellContent;

outp(0x70, nCell);

nCellContent= inp(0x71);

Запись данных в ячейку памяти CMOS выполняется аналогично, только после записи номера ячейки в порт 70h программа должна записать новое значение для этой ячейки в порт с адресом 71h:

outp(0x70, nCell);

outp(0x71, nNewValue);

В памяти CMOS хранится текущее время и дата, сведения о конфигурации системы, результат тестирования при включении питания и другая информация, приведенная ниже:

Адрес ячейки

Содержимое

00h - 0Dh

Используются часами реального времени

0Eh

Байт состояния диагностики при включении питания

0Fh

Байт состояния отключения

10h

Тип НГМД

11h

Зарезервировано

12h

Тип НМД (если меньше 15)

13h

Зарезервировано

14h

Конфигурация оборудования

15h - 16h

Объем основной памяти

17h - 18h

Объем расширенной памяти

19h

Тип первого НМД (если он больше 15)

1Ah

Тип второго НМД (если он больше 15)

1Bh - 20h

Зарезервировано

21h - 2Dh

Зарезервировано

2Eh - 2Fh

Контрольная сумма ячеек 10h - 20h

30h - 31h

Объем расширенной памяти

32h

Текущее столетие в двоично-десятичном коде (19h для 19-го столетия)

33h

Различная информация

34h - 3Fh

Зарезервировано

Рассмотрим подробно назначение отдельных ячеек CMOS-памяти.

00H - 0Dh - область часов реального времени

Ячейки с адресами 00h - 0Dh используются часами реального времени. Часам реального времени будет посвящена отдельная глава, поэтому сейчас мы не станем останавливаться на этих ячейках.

0Eh - байт диагностики

Байт диагностики (расположенный в памяти CMOS по адресу 0Eh) содержит результаты выполнения диагностики при включении питания компьютера. Выполнив анализ содержимого байта 0Eh, программа может выявить неисправность НМД, часов реального времени, разрядку аккумулятора и ошибки в конфигурации. Приведем формат этого байта:

Бит

Описание

0-1

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

2

0 - неправильная установка часов реального времени;

1 -часы реального времени установлены правильно

3

0 - НМД исправен;

1 - неисправность НМД, невозможно загрузить операционную систему с жесткого диска

4

0 - размер оперативной памяти указан правильно;

1 - фактический размер оперативной памяти не соответствует указанному в памяти CMOS

5

0 - конфигурация указана правильно;

1 – ошибка в конфигурации системы, фактическая конфигурация не соответствует указанной в байте конфигурации оборудования (ячейка 14h)

6

0 - контрольная сумма памяти CMOS правильная;

1 - ошибка в контрольной сумме памяти CMOS

7

0 – аккумулятор, питающий память CMOS, исправен и заряжен;

1 - разрядка аккумулятора выше нормы

Соседние файлы в папке несколько программ