logo search
несколько программ / bsp33

Конфигурация в памяти 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-памяти.