Lessico IT › Programmazione › Codice di avvio

Codice di avvio

Programmazione Svenska → Aggiornato: 2026-11-03

Il codice che gira tra il reset e main(), assicurando che le ipotesi del C sulla memoria siano davvero valide.

Il C promette che le variabili globali inizializzate contengano il loro valore iniziale e che tutto il resto parta da zero. Su un desktop se ne occupa il loader del sistema operativo. Su bare metal non lo fa nessuno, quindi deve provvedere il codice di avvio: copiare la sezione .data dalla flash alla RAM, azzerare .bss, configurare i clock, eseguire i costruttori C++ e infine chiamare main. Gli indirizzi derivano da simboli definiti nel linker script.

Il nome crt0, C runtime zero, viene da Unix. Sui Cortex-M il punto d'ingresso è Reset_Handler, individuato tramite la tabella dei vettori; lo stack pointer lo carica l'hardware, quindi tutto può essere scritto in C. I produttori lo forniscono di solito come file assembly che nessuno legge finché una variabile globale si rifiuta ostinatamente di mantenere il valore iniziale.

← Torna al lessico