aboutsummaryrefslogtreecommitdiff
path: root/book/en/src/by-example
diff options
context:
space:
mode:
Diffstat (limited to 'book/en/src/by-example')
-rw-r--r--book/en/src/by-example/tips/from_ram.md45
-rw-r--r--book/en/src/by-example/tips/indirection.md2
2 files changed, 1 insertions, 46 deletions
diff --git a/book/en/src/by-example/tips/from_ram.md b/book/en/src/by-example/tips/from_ram.md
deleted file mode 100644
index a153139..0000000
--- a/book/en/src/by-example/tips/from_ram.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Running tasks from RAM
-
-The main goal of moving the specification of RTIC applications to attributes in RTIC v0.4.0 was to allow inter-operation with other attributes. For example, the `link_section` attribute can be applied to tasks to place them in RAM; this can
-improve performance in some cases.
-
-> **IMPORTANT**: In general, the `link_section`, `export_name` and `no_mangle` attributes are powerful but also easy to misuse. Incorrectly using any of these attributes can cause undefined behavior; you should always prefer to use safe, higher level attributes around them like `cortex-m-rt`'s `interrupt` and `exception` attributes.
->
-> In the particular case of RAM functions there's no safe abstraction for it in `cortex-m-rt` v0.6.5 but there's an [RFC] for adding a `ramfunc` attribute in a future release.
-
-[RFC]: https://github.com/rust-embedded/cortex-m-rt/pull/100
-
-The example below shows how to place the higher priority task, `bar`, in RAM.
-
-``` rust,noplayground
-{{#include ../../../../../rtic/examples/ramfunc.rs}}
-```
-
-Running this program produces the expected output.
-
-``` console
-$ cargo run --target thumbv7m-none-eabi --example ramfunc
-```
-
-``` console
-{{#include ../../../../../rtic/ci/expected/ramfunc.run}}
-```
-
-One can look at the output of `cargo-nm` to confirm that `bar` ended in RAM
-(`0x2000_0000`), whereas `foo` ended in Flash (`0x0000_0000`).
-
-``` console
-$ cargo nm --example ramfunc --release | grep ' foo::'
-```
-
-``` console
-{{#include ../../../../../rtic/ci/expected/ramfunc.run.grep.foo}}
-```
-
-``` console
-$ cargo nm --example ramfunc --target thumbv7m-none-eabi --release | grep '*bar::'
-```
-
-``` console
-{{#include ../../../../../rtic/ci/expected/ramfunc.run.grep.bar}}
-```
diff --git a/book/en/src/by-example/tips/indirection.md b/book/en/src/by-example/tips/indirection.md
index 58b3bde..aa68190 100644
--- a/book/en/src/by-example/tips/indirection.md
+++ b/book/en/src/by-example/tips/indirection.md
@@ -7,7 +7,7 @@ Indirection can minimize message passing overhead: instead of sending the buffer
One can use a global memory allocator to achieve indirection (`alloc::Box`, `alloc::Rc`, etc.), which requires using the nightly channel as of Rust v1.37.0, or one can use a statically allocated memory pool like [`heapless::Pool`].
-[`heapless::Pool`]: https://docs.rs/heapless/0.5.0/heapless/pool/index.html
+[`heapless::Pool`]: https://docs.rs/heapless/latest/heapless/pool/index.html
As this example of approach goes completely outside of RTIC resource model with shared and local the program would rely on the correctness of the memory allocator, in this case `heapless::pool`.