IT-словарь › Программирование › Стартовый код

Стартовый код

Программирование Svenska → Обновлено: 2026-11-03

Код, выполняющийся между сбросом и main() и следящий, чтобы предположения языка Си о памяти действительно выполнялись.

Си обещает, что инициализированные глобальные переменные содержат начальные значения, а все остальные начинаются с нуля. На настольном компьютере это обеспечивает загрузчик ОС. На голом железе этого не делает никто, поэтому стартовый код должен сам: скопировать секцию .data из флеш-памяти в ОЗУ, обнулить .bss, настроить тактирование, выполнить конструкторы C++ и наконец вызвать main. Адреса берутся из символов, заданных в скрипте компоновщика.

Имя crt0, C runtime zero, пришло из Unix. На Cortex-M точка входа — Reset_Handler, найденный через таблицу векторов; указатель стека аппаратура загружает сама, так что всё можно написать на Си. Обычно производители поставляют его как ассемблерный файл, который никто не читает, пока глобальная переменная упорно не отказывается хранить начальное значение.

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