This commit is contained in:
kalkyl 2022-12-10 13:43:29 +01:00
parent d8821cfd41
commit 96d6c7243b
2 changed files with 9 additions and 10 deletions

View File

@ -1,4 +1,4 @@
//! Multicore support
//! MultiCore support
//!
//! This module handles setup of the 2nd cpu core on the rp2040, which we refer to as core1.
//! It provides functionality for setting up the stack, and starting core1.
@ -62,9 +62,9 @@ fn core1_setup(stack_bottom: *mut usize) {
install_stack_guard(stack_bottom);
}
/// Multicore execution management.
pub struct Multicore {
cores: (Core, Core),
/// MultiCore execution management.
pub struct MultiCore {
pub cores: (Core, Core),
}
/// Data type for a properly aligned stack of N 32-bit (usize) words
@ -81,8 +81,8 @@ impl<const SIZE: usize> Stack<SIZE> {
}
}
impl Multicore {
/// Create a new |Multicore| instance.
impl MultiCore {
/// Create a new |MultiCore| instance.
pub fn new() -> Self {
Self {
cores: (Core { id: CoreId::Core0 }, Core { id: CoreId::Core1 }),

View File

@ -6,7 +6,7 @@ use defmt::*;
use embassy_executor::Executor;
use embassy_executor::_export::StaticCell;
use embassy_rp::gpio::{Level, Output};
use embassy_rp::multicore::{Multicore, Stack};
use embassy_rp::multicore::{MultiCore, Stack};
use embassy_rp::peripherals::PIN_25;
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_sync::channel::Channel;
@ -28,9 +28,8 @@ fn main() -> ! {
let p = embassy_rp::init(Default::default());
let led = Output::new(p.PIN_25, Level::Low);
let mut mc = Multicore::new();
let (_, core1) = mc.cores();
let _ = core1.spawn(unsafe { &mut CORE1_STACK.mem }, move || {
let mut mc = MultiCore::new();
let _ = mc.cores.1.spawn(unsafe { &mut CORE1_STACK.mem }, move || {
let executor1 = EXECUTOR1.init(Executor::new());
executor1.run(|spawner| unwrap!(spawner.spawn(core1_task(led))));
});