diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-10-03 14:34:04 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-03 14:34:04 +0000 |
| commit | 35baf20c615db8e4b7ab368ba9ce16239f674555 (patch) | |
| tree | d78a35d13ca909718b0187377ef7127cbf0f3feb | |
| parent | 97eae45fa571ba1c470e9ab649ba7570beb963b0 (diff) | |
| parent | f0f982facadab2da5d8cdaf214829a9e19f4249e (diff) | |
Merge #377
377: Updated documentation to include the critical section token in init r=AfoHT a=korken89
Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
| -rw-r--r-- | book/en/src/by-example/app.md | 7 | ||||
| -rw-r--r-- | examples/init.rs | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/book/en/src/by-example/app.md b/book/en/src/by-example/app.md index 344cefc..23bff68 100644 --- a/book/en/src/by-example/app.md +++ b/book/en/src/by-example/app.md @@ -33,15 +33,16 @@ required). This initialization function will be the first part of the application to run. The `init` function will run *with interrupts disabled* and has exclusive access -to Cortex-M and, optionally, device specific peripherals through the `core` and -`device` fields of `init::Context`. +to Cortex-M where the `bare_metal::CriticalSection` token is available as `cs`. +And optionally, device specific peripherals through the `core` and `device` fields +of `init::Context`. `static mut` variables declared at the beginning of `init` will be transformed into `&'static mut` references that are safe to access. [`rtic::Peripherals`]: ../../api/rtic/struct.Peripherals.html -The example below shows the types of the `core` and `device` fields and +The example below shows the types of the `core`, `device` and `cs` fields, and showcases safe access to a `static mut` variable. The `device` field is only available when the `peripherals` argument is set to `true` (it defaults to `false`). diff --git a/examples/init.rs b/examples/init.rs index 315969f..1623ca7 100644 --- a/examples/init.rs +++ b/examples/init.rs @@ -23,6 +23,10 @@ const APP: () = { // Safe access to local `static mut` variable let _x: &'static mut u32 = X; + // Access to the critical section token, + // to indicate that this is a critical seciton + let _cs_token: bare_metal::CriticalSection = cx.cs; + hprintln!("init").unwrap(); debug::exit(debug::EXIT_SUCCESS); |
