aboutsummaryrefslogtreecommitdiff
path: root/examples/pool.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2023-03-04 21:10:24 +0000
committerGitHub <noreply@github.com>2023-03-04 21:10:24 +0000
commit7c7d6558f6d9c50fbb4d2487c98c9a5be15f2f7b (patch)
tree80a47f0dc40059014e9448c4c2eb34c54dff45fe /examples/pool.rs
parent1c5db277e4161470136dbd2a11e914ff1d383581 (diff)
parent98c5490d94950608d31cd5ad9dd260f2f853735c (diff)
Merge #694
694: RTIC 2 r=AfoHT a=korken89 Co-authored-by: Emil Fresk <emil.fresk@gmail.com> Co-authored-by: Per Lindgren <per.lindgren@ltu.se>
Diffstat (limited to 'examples/pool.rs')
-rw-r--r--examples/pool.rs72
1 files changed, 0 insertions, 72 deletions
diff --git a/examples/pool.rs b/examples/pool.rs
deleted file mode 100644
index 4c551be..0000000
--- a/examples/pool.rs
+++ /dev/null
@@ -1,72 +0,0 @@
-//! examples/pool.rs
-
-#![deny(unsafe_code)]
-#![deny(warnings)]
-// pool!() generates a struct without docs
-//#![deny(missing_docs)]
-#![no_main]
-#![no_std]
-
-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, init::Monotonics) {
- // Increase the capacity of the memory pool by ~4
- P::grow(cx.local.memory);
-
- rtic::pend(Interrupt::I2C0);
-
- (Shared {}, Local {}, init::Monotonics())
- }
-
- #[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]
- fn foo(_: foo::Context, _x: Box<P>) {
- // explicitly return the block to the pool
- drop(_x);
-
- debug::exit(debug::EXIT_SUCCESS); // Exit QEMU simulator
- }
-
- #[task(priority = 2)]
- fn bar(_: bar::Context, _x: Box<P>) {
- // this is done automatically so we can omit the call to `drop`
- // drop(x);
- }
-}