From 91c2d4850e31da1bbd49fc668ae79533e7ac3ab4 Mon Sep 17 00:00:00 2001 From: Daniel Carosone Date: Fri, 2 Oct 2020 19:56:17 +1000 Subject: Shared access is useful with interior mutability --- book/en/src/by-example/resources.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'book/en/src/by-example') diff --git a/book/en/src/by-example/resources.md b/book/en/src/by-example/resources.md index d67a72f..9831e55 100644 --- a/book/en/src/by-example/resources.md +++ b/book/en/src/by-example/resources.md @@ -114,7 +114,9 @@ are required to access the resource even if the resource is contended by several tasks running at different priorities. The downside is that the task only gets a shared reference (`&-`) to the resource, limiting the operations it can perform on it, but where a shared reference is enough this approach reduces the number -of required locks. +of required locks. In addition to simple immutable data, this shared access can +be useful where the resource type safely implements interior mutability, with +appropriate locking or atomic operations of its own. Note that in this release of RTIC it is not possible to request both exclusive access (`&mut-`) and shared access (`&-`) to the *same* resource from different -- cgit v1.2.3 From 3d6a0ea64fb2661ee1150a84425f50c18c2de9ad Mon Sep 17 00:00:00 2001 From: Daniel Carosone Date: Fri, 2 Oct 2020 20:43:52 +1000 Subject: minor markdownlints --- book/en/src/by-example/resources.md | 2 +- book/en/src/by-example/tips.md | 1 + book/en/src/migration.md | 3 +-- book/en/src/migration_rtic.md | 4 ---- 4 files changed, 3 insertions(+), 7 deletions(-) (limited to 'book/en/src/by-example') diff --git a/book/en/src/by-example/resources.md b/book/en/src/by-example/resources.md index 9831e55..9b6e5a8 100644 --- a/book/en/src/by-example/resources.md +++ b/book/en/src/by-example/resources.md @@ -1,4 +1,4 @@ -## Resources +# Resources The framework provides an abstraction to share data between any of the contexts we saw in the previous section (task handlers, `init` and `idle`): resources. diff --git a/book/en/src/by-example/tips.md b/book/en/src/by-example/tips.md index 5a44708..98c1abb 100644 --- a/book/en/src/by-example/tips.md +++ b/book/en/src/by-example/tips.md @@ -116,6 +116,7 @@ Here's an example where `heapless::Pool` is used to "box" buffers of 128 bytes. ``` rust {{#include ../../../../examples/pool.rs}} ``` + ``` console $ cargo run --example pool {{#include ../../../../ci/expected/pool.run}} diff --git a/book/en/src/migration.md b/book/en/src/migration.md index 6cca64d..d382db1 100644 --- a/book/en/src/migration.md +++ b/book/en/src/migration.md @@ -8,7 +8,6 @@ the version v0.5.0 of the framework. First, the version of the `cortex-m-rtic` dependency needs to be updated to `"0.5.0"`. The `timer-queue` feature needs to be removed. - ``` toml [dependencies.cortex-m-rtic] # change this @@ -194,7 +193,7 @@ Also, the `Duration` and `Instant` types and the `U32Ext` trait have been moved into the `rtic::cyccnt` module. This module is only available on ARMv7-M+ devices. The removal of the `timer-queue` also brings back the `DWT` peripheral inside the core peripherals struct, this will need to be enabled by the application -inside `init`. +inside `init`. Change this: diff --git a/book/en/src/migration_rtic.md b/book/en/src/migration_rtic.md index 555f1bb..c027da3 100644 --- a/book/en/src/migration_rtic.md +++ b/book/en/src/migration_rtic.md @@ -8,14 +8,11 @@ change. [RFC #33]: https://github.com/rtic-rs/rfcs/pull/33 - - ## `Cargo.toml` First, the `cortex-m-rtfm` dependency needs to be updated to `cortex-m-rtic`. - ``` toml [dependencies] # change this @@ -51,4 +48,3 @@ const APP: () = { }; ``` - -- cgit v1.2.3