Loading...
Searching...
No Matches
multicore.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2025 Tom Hert <git@annsann.eu>
3 * SPDX-FileCopyrightText: 2025 HAW Hamburg
4 * SPDX-License-Identifier: LGPL-2.1-only
5 */
6
7#pragma once
8
17
18#include "periph_cpu.h"
19#include "thread_config.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
26#define SIO_FIFO_READ_VALID_BIT 0
28#define SIO_FIFO_SEND_READY_BIT 1
30#define core1_psm_bit 24
31
36#ifndef THREAD_STACKSIZE_SECOND_CORE
37# define THREAD_STACKSIZE_SECOND_CORE THREAD_STACKSIZE_MAIN
38#endif
39
44static volatile uint8_t core_1_stack[THREAD_STACKSIZE_SECOND_CORE];
45
50typedef void *(*core_1_fn_t)(void *arg);
51
55void core1_reset(void);
56
62void core1_init(core_1_fn_t function, void *arg);
63
70
71#ifdef __cplusplus
72}
73#endif
74
void core1_reset(void)
Reset Core 1, putting it back into the reset state.
void _core1_trampoline(void)
This is the internal trampoline setting everything up before the entry function gets executed,...
static volatile uint8_t core_1_stack[THREAD_STACKSIZE_SECOND_CORE]
Stack size for core 1.
Definition multicore.h:44
void *(* core_1_fn_t)(void *arg)
The function signature used for any function passed onto core 1.
Definition multicore.h:50
void core1_init(core_1_fn_t function, void *arg)
Init Core 1.
Peripheral CPU definitions for the RP2350.
Thread configuration defines.