Skip to content
Snippets Groups Projects
Commit 5a19367e authored by Per Lindgren's avatar Per Lindgren
Browse files

async POC, SeqCst is sufficient

parent a5284ae9
No related branches found
No related tags found
No related merge requests found
...@@ -14,8 +14,8 @@ use core::pin::Pin; ...@@ -14,8 +14,8 @@ use core::pin::Pin;
// use core::ptr; // use core::ptr;
// use core::ptr::NonNull; // use core::ptr::NonNull;
// use core::sync::atomic::{AtomicPtr, AtomicU32, Ordering}; // use core::sync::atomic::{AtomicPtr, AtomicU32, Ordering};
use core::sync::atomic::{compiler_fence, Ordering};
use core::task::{Context, Poll, RawWaker, RawWakerVTable, Waker}; use core::task::{Context, Poll, RawWaker, RawWakerVTable, Waker};
use cortex_m_semihosting::{debug, hprintln}; use cortex_m_semihosting::{debug, hprintln};
use panic_semihosting as _; use panic_semihosting as _;
...@@ -86,7 +86,18 @@ mod app { ...@@ -86,7 +86,18 @@ mod app {
#[task(resources = [counter], priority = 2)] #[task(resources = [counter], priority = 2)]
fn rt_task(cx: rt_task::Context) { fn rt_task(cx: rt_task::Context) {
hprintln!("counter {}", cx.resources.counter).ok(); //hprintln!("counter {}", cx.resources.counter).ok();
// compiler_fence(Ordering::SeqCst);
*cx.resources.counter += 1;
compiler_fence(Ordering::SeqCst);
*cx.resources.counter += 1;
}
#[task(binds = UART1, resources = [counter], priority = 2)]
fn uart1(cx: uart1::Context) {
*cx.resources.counter += 1;
// compiler_fence(Ordering::SeqCst);
*cx.resources.counter += 1;
} }
// RTIC requires that unused interrupts are declared in an extern block when // RTIC requires that unused interrupts are declared in an extern block when
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment