modm API documentation
|
Typedefs | |
using | modm::platform::multicore::SystemSpinLock = SpinLockBlocking< 0 > |
using | modm::platform::multicore::SystemSpinLockGuard = SpinLockGuard< SystemSpinLock > |
#define | modm_fastdata_core0 modm_section(".data_core0") |
#define | modm_fastdata_core1 modm_section(".data_core1") |
Places initialized objects into the core1-coupled memory. | |
#define | modm_bss_core0 modm_section(".bss_core0") |
Places zeroed objects into the core0-coupled memory. | |
#define | modm_bss_core1 modm_section(".bss_core1") |
Places zeroed objects into the core1-coupled memory. | |
#define | modm_noinit_core0 modm_section(".noinit_core0") |
Places uninitialized objects into the core0-coupled memory. | |
#define | modm_noinit_core1 modm_section(".noinit_core1") |
Places uninitialized objects into the core1-coupled memory. | |
#define | modm_faststack_core0 modm_noinit_core0 |
Places stacks into the core0-coupled memory. | |
#define | modm_faststack_core1 modm_noinit_core1 |
Places stacks into the core1-coupled memory. | |
#define | modm_fastcode_core0 modm_fastdata_core0 |
Places functions into the core0-coupled memory. | |
#define | modm_fastcode_core1 modm_fastdata_core1 |
Places functions into the core1-coupled memory. | |
void | modm_initialize_core1 (void) |
Weak callback to initialize CPU1. | |
lbuild module: modm:platform:multicore
This module adds the ability to run code on CPU1 and provides mailbox, spinlock and mutex implementations, and additionally a stack of size modm:platform:cortex-m:main_stack_size
is added to the CORE1 memory and the modm::atomic::Lock
is made multicore safe. You can use attributes for placing objects into core-coupled memories:
We provide a symmetric multiprocessing (SMP) abstraction, where the same binary is used for both cores. By default CPU0 is used to boot the device and code running on CPU1 needs to be explicitly started:
#define modm_fastdata_core0 modm_section(".data_core0") |
Places initialized objects into the core0-coupled memory