7#ifndef _PICO_RUNTIME_INITS_H
8#define _PICO_RUNTIME_INITS_H
54#define PICO_RUNTIME_INIT_EARLIEST "00001"
62#ifndef PICO_RUNTIME_INIT_BOOTROM_RESET
63#define PICO_RUNTIME_INIT_BOOTROM_RESET "00050"
66#ifndef PICO_RUNTIME_SKIP_INIT_BOOTROM_RESET
67#if PICO_RP2040 || (!LIB_PICO_MULTICORE && PICO_NO_FLASH)
68#define PICO_RUNTIME_SKIP_INIT_BOOTROM_RESET 1
72#ifndef PICO_RUNTIME_NO_INIT_BOOTROM_RESET
73#if PICO_RP2040 || (!LIB_PICO_MULTICORE && PICO_NO_FLASH)
74#define PICO_RUNTIME_NO_INIT_BOOTROM_RESET 1
79void runtime_init_bootrom_reset(
void);
85#ifndef PICO_RUNTIME_INIT_PER_CORE_BOOTROM_RESET
86#define PICO_RUNTIME_INIT_PER_CORE_BOOTROM_RESET "00051"
91#ifndef PICO_RUNTIME_SKIP_INIT_PER_CORE_BOOTROM_RESET
93#define PICO_RUNTIME_SKIP_INIT_PER_CORE_BOOTROM_RESET 1
97#ifndef PICO_RUNTIME_NO_INIT_PER_CORE_BOOTROM_RESET
99#define PICO_RUNTIME_NO_INIT_PER_CORE_BOOTROM_RESET 1
104void runtime_init_per_core_bootrom_reset(
void);
113#ifndef PICO_RUNTIME_INIT_PER_CORE_H3_IRQ_REGISTERS
114#define PICO_RUNTIME_INIT_PER_CORE_H3_IRQ_REGISTERS "00060"
117#ifndef PICO_RUNTIME_SKIP_INIT_PER_CORE_H3_IRQ_REGISTERS
119#define PICO_RUNTIME_SKIP_INIT_PER_CORE_H3_IRQ_REGISTERS 1
126#ifndef PICO_RUNTIME_INIT_EARLY_RESETS
127#define PICO_RUNTIME_INIT_EARLY_RESETS "00100"
132#ifndef PICO_RUNTIME_SKIP_INIT_EARLY_RESETS
133#define PICO_RUNTIME_SKIP_INIT_EARLY_RESETS 0
136#ifndef PICO_RUNTIME_NO_INIT_EARLY_RESETS
137#define PICO_RUNTIME_NO_INIT_EARLY_RESETS 0
141void runtime_init_early_resets(
void);
150#ifndef PICO_RUNTIME_INIT_USB_POWER_DOWN
151#define PICO_RUNTIME_INIT_USB_POWER_DOWN "00101"
154#ifndef PICO_RUNTIME_SKIP_INIT_USB_POWER_DOWN
155#define PICO_RUNTIME_SKIP_INIT_USB_POWER_DOWN 0
158#ifndef PICO_RUNTIME_NO_INIT_USB_POWER_DOWN
159#define PICO_RUNTIME_NO_INIT_USB_POWER_DOWN 0
163void runtime_init_usb_power_down(
void);
173#ifndef PICO_RUNTIME_INIT_PER_CORE_ENABLE_COPROCESSORS
174#define PICO_RUNTIME_INIT_PER_CORE_ENABLE_COPROCESSORS "00200"
177#ifndef PICO_RUNTIME_SKIP_INIT_PER_CORE_ENABLE_COPROCESSORS
178#if PICO_RP2040 || defined(__riscv)
179#define PICO_RUNTIME_SKIP_INIT_PER_CORE_ENABLE_COPROCESSORS 1
183#ifndef PICO_RUNTIME_NO_INIT_PER_CORE_ENABLE_COPROCESSORS
184#if PICO_RP2040 || defined(__riscv)
185#define PICO_RUNTIME_NO_INIT_PER_CORE_ENABLE_COPROCESSORS 1
190void runtime_init_per_core_enable_coprocessors(
void);
194#ifndef PICO_RUNTIME_INIT_AEABI_MEM_OPS
196#define PICO_RUNTIME_INIT_AEABI_MEM_OPS "00300"
200#ifndef PICO_RUNTIME_INIT_AEABI_BIT_OPS
201#define PICO_RUNTIME_INIT_AEABI_BIT_OPS "00275"
205#ifndef PICO_RUNTIME_INIT_AEABI_FLOAT
206#define PICO_RUNTIME_INIT_AEABI_FLOAT "00350"
210#ifndef PICO_RUNTIME_INIT_AEABI_DOUBLE
211#define PICO_RUNTIME_INIT_AEABI_DOUBLE "00350"
220#ifndef PICO_RUNTIME_INIT_CLOCKS
222#define PICO_RUNTIME_INIT_CLOCKS "00500"
225#ifndef PICO_RUNTIME_SKIP_INIT_CLOCKS
226#define PICO_RUNTIME_SKIP_INIT_CLOCKS 0
229#ifndef PICO_RUNTIME_NO_INIT_CLOCKS
230#define PICO_RUNTIME_NO_INIT_CLOCKS 0
249#ifndef PICO_RUNTIME_INIT_POST_CLOCK_RESETS
250#define PICO_RUNTIME_INIT_POST_CLOCK_RESETS "00600"
255void runtime_init_post_clock_resets(
void);
265#ifndef PICO_RUNTIME_INIT_RP2040_GPIO_IE_DISABLE
266#define PICO_RUNTIME_INIT_RP2040_GPIO_IE_DISABLE "00700"
269#ifndef PICO_RUNTIME_SKIP_INIT_RP2040_GPIO_IE_DISABLE
270#if !PICO_RP2040 || PICO_IE_26_29_UNCHANGED_ON_RESET
271#define PICO_RUNTIME_SKIP_INIT_RP2040_GPIO_IE_DISABLE 1
274#ifndef PICO_RUNTIME_NO_INIT_RP2040_GPIO_IE_DISABLE
276#define PICO_RUNTIME_NO_INIT_RP2040_GPIO_IE_DISABLE 1
281void runtime_init_rp2040_gpio_ie_disable(
void);
291#ifndef PICO_RUNTIME_INIT_SPIN_LOCKS_RESET
293#define PICO_RUNTIME_INIT_SPIN_LOCKS_RESET "01000"
296#ifndef PICO_RUNTIME_SKIP_INIT_SPIN_LOCKS_RESET
297#define PICO_RUNTIME_SKIP_INIT_SPIN_LOCKS_RESET 0
300#ifndef PICO_RUNTIME_NO_INIT_SPIN_LOCKS_RESET
301#define PICO_RUNTIME_NO_INIT_SPIN_LOCKS_RESET 0
305void runtime_init_spin_locks_reset(
void);
314#ifndef PICO_RUNTIME_INIT_BOOT_LOCKS_RESET
316#define PICO_RUNTIME_INIT_BOOT_LOCKS_RESET "01000"
319#ifndef PICO_RUNTIME_SKIP_INIT_BOOT_LOCKS_RESET
320#define PICO_RUNTIME_SKIP_INIT_BOOT_LOCKS_RESET 0
323void runtime_init_boot_locks_reset(
void);
330#ifndef PICO_RUNTIME_INIT_BOOTROM_LOCKING_ENABLE
332#define PICO_RUNTIME_INIT_BOOTROM_LOCKING_ENABLE "01010"
335#ifndef PICO_RUNTIME_SKIP_INIT_BOOTROM_LOCKING_ENABLE
336#define PICO_RUNTIME_SKIP_INIT_BOOTROM_LOCKING_ENABLE 0
340void runtime_init_bootrom_locking_enable(
void);
347#ifndef PICO_RUNTIME_INIT_MUTEX
350#define PICO_RUNTIME_INIT_MUTEX "01100"
353#ifndef PICO_RUNTIME_SKIP_INIT_MUTEX
354#define PICO_RUNTIME_SKIP_INIT_MUTEX 0
357#ifndef PICO_RUNTIME_NO_INIT_MUTEX
358#define PICO_RUNTIME_NO_INIT_MUTEX 0
365#ifndef PICO_RUNTIME_INIT_PER_CORE_IRQ_PRIORITIES
366#define PICO_RUNTIME_INIT_PER_CORE_IRQ_PRIORITIES "01200"
370#ifndef PICO_RUNTIME_INIT_PER_CORE_TLS_SETUP
371#define PICO_RUNTIME_INIT_PER_CORE_TLS_SETUP "10060"
376#ifndef PICO_RUNTIME_INIT_INSTALL_RAM_VECTOR_TABLE
377#define PICO_RUNTIME_INIT_INSTALL_RAM_VECTOR_TABLE "10080"
385#ifndef PICO_RUNTIME_SKIP_INIT_INSTALL_RAM_VECTOR_TABLE
386#if PICO_NO_RAM_VECTOR_TABLE || PICO_NO_FLASH || defined(__riscv)
387#define PICO_RUNTIME_SKIP_INIT_INSTALL_RAM_VECTOR_TABLE 1
391#ifndef PICO_RUNTIME_NO_INIT_INSTALL_RAM_VECTOR_TABLE
392#if PICO_NO_RAM_VECTOR_TABLE || PICO_NO_FLASH || defined(__riscv)
393#define PICO_RUNTIME_NO_INIT_INSTALL_RAM_VECTOR_TABLE 1
401#ifndef PICO_RUNTIME_INIT_DEFAULT_ALARM_POOL
402#define PICO_RUNTIME_INIT_DEFAULT_ALARM_POOL "11000"
407#ifndef PICO_RUNTIME_SKIP_INIT_DEFAULT_ALARM_POOL
408#if PICO_TIME_DEFAULT_ALARM_POOL_DISABLED
409#define PICO_RUNTIME_SKIP_INIT_DEFAULT_ALARM_POOL 1
413#ifndef PICO_RUNTIME_NO_INIT_DEFAULT_ALARM_POOL
414#if PICO_TIME_DEFAULT_ALARM_POOL_DISABLED
415#define PICO_RUNTIME_NO_INIT_DEFAULT_ALARM_POOL 1
426#ifndef PICO_RUNTIME_INIT_PER_CORE_INSTALL_STACK_GUARD
427#define PICO_RUNTIME_INIT_PER_CORE_INSTALL_STACK_GUARD "10050"
430#ifndef PICO_RUNTIME_SKIP_INIT_PER_CORE_INSTALL_STACK_GUARD
431#if !PICO_USE_STACK_GUARDS
432#define PICO_RUNTIME_SKIP_INIT_PER_CORE_INSTALL_STACK_GUARD 1
436#ifndef PICO_RUNTIME_NO_INIT_PER_CORE_INSTALL_STACK_GUARD
437#if !PICO_USE_STACK_GUARDS
438#define PICO_RUNTIME_NO_INIT_PER_CORE_INSTALL_STACK_GUARD 1
443void runtime_init_per_core_install_stack_guard(
void *stack_bottom);
445static __force_inline void runtime_install_stack_guard(
void *stack_bottom) {
446 runtime_init_per_core_install_stack_guard(stack_bottom);
static void clocks_init(void)
Initialise the clock hardware.
Definition: runtime_init.h:240
void runtime_init_clocks(void)
Definition: runtime_init_clocks.c:38