// peripherals.c void clock_init(void) ... void gpio_init(void) ...

ldr r0, =__init_slots_start ldr r1, =__init_slots_end bl call_init_slots ; loops through [r0, r1) calling each function pointer

Consider a bare‑metal ARM Cortex‑M project:

Global_init_slot

// peripherals.c void clock_init(void) ... void gpio_init(void) ...

ldr r0, =__init_slots_start ldr r1, =__init_slots_end bl call_init_slots ; loops through [r0, r1) calling each function pointer global_init_slot

Consider a bare‑metal ARM Cortex‑M project: // peripherals