Leksykon IT › Programowanie › Kod startowy

Kod startowy

Programowanie Svenska → Zaktualizowano: 2026-11-03

Kod wykonywany między resetem a main(), który dba o to, by założenia C dotyczące pamięci faktycznie były prawdziwe.

C obiecuje, że zainicjowane zmienne globalne mają swoje wartości początkowe, a cała reszta zaczyna od zera. Na komputerze stacjonarnym zapewnia to loader systemu. Na bare metal nikt tego nie robi, więc musi to zrobić kod startowy: skopiować sekcję .data z flash do RAM, wyzerować .bss, skonfigurować zegary, uruchomić konstruktory C++ i wreszcie wywołać main. Adresy pochodzą z symboli zdefiniowanych w skrypcie linkera.

Nazwa crt0, C runtime zero, wywodzi się z Uniksa. W Cortex-M punktem wejścia jest Reset_Handler, odnajdywany przez tablicę wektorów; sprzęt sam ładuje wskaźnik stosu, więc całość można napisać w C. Producenci zwykle dostarczają ją jako plik asemblerowy, którego nikt nie czyta, dopóki jakaś zmienna globalna uparcie nie chce trzymać wartości początkowej.

← Wróć do leksykonu