From fd085e6a01190efe4ae7ecca5dcc0b4d96756edb Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Mon, 4 Dec 2023 18:26:21 +0100 Subject: Update to heapless 0.8, disable pool test for now (#846) --- rtic-sync/Cargo.toml | 2 +- rtic/Cargo.toml | 2 +- rtic/examples/pool.rs | 70 ----------------------------------------------- rtic/examples/pool.rs_old | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 72 deletions(-) delete mode 100644 rtic/examples/pool.rs create mode 100644 rtic/examples/pool.rs_old diff --git a/rtic-sync/Cargo.toml b/rtic-sync/Cargo.toml index 8172e26..28659da 100644 --- a/rtic-sync/Cargo.toml +++ b/rtic-sync/Cargo.toml @@ -17,7 +17,7 @@ license = "MIT OR Apache-2.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -heapless = "0.7" +heapless = "0.8" critical-section = "1" rtic-common = { version = "1.0.0", path = "../rtic-common" } portable-atomic = { version = "1", default-features = false } diff --git a/rtic/Cargo.toml b/rtic/Cargo.toml index 61ffdf7..17257e0 100644 --- a/rtic/Cargo.toml +++ b/rtic/Cargo.toml @@ -43,7 +43,7 @@ rtic-core = "1" critical-section = "1" [dev-dependencies] -heapless = "0.7.7" +heapless = "0.8" lm3s6965 = "0.2" cortex-m-semihosting = "0.5.0" rtic-time = { path = "../rtic-time" } diff --git a/rtic/examples/pool.rs b/rtic/examples/pool.rs deleted file mode 100644 index 92c10c4..0000000 --- a/rtic/examples/pool.rs +++ /dev/null @@ -1,70 +0,0 @@ -//! examples/pool.rs - -#![no_main] -#![no_std] -#![deny(warnings)] -#![feature(type_alias_impl_trait)] - -use heapless::{ - pool, - pool::singleton::{Box, Pool}, -}; -use panic_semihosting as _; -use rtic::app; - -// Declare a pool of 128-byte memory blocks -pool!(P: [u8; 128]); - -#[app(device = lm3s6965, dispatchers = [SSI0, QEI0])] -mod app { - use crate::{Box, Pool}; - use cortex_m_semihosting::debug; - use lm3s6965::Interrupt; - - // Import the memory pool into scope - use super::P; - - #[shared] - struct Shared {} - - #[local] - struct Local {} - - #[init(local = [memory: [u8; 512] = [0; 512]])] - fn init(cx: init::Context) -> (Shared, Local) { - // Increase the capacity of the memory pool by ~4 - P::grow(cx.local.memory); - - rtic::pend(Interrupt::I2C0); - - (Shared {}, Local {}) - } - - #[task(binds = I2C0, priority = 2)] - fn i2c0(_: i2c0::Context) { - // claim a memory block, initialize it and .. - let x = P::alloc().unwrap().init([0u8; 128]); - - // .. send it to the `foo` task - foo::spawn(x).ok().unwrap(); - - // send another block to the task `bar` - bar::spawn(P::alloc().unwrap().init([0u8; 128])) - .ok() - .unwrap(); - } - - #[task] - async fn foo(_: foo::Context, _x: Box

) { - // explicitly return the block to the pool - drop(_x); - - debug::exit(debug::EXIT_SUCCESS); // Exit QEMU simulator - } - - #[task(priority = 2)] - async fn bar(_: bar::Context, _x: Box

) { - // this is done automatically so we can omit the call to `drop` - // drop(_x); - } -} diff --git a/rtic/examples/pool.rs_old b/rtic/examples/pool.rs_old new file mode 100644 index 0000000..92c10c4 --- /dev/null +++ b/rtic/examples/pool.rs_old @@ -0,0 +1,70 @@ +//! examples/pool.rs + +#![no_main] +#![no_std] +#![deny(warnings)] +#![feature(type_alias_impl_trait)] + +use heapless::{ + pool, + pool::singleton::{Box, Pool}, +}; +use panic_semihosting as _; +use rtic::app; + +// Declare a pool of 128-byte memory blocks +pool!(P: [u8; 128]); + +#[app(device = lm3s6965, dispatchers = [SSI0, QEI0])] +mod app { + use crate::{Box, Pool}; + use cortex_m_semihosting::debug; + use lm3s6965::Interrupt; + + // Import the memory pool into scope + use super::P; + + #[shared] + struct Shared {} + + #[local] + struct Local {} + + #[init(local = [memory: [u8; 512] = [0; 512]])] + fn init(cx: init::Context) -> (Shared, Local) { + // Increase the capacity of the memory pool by ~4 + P::grow(cx.local.memory); + + rtic::pend(Interrupt::I2C0); + + (Shared {}, Local {}) + } + + #[task(binds = I2C0, priority = 2)] + fn i2c0(_: i2c0::Context) { + // claim a memory block, initialize it and .. + let x = P::alloc().unwrap().init([0u8; 128]); + + // .. send it to the `foo` task + foo::spawn(x).ok().unwrap(); + + // send another block to the task `bar` + bar::spawn(P::alloc().unwrap().init([0u8; 128])) + .ok() + .unwrap(); + } + + #[task] + async fn foo(_: foo::Context, _x: Box

) { + // explicitly return the block to the pool + drop(_x); + + debug::exit(debug::EXIT_SUCCESS); // Exit QEMU simulator + } + + #[task(priority = 2)] + async fn bar(_: bar::Context, _x: Box

) { + // this is done automatically so we can omit the call to `drop` + // drop(_x); + } +} -- cgit v1.2.3