multicore.h File Reference
#include "pico/types.h"
#include "pico/sync.h"
#include "hardware/structs/sio.h"
Include dependency graph for multicore.h:

Go to the source code of this file.

Macros

#define PICO_CORE1_STACK_SIZE   0x800
 

Functions

void multicore_reset_core1 (void)
 Reset core 1. More...
 
void multicore_launch_core1 (void(*entry)(void))
 Run code on core 1. More...
 
void multicore_launch_core1_with_stack (void(*entry)(void), uint32_t *stack_bottom, size_t stack_size_bytes)
 Launch code on core 1 with stack. More...
 
void multicore_launch_core1_raw (void(*entry)(void), uint32_t *sp, uint32_t vector_table)
 Launch code on core 1 with no stack protection. More...
 
static bool multicore_fifo_rvalid (void)
 Check the read FIFO to see if there is data available (sent by the other core) More...
 
static bool multicore_fifo_wready (void)
 Check the write FIFO to see if it has space for more data. More...
 
void multicore_fifo_push_blocking (uint32_t data)
 Push data on to the write FIFO (data to the other core). More...
 
bool multicore_fifo_push_timeout_us (uint32_t data, uint64_t timeout_us)
 Push data on to the write FIFO (data to the other core) with timeout. More...
 
uint32_t multicore_fifo_pop_blocking (void)
 Pop data from the read FIFO (data from the other core). More...
 
bool multicore_fifo_pop_timeout_us (uint64_t timeout_us, uint32_t *out)
 Pop data from the read FIFO (data from the other core) with timeout. More...
 
static void multicore_fifo_drain (void)
 Discard any data in the read FIFO. More...
 
static void multicore_fifo_clear_irq (void)
 Clear FIFO interrupt. More...
 
static uint32_t multicore_fifo_get_status (void)
 Get FIFO statuses. More...
 
void multicore_lockout_victim_init (void)
 Initialize the current core such that it can be a "victim" of lockout (i.e. forced to pause in a known state by the other core) More...
 
bool multicore_lockout_victim_is_initialized (uint core_num)
 Determine if multicore_victim_init() has been called on the specified core. More...
 
void multicore_lockout_start_blocking (void)
 Request the other core to pause in a known state and wait for it to do so. More...
 
bool multicore_lockout_start_timeout_us (uint64_t timeout_us)
 Request the other core to pause in a known state and wait up to a time limit for it to do so. More...
 
void multicore_lockout_end_blocking (void)
 Release the other core from a locked out state amd wait for it to acknowledge. More...
 
bool multicore_lockout_end_timeout_us (uint64_t timeout_us)
 Release the other core from a locked out state amd wait up to a time limit for it to acknowledge. More...