Skip to main content
axis-allies-logo-color.png transformers gaming prangers-logo-color.png
global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot
global_init_slot
global_init_slot axis-allies-logo-color.png transformers gaming
prangers-logo-color.png my little pony logo
global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot
axis-allies-logo-color.png
transformers gaming
my little pony logo prangers-logo-color.png
global_init_slot
global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot
×

Renegade News

Choose Your Store Location!

global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot global_init_slot

Global_init_slot May 2026

GLOBAL_INIT_SLOT(clock_init, 001); GLOBAL_INIT_SLOT(gpio_init, 002);

// slot_def.h typedef void (*init_fn_t)(void); #define GLOBAL_INIT_SLOT(fn, priority) \ __attribute__((section(".init_slots." #priority))) \ const init_fn_t _slot_##fn = fn // peripherals.c void clock_init(void) ... void gpio_init(void) ... global_init_slot

Linker script collects all .init_slots.* into an array: // slot_def.h typedef void (*init_fn_t)(void)

.init_slots : __init_slots_start = .; KEEP(*(.init_slots.001)) KEEP(*(.init_slots.002)) /* higher priorities may be overridden by explicit ordering */ __init_slots_end = .; >FLASH Startup code: FLASH Startup code: