aboutsummaryrefslogtreecommitdiff
path: root/book/en/src/by-example/tips
diff options
context:
space:
mode:
authordatdenkikniet <jcdra1@gmail.com>2023-05-20 11:24:03 +0200
committerdatdenkikniet <jcdra1@gmail.com>2023-05-20 11:24:03 +0200
commit4b3bf59215d682e9473ca66545a1f7c2acbccbfe (patch)
treec82edbeff590c206f292552f6f842bd07f4e9e12 /book/en/src/by-example/tips
parentab17bbf9f37e81b9aab88694e73d23f54664fa01 (diff)
Move some more stuff to the archive, update this link
Diffstat (limited to 'book/en/src/by-example/tips')
-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`.