Léxico TI › Programación › Código de arranque

Código de arranque

Programación Svenska → Actualizado: 2026-11-03

El código que corre entre el reset y main() y garantiza que las suposiciones de C sobre la memoria se cumplan de verdad.

C promete que las variables globales inicializadas tienen su valor inicial y que todas las demás empiezan en cero. En un PC, eso lo resuelve el cargador del sistema operativo. En bare metal no lo hace nadie, así que el código de arranque debe copiar la sección .data de la flash a la RAM, poner a cero .bss, configurar los relojes, ejecutar los constructores de C++ y por fin llamar a main. Las direcciones salen de símbolos definidos en el script de enlazado.

El nombre crt0, C runtime zero, viene de Unix. En Cortex-M el punto de entrada es Reset_Handler, señalado por la tabla de vectores; el hardware carga solo el puntero de pila, de modo que todo puede escribirse en C. Los fabricantes suelen entregarlo como un archivo en ensamblador que nadie lee hasta que una variable global se niega obstinadamente a tener su valor inicial.

← Volver al léxico