Go to the source code of this file.
Macros | |
| #define | PARAM_ASSERTIONS_ENABLED_PICO_MULTICORE 0 |
| #define | PICO_CORE1_STACK_SIZE 0x800 |
| #define | PICO_MULTICORE_LOCKOUT_BEFORE_CORE1_STARTED 1 |
| #define | SIO_FIFO_IRQ_NUM(core) |
| Returns the irq_num_t for the FIFO IRQ on the given core. | |
| #define | DOORBELL_IRQ_NUM(doorbell_num) |
| Returns the irq_num_t for processor interrupts for the given doorbell number. | |
Functions | |
| void | multicore_reset_core1 (void) |
| Reset core 1. | |
| void | multicore_launch_core1 (void(*entry)(void)) |
| Run code on core 1. | |
| 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. | |
| void | multicore_launch_core1_raw (void(*entry)(void), uint32_t *sp, uint32_t vector_table) |
| Launch code on core 1 with no stack protection. | |
| static bool | multicore_fifo_rvalid (void) |
| Check the read FIFO to see if there is data available (sent by the other core). | |
| static bool | multicore_fifo_wready (void) |
| Check the write FIFO to see if it has space for more data. | |
| void | multicore_fifo_push_blocking (uint32_t data) |
| Push data on to the write FIFO (data to the other core). | |
| static void | multicore_fifo_push_blocking_inline (uint32_t data) |
| Push data on to the write FIFO (data to the other core). | |
| 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. | |
| uint32_t | multicore_fifo_pop_blocking (void) |
| Pop data from the read FIFO (data from the other core). | |
| static uint32_t | multicore_fifo_pop_blocking_inline (void) |
| Pop data from the read FIFO (data from the other core). | |
| 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. | |
| static void | multicore_fifo_drain (void) |
| Discard any data in the read FIFO. | |
| static void | multicore_fifo_clear_irq (void) |
| Clear FIFO interrupt. | |
| static uint32_t | multicore_fifo_get_status (void) |
| Get FIFO statuses. | |
| static void | check_doorbell_num_param (__unused uint doorbell_num) |
| static void | check_core_mask_param (__unused uint core_mask) |
| void | multicore_doorbell_claim (uint doorbell_num, uint core_mask) |
| Cooperatively claim the use of this doorbell. | |
| int | multicore_doorbell_claim_unused (uint core_mask, bool required) |
| Cooperatively claim the use of an unused doorbell. | |
| void | multicore_doorbell_unclaim (uint doorbell_num, uint core_mask) |
| Cooperatively release the claim on use of this doorbell. | |
| static void | multicore_doorbell_set_other_core (uint doorbell_num) |
| Activate the given doorbell on the other core. | |
| static void | multicore_doorbell_clear_other_core (uint doorbell_num) |
| Deactivate the given doorbell on the other core. | |
| static void | multicore_doorbell_set_current_core (uint doorbell_num) |
| Activate the given doorbell on this core. | |
| static void | multicore_doorbell_clear_current_core (uint doorbell_num) |
| Deactivate the given doorbell on this core. | |
| static bool | multicore_doorbell_is_set_current_core (uint doorbell_num) |
| Determine if the given doorbell is active on this core. | |
| static bool | multicore_doorbell_is_set_other_core (uint doorbell_num) |
| Determine if the given doorbell is active on the other core. | |
| static uint | multicore_doorbell_irq_num (uint doorbell_num) |
| 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). | |
| void | multicore_lockout_victim_deinit (void) |
| Stop the current core being able to be a "victim" of lockout (i.e. forced to pause in a known state by the other core). | |
| bool | multicore_lockout_victim_is_initialized (uint core_num) |
| Determine if multicore_lockout_victim_init() has been called on the specified core. | |
| bool | multicore_lockout_ready (void) |
| Determine whether it is safe to call multicore_lockout_start functions from this core. | |
| void | multicore_lockout_start_blocking (void) |
| Request the other core to pause in a known state and wait for it to do so. | |
| 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. | |
| void | multicore_lockout_end_blocking (void) |
| Release the other core from a locked out state. | |
| bool | multicore_lockout_end_timeout_us (uint64_t timeout_us) |
| Release the other core from a locked out state. | |