IT-словарь › Оборудование › Noinit RAM

Noinit RAM

Оборудование Svenska → Обновлено: 2026-11-04

Область ОЗУ, которую стартовый код намеренно не трогает, так что её содержимое переживает программный сброс.

Стартовый код при каждом сбросе обнуляет .bss и заполняет .data. Обычно это именно то, что нужно, но заодно стирается всё, что могло бы объяснить причину сброса. Если поместить переменные в отдельную секцию — с пометкой NOLOAD в скрипте компоновщика и атрибутом __attribute__((section(".noinit"))) — они переживут сброс по watchdog, программный сброс и переход в загрузчик.

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

← Назад к словарю