Программирование CMOS
Так сказать ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Вся информация, представленная в этой статье, предназначена только для ознакомительных целей. Автор не несет ответственности за некорректное использование приведенных ниже данных.
ВВЕДЕНИЕ
В эпоху интенсивного развития высоких технологий и интернет-технологий программирование для . Между тем практически невозможно сделать что-либо стоящее без правильной аппаратной настройки, особенно CMOS — энергонезависимой памяти компьютера. В этой статье мы рассмотрим устройство CMOS, его устройство и возможности программирования. Сразу сделаю оговорку, что программировать CMOS желательно из реального режима операционной системы; под Windows это делается с помощью специальных драйверов VxD или SYS. Источников документации по построению таких в сети достаточно, поэтому я не буду на них останавливаться. Естественно, все описанные ниже действия по записи значений в CMOS следует выполнять с максимальной осторожностью; иногда (!) вы можете потерять почти все настройки вашего компьютера. В этом случае вам необходимо очистить CMOS; как это сделать: проверьте документацию вашей материнской платы. Я также буду использовать язык символических инструкций для иллюстрации конкретных примеров, а также широко используемый отладчик DEBUG.EXE, который входит почти во все версии Windows/DOS.
CMOS DATA
CMOS — это что-то вроде базы данных, предназначенной для хранения информации о конфигурации ПК. Однако, в отличие от реальной базы данных, которая имеет фактическое изображение на магнитном носителе, CMOS хранит свои данные на микросхеме с очень высокой степенью чтения/записи. Программа установки BIOS SETUP сохраняет информацию о вашей системе при записи, которую затем считывает (при запуске компьютера). Каждая ячейка имеет размер 1 байт.
Таблица данных выглядит так
Адрес | Пункт назначения |
00H-0DH | RTC (часы реального времени) |
0EH | Байт состояния процедуры POST (результат загрузки компьютера) |
0FH | Байт выключения компьютера |
10H | Тип привода |
11H | Зарезервировано |
12H | Тип(ы) жестких дисков (если значение равно 15) |
1AH | Тип жесткого диска D: (если значение> 15) |
1BH-20H | Зарезервировано |
21H-2DH | Зарезервировано |
2EH-2FH | Контрольная сумма CMOS (от 10H до 20H) |
30H-31H | размер m памяти расширен до предела t 1 МБ |
32I | Номер текущего века в двоично-десятичном формате (например, 17Н) |
33Н | Дополнительная информация |
34Н-3АН | Зарезервировано |
Некоторые адреса CMOS защищены контрольной суммой. Это означает, что запись в диапазон адресов 10H-20H должна сопровождаться установив значения в ячейках 2EN-2FH. В противном случае вы можете увидеть сообщение о неправильной настройке или батарее CMOS. Контрольная сумма представляет собой 16-битную сумму всех значений, записанных в ячейки CMOS с 10H по 20H. Старший байт суммы записывается в ячейку 2EN, а младший байт записывается в 2FH. В любом случае, советую сначала сохранить предыдущее значение CMOS (да и вообще все значения CMOS), а затем просто вычесть или добавить нужные значения с полученной контрольной суммой. Это проще.
ЧТЕНИЕ И ЗАПИСЬ CMOS
Вы прочитали: Чтобы прочитать значение из ячейки, запишите значение в порт 70H, адрес интересующей ячейки, а затем прочитайте значение из порта 71H, это будет значение, которое вас интересует. Например, получить текущий номер века (MS Debug):
Века нумеруются с 00H (так сказать), поэтому 20H вполне подходит.
Write: записать значение в адрес записи CMOS значение на порт 70H, а затем новое значение на порт 71H. Например, возьмем новое значение века (J, так сказать):
Теперь, чтобы вернуть все как было, ставим значение 32H в порт 70H и 20H в порт 71H:
Не смущайтесь отсутствием символа «H» после цифр: все значения в MS Debug только в шестнадцатеричном формате.
ДЕТАЛИЗАЦИЯ АДРЕСА CMOS
Итак, давайте подробнее рассмотрим значения, хранящиеся в CMOS.
Адрес (HEX) | Описание |
00H | Текущая секунда |
01H | Второй сигнал |
02H | Текущие минуты |
03H | Минуты сигнала |
04H | Текущее время |
05H | Время сигнала |
06H | Текущий день недели до (1 — воскресенье ) |
07H | Текущий день месяца |
08H | Текущий месяц |
09Н | Текущий год (только последние 2 цифры, например, 98 ) |
Все значения RTC хранятся в формате BCD как 2 бита, но в десятичном формате. Например, 31 (dec) хранится как 31 (hex).
Адрес (HEX) | Описание |
0AH | Регистр состояния RTC (#A): Биты 0-3 — Селектор уровня ( установить на 0110) Биты 4-6 — 22 уровня делителя (установить на 010) Бит 7 — Текущее обновление (если == 0, то чтение разрешено) |
0BH | Регистр состояния RTC (#B): Бит 0 — Сохранить разрешенное время (лето); (0 = стандартное время; по умолчанию = 0) Бит 1 — 12- или 24-часовой режим времени (если 0, то 12 часов; по умолчанию = 1) Бит 2 — BCD режим Дата ( 1 =двоичный, 0=BCD, def=0) Бит 3 — Включение прямоугольной волны (1=включено; по умолчанию = 0) Бит 4 — Включить прерывание обновления (0=отключено, по умолчанию = 0) Бит 5 — Включить прерывание сигнала (0=отключено, по умолчанию = 0) Бит 6 — Включить периодическое прерывание (0=отключено, по умолчанию = 0) Бит 7 — Флаг UIP (выполняется обновление), 0 — Чтение CMOS |
0CH | Регистр состояния RTC (#C): в основном не используется |
0DH | Состояние RTC Регистр (#D): Если бит 7=1, питание CMOS включено, если бит 7=0, батарея разряжена. |
0EH | Байт диагностики загрузки (байт POST): Биты 0 и 1 всегда равны 0. Бит 2 — Время правильное (1 = верно, что сегодня не 30 февраля) Бит 3 — Неверный загрузочный жесткий диск (1 = невозможно загрузиться с жесткого диска) Бит 4 — Ошибка размера ОЗУ ( 1 = POST обнаружил неверный размер ОЗУ) Бит 5 — Неверный аппаратный ввод (1=Неверное оборудование) Бит 6 — Неверная контрольная сумма ( 1=Неверная контрольная сумма CMOS) Бит 7 — Отказ батареи CMOS (1=потеря питания) |
0FH | Байт состояния выключения компьютера. Чаще всего используется после перезагрузки ПК с помощью процедуры SETUP. Значения могут быть следующими: 0 если произошла перезагрузка. нажатием Ctrl-Alt-Del или неожиданной перезагрузкой. В любом случае процедура POST НЕ ВЫПОЛНЯЕТСЯ 1 перезапуск после определения объема памяти 2 перезапуск после проверки памяти 3 перезапуск после обнаружения ошибки памяти 4 перезагрузка из-за запроса загрузчика ОС 5 перезагрузка из-за дальнего перехода (FAR JMP) по адресу 0:0467H 6,7,8 перезагрузка после режима проверки безопасности 80286 9 перезапуск после перераспределения блока памяти (функция 0x87 прерывание 0x15) |
10H | Блок записи байтов: Биты 0-3: первая единица Биты 4 — 7: вторая единица В любое время в этом случае значения битов могут быть: 0000 = 0 = устройство не установлено 0001 = 1 = 360 КБ 0010 = 2 = 1,2 МБ 0011 = 3 = 720 КБ 0100 = 4 = 1,44 МБ Например: 24H — это диск A: размер 1,2M и диск B: размер 1,44M |
11Ч | ЗАПАСНОЙ |
12H | Тип жесткого диска (для дисков C: и D: когда байт в диапазон от 1 до 14). Биты 0-3: первый жесткий диск Биты 4 — 7: второй жесткий диск В любом случае значения битов могут быть следующими: 0000 = 0 = диск не сконфигурирован other_value = тип диска 1111 = см. адреса 19H и 1AH |
13H | ЗАПАС |
14 ч | Аппаратный байт: Бит 0 = 1 , если присутствуют единицы измерения Бит 1 = 1 , если присутствуют математические функции. сопроцессор Биты 2, 3 не используются и равны 0 Биты 5, 4 — основной графический адаптер: 00 — нет или EGA 01 — 40*25 EGA, CGA, VGA 10 — 80 * 25 EGA, CGA, VGA 11 — монохромный (ч/б) Биты 6, 7 — количество блоков — 1 (00=1, 01=2, 10=3, 11=4) |
15H, 16H | Базовая память 15H — младший байт 16H — старший байт Может быть равен: 0100H = 256K 0200H = 512K 0280H = 640K |
17H, 18H | Дополнительная память больше 1 МБ 17 N — младший байт 18 N — старший байт Размер в КБ. |
19H | Тип диска #0 (C:), если значение адреса (12H и 0FH ) = 0FH |
20H | Тип диска #1 (D:), если значение адреса (12H и F0H) = F0H |
1BH-2DH | РЕЗЕРВИРОВАНИЕ |
2EH, 2 FH | Контрольная сумма значений адреса от 10H до 20H 2EH — старший байт 2FH — младший байт |
30H-31H | РЕЗЕРВИРОВАНИЕ |
32H | Век в BCD |
33H | Другая информация (специфично для машин класса АТ/ПС-2) |
34H -3FH | БРОНИРОВАНИЕ Как показывает практика, эта область обычно не имеет системных данных (но не всегда!), , чтобы можно было писать сюда свои личные данные (но не много J ) и сохранять их между перезагрузками) |
Включено Они так считали КМОП, ее структуру и логическую структуру. Конечно, в таблице указаны только значения параметров CMOS, общие для всех машин, но все же, даже с этим «набором» можно сделать много «вещей», например, подключить отключенную администратором дискету (см. адреса 14H, 10H, 2EH, 2AP) и т. д. d. В любом случае: будьте очень осторожны, не делайте ничего, что потом нельзя будет отменить. Тем не менее, я надеюсь, что вы найдете эту статью полезной.
Источник
BIOS Vs. CMOS, связь и различия
Сегодня трудно не слышать такие термины, как BIOS или CMOS, но на самом деле только те, кто в них разбирается, могут правильно их определить и, прежде всего, знают и понимают их различия. И это то, что, хотя многие в это не верят, они не совпадают, у них есть особая связь и, прежде всего, различия. Поэтому сегодня мы закончим споры и споры, объяснив все различия и сходства между BIOS и BIOS. КМОП.
Первое, что нужно понять, это то, что BIOS и CMOS, очевидно, не одно и то же, но они идут рука об руку, и одно невозможно понять без другого. Итак, чтобы узнать об их различиях, мы должны сначала понять их значение и функции, которые они выполняют.
BIOS Vs. CMOS, подключение и отличия
При этом БИОС является логической частью ПК, т.е. программой, отвечающей за корректный запуск ПК. Его аббревиатура происходит от Basic Система ввода-вывода или базовая система ввода-вывода, и это не что иное, как прошивка, очень компактное и базовое программное обеспечение, которое устанавливается в память ПЗУ.
Эта память представляет собой микросхему, которая питается от внешнего источника для собственный источник ПК, такой как батарея, которая, с другой стороны, является наиболее распространенной системой в отрасли.
Этот чип необходим для того, чтобы вы не потеряли содержащиеся в нем программные настройки, такие как параметры загрузки жестких дисков, параметры ОЗУ, параметры, выбранные при загрузке системы, или все, что можно включить или отключить в самом BIOS. Еще один ключевой момент, который часто упускается из виду, заключается в том, что именно в этом стеке хранятся системное время и дата, поэтому, если у нас нет параметров в Windows для автоматической синхронизации этих двух параметров, будут те, которые относятся к самому BIOS.
Таким образом, эта батарея является основной частью работы, которую мы будем выполнять в BIOS, где, в зависимости от модели и емкости, которые вы покупаете, она обычно служит в среднем до 10 лет без необходимости замены.
КМОП — это физическая часть уравнения
Этот чип, о котором мы говорили, представляет собой не что иное, как КМОП-систему, в которой полупроводник на основе оксида металла формуется и изготавливается в виде чипа. , единственная цель которого — хранить BIOS, его настройки, обновления и возможные неисправности.
Таким образом, BIOS и CMOS являются частью одного целого, материнской платы и системы. Первая — логическая часть, вторая — физическая, и очевидно, что они не могут жить друг без друга. Есть еще несколько странностей, поскольку КМОП получила свое название от технологии производства самого чипа, что является неправильным.
КМОП — это технология производства интегральных схем, где, например, размещаются процессоры, поэтому мы говорим КМОП вместо процессора. Правильное название микросхем, на которых находится BIOS, — EEPROM , которая логически создается CMOS.
Таким образом, EEPROM — это тип стираемой программируемой микросхемы чтения/записи. перезаписать данные, если это разрешено системой. Это очень полезно на материнских платах, если в BIOS есть повреждения, и нам нужно перезаписать его. Ранее это было невозможно из-за самой материнской платы, и для правильной модернизации чипа требовался программатор EEPROM.
CMOS vs. EEPROM, откуда такая путаница?
Поэтому так называемую «пустую CMOS» надо называть «пустой EEPROM» абсолютно правильно и точно, уж точно гораздо удачнее. Понимая различия, мы уже можем различать, что хорошо, а что нет. Другой пример — это именно настройки CMOS, когда мы на самом деле имеем в виду настройки UEFI.
Его также нельзя произносить как настройку BIOS, в основном потому, что на материнских платах уже 10 лет нет BIOS, а есть UEFI как таковой. Интересно, что хотя CMOS EEPROM становится больше, реальность такова, что UEFI или BIOS, если возникнет такая ситуация, останутся только в первом МБ, потому что проверено, что он весит как можно меньше, но с добавлением максимальное количество инструкций .
Среди прочего, EEPROM хранит совместимое оборудование, которое необходимо распознать, оно обычно имеет микрокоды от производителя процессора для данной платформы, а также распознает, например, твердотельные накопители, графические карты и т. д. устройства, с которыми вы можете напрямую обмениваться SKU или идентификаторами.
Видео-гайд: Cmos драйвер что это
Обычно в этих случаях все эти устройства Plug and Play , поэтому нет необходимости настраивать EEPROM и BIOS/UEFI, просто проверьте что CPU, RAM и GPU/GPU совместимы с зарегистрированными SKU. в их микрокодах. В противном случае материнская плата не включится, и у нас будет красивый черный экран.
Это часто происходит с несколькими семействами процессоров для одного и того же сокета. Обновление UEFI имеет решающее значение, если мы хотим, чтобы процессор распознал его. Это гораздо более необычно для графических карт, но также бывают случаи проблем из-за невозможности прочитать SKU или идентификатор модели и даже требуется разрешение CSM для доступа к Windows.
В общем, мы говорим о целом, где одни являются физическими частями, а другие логическими, но само собой разумеется, что они даже отдаленно не одинаковы, и все же многие все еще сбиты с толку самим фактом существования людей. кто говорит BIOS вместо UEFI или даже CMOS вместо EEPROM. Так что теперь мы можем правильно называть каждый из них, не путаясь.
Источник