From 51e4d539b916ef170c1fbb2e5f631ca2f68a4882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George-D=C4=83nu=C8=9B=20Aldea?= Date: Fri, 15 Aug 2025 11:45:41 +0300 Subject: [PATCH 1/8] added scheduler task --- docs/embedded/index.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/docs/embedded/index.md b/docs/embedded/index.md index ae39882..33dbce3 100644 --- a/docs/embedded/index.md +++ b/docs/embedded/index.md @@ -162,3 +162,43 @@ fn allocate_grant(&self, process_id: kernel::ProcessId) -> Result<(), kernel::pr For the command logic, you must also use the `enter` API. The first parameter of the closure will be a mutable reference to a `GrantData` wrapper over the previously defined `App`. The wrapper is transparent, meaning it permits accessing fields of the generic type. The next step is configuring the capsule in the board's main file. Remember you need to add the capsule in the `NucleoF429ZI` structure, the `SyscallDriverLookup` and initialize the printer counter capsule. + +## The role of a Scheduler + +This task aims to illustrate the importance of OS preemption in the context of untrusted applications. Currently the scheduler used by the board is `kernel::scheduler::RoundRobinSched`, which implements a classical scheduling algorithm, allowing each process to run up to a maximum time slice called **quanta**. In the event that an application tries starving all other processes, the kernel will interrupt the malicious application after its quanta expires and will then schedule another process. + +### Trust but verify + +Your task will be to verify the previous claims, by flashing two C applications. One of them will be the `blink` example. After flashing the kernel by running `make flash` in the board's main directory (`boards/nucleo_f429zi`), you can load the application by running `make flash` in the example's root folder (`example/blink`). + +As there are no *"malicious"* examples, we will have to add them on our own. In this case, an app that would print a message, then just infinitely spin in a `while` loop is enough. For this, you can adapt the `examples/c_hello` example, the flash it. + +If you managed to flash both applications, you should be able to connect to the board using `tockloader listen` and see a similar output when running `list`: + +```shell +tockloader listen +[INFO ] No device name specified. Using default name "tock". +[INFO ] No serial port with device name "tock" found. +[INFO ] Found 2 serial ports. +Multiple serial port options found. Which would you like to use? +[0] /dev/cu.debug-console - n/a +[1] /dev/cu.usbmodem1103 - STM32 STLink + +Which option? [0] 1 +[INFO ] Using "/dev/cu.usbmodem1103 - STM32 STLink". +[INFO ] Listening for serial output. + +tock$ list + PID ShortID Name Quanta Syscalls Restarts Grants State + 0 Unique blink 0 289 0 1/11 Yielded + 1 Unique ws-demo 640 6 0 1/11 Running +tock$ +``` + +You should be able to see the on-board LEDs flashing on the board. + +### Cooperation flaw + +Now, let's test the same scenario, but with a cooperative scheduling mechanism. You have to first change the kernel's scheduler in the board's `main.rs` file to use the `scheduler::cooperative::CooperativeSched`. Then you must re-flash the kernel by running `make flash`. Fortunately flashing the kernel should preserve the applications, so you will not have to re-flash them as well. + +After you are done flashing, check that both applications are present. You can try to reset the board a few times by running `reset` in tock's process console (the terminal you open by running `tockloader listen`). From 83a658a0955f1e9d0c1188aa3e3de517d9515f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George-D=C4=83nu=C8=9B=20Aldea?= Date: Fri, 15 Aug 2025 15:08:12 +0300 Subject: [PATCH 2/8] added openocd install disclaimer --- docs/embedded/index.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/embedded/index.md b/docs/embedded/index.md index 33dbce3..695dcf9 100644 --- a/docs/embedded/index.md +++ b/docs/embedded/index.md @@ -169,6 +169,35 @@ This task aims to illustrate the importance of OS preemption in the context of u ### Trust but verify +:::warning app flashing + + +You will need to install `openocd` first. + +```shell +# Linux +sudo apt install openocd + +# Mac +brew install openocd +``` + +::: + Your task will be to verify the previous claims, by flashing two C applications. One of them will be the `blink` example. After flashing the kernel by running `make flash` in the board's main directory (`boards/nucleo_f429zi`), you can load the application by running `make flash` in the example's root folder (`example/blink`). As there are no *"malicious"* examples, we will have to add them on our own. In this case, an app that would print a message, then just infinitely spin in a `while` loop is enough. For this, you can adapt the `examples/c_hello` example, the flash it. From 2131ed87658f6c23b501e066b84e9b8c61753d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George-D=C4=83nu=C8=9B=20Aldea?= Date: Fri, 15 Aug 2025 21:10:23 +0300 Subject: [PATCH 3/8] initial Embassy track --- docs/embedded/0.Tock/index.md | 238 ++++++++++++++++++++++++++++++ docs/embedded/1.Embassy/index.md | 225 ++++++++++++++++++++++++++++ docs/embedded/index.md | 244 +------------------------------ 3 files changed, 469 insertions(+), 238 deletions(-) create mode 100644 docs/embedded/0.Tock/index.md create mode 100644 docs/embedded/1.Embassy/index.md diff --git a/docs/embedded/0.Tock/index.md b/docs/embedded/0.Tock/index.md new file mode 100644 index 0000000..ced22e8 --- /dev/null +++ b/docs/embedded/0.Tock/index.md @@ -0,0 +1,238 @@ +--- +title: Tock +position: 0 +--- + +# Introduction + +## Prerequisites + +:::note Ubuntu Virtual Machine +This workshop will not work on Windows systems. +You can use the Ubuntu VM we provide [here](https://drive.google.com/file/d/1WSUo29d9Z8bmcjurvkDUmoAgq1TqaW4H/view?usp=sharing) (only works on VirtualBox). +The username and password are both `ipwembedded`. +The VM has the port 3033 forwarded for SSH connection. +::: + +If you did not attend the **Tock Workshop**, please follow the [Setup Tutorial](../tock_workshop/index.md). + +## Getting Started + +For this track we will be using the **Nucleo-F429ZI** boards. You will need to **change the branch** you are working on, but first make sure you commit your changes. + +```shell +git add . +git commit -m "tock workshop progress" +``` + +Then, to fetch the branch and work on it, run: + +```shell +git fetch +git checkout track/embedded +``` + +The board's main can be found in the `boards/nucleo_f429zi` subfolder. Try to flash the kernel to the board, using the board's `Makefile`. After you are done flashing, connect to the board using `tockloader listen` + +```shell +[INFO ] No device name specified. Using default name "tock". +[INFO ] No serial port with device name "tock" found. +[INFO ] Found 2 serial ports. +Multiple serial port options found. Which would you like to use? +[0] /dev/cu.debug-console - n/a +[1] /dev/cu.usbmodem1303 - STM32 STLink + +Which option? [0] 1 +[INFO ] Using "/dev/cu.usbmodem1303 - STM32 STLink". +[INFO ] Listening for serial output. + +tock$ +``` + +## Customize your kernel + +After connecting to Tock's terminal, you can run `help` to see the supported commands. One of them is `reset` and by running it, you can see the default *"welcome"* message. + +```shell +tock$ reset +Initialization complete. Entering main loop +tock$ +``` + +Personalize your kernel, by changing the hostname and the welcome message. + +## Print Counter Capsule + +For this task, you will need to build a capsule that prints a custom message each time it receives a print command from an application, along with a message counter representing the number of commands received. Remember that you will need to implement the `SyscallDriver` trait. + +### The simple way + +Simplest method to do this is to add a `counter` field in the capsule's structure. One issue you will most likely encounter is that the `command` method required by the `SyscallDriver` trait has a immutable reference to `&self`, so you may need to wrap the counter in a wrapper that allows for inner mutability, such as `Cell`. + +### The Tock way + +One issue with the previous approach is that the counter would be shared between the applications. This could be an issue for mutually distrustful application. Fortunately, Tock has a mechanism in place for such situations, called `Grant`s, which are per-process memory regions allocated by the kernel in a process memory region for a capsule to store that process’s state. + +![Grant](../assets/grant.png) + +To access this region, you can simply add a new `grant` field in the capsule structure. + +```rust title="capsules/extra/src/print_counter.rs" +use kernel::grant::{AllowRoCount, AllowRwCount, Grant, UpcallCount}; + +// TODO: Define `App` structure. Make sure to satisfy trait constraints. +struct App; + +struct PrintCounter { + grant: Grant< + App, + UpcallCount<0>, // Number of upcalls supported by the capsule + AllowRoCount<0>, // Number of Read-Only buffers supported + AllowRwCount<0>, // Number of Read-Write buffers supported + >, +} +``` + +As before, we will need to define a component for this capsule, to initialize it. + +```rust title="boards/components/src/print_counter.rs" +#[macro_export] +macro_rules! print_counter_component_static { + ($(,)?) => {{ + kernel::static_buf!(capsules_extra::print_counter::PrintCounter) + };}; +} + +pub struct PrintCounterComponent; + +impl Component for PrintCounterComponent { + type StaticInput = &'static mut MaybeUninit; + + type Output = &'static capsules_extra::print_counter::PrintCounter; + + fn finalize(self, static_memory: Self::StaticInput) -> Self::Output { + todo!() + } +} +``` + +Grants are a sensitive component of the operating system, so the creation and management operations are considered unsafe, and require +privileges to perform. Tock restricts these privileged operations through the use of capabilities, which are tokens implementing `unsafe` traits. Because capsules are forbidden from using unsafe code, these tokens cannot be forged. + +Creating a grant is requires a reference to the board's kernel, and a driver number, so we will need to add these parts in the components. + +```rust title="boards/components/src/print_counter.rs" +pub struct PrintCounterComponent { + driver_num: usize, + board_kernel: &'static kernel::Kernel, +} + +impl PrintCounterComponent { + pub fn new(driver_num: usize, board_kernel: &'static kernel::Kernel) -> Self { + Self { + driver_num, + board_kernel, + } + } +} +``` + +The capability needed for grant creating is called `MemoryAllocationCapability`, and it can be found in the `kernel::capabilities` module. The `kernel` also exposes the `crate_capability!` macro for ease of use. + +```rust title="boards/components/src/print_counter.rs" +impl Component for PrintCounterComponent { + // ... + + fn finalize(self, static_memory: Self::StaticInput) -> Self::Output { + let grant_cap = create_capability!(capabilities::MemoryAllocationCapability); + let grant = self.board_kernel.create_grant(self.driver_num, &grant_cap); + + static_memory.write(capsules_extra::print_counter::PrintCounter::new(grant)) + } +} +``` + +:::note `new` constructor +You will also need to implement the `new` constructor for the `PrintCounter` capsule. +::: + +Next, you must implement the `SyscallDriver` trait, where the command logic will be. For the `allocate_grant` method implementation, it is enough to use the `enter` method of the Grant which takes a closure with two parameters. + +```rust +fn allocate_grant(&self, process_id: kernel::ProcessId) -> Result<(), kernel::process::Error> { + self.grant.enter(process_id, |_, _| {}) +} +``` + +For the command logic, you must also use the `enter` API. The first parameter of the closure will be a mutable reference to a `GrantData` wrapper over the previously defined `App`. The wrapper is transparent, meaning it permits accessing fields of the generic type. + +The next step is configuring the capsule in the board's main file. Remember you need to add the capsule in the `NucleoF429ZI` structure, the `SyscallDriverLookup` and initialize the printer counter capsule. + +## The role of a Scheduler + +This task aims to illustrate the importance of OS preemption in the context of untrusted applications. Currently the scheduler used by the board is `kernel::scheduler::RoundRobinSched`, which implements a classical scheduling algorithm, allowing each process to run up to a maximum time slice called **quanta**. In the event that an application tries starving all other processes, the kernel will interrupt the malicious application after its quanta expires and will then schedule another process. + +### Trust but verify + +:::warning app flashing + + +You will need to install `openocd` first. + +```shell +# Linux +sudo apt install openocd + +# Mac +brew install openocd +``` + +::: + +Your task will be to verify the previous claims, by flashing two C applications. One of them will be the `blink` example. After flashing the kernel by running `make flash` in the board's main directory (`boards/nucleo_f429zi`), you can load the application by running `make flash` in the example's root folder (`example/blink`). + +As there are no *"malicious"* examples, we will have to add them on our own. In this case, an app that would print a message, then just infinitely spin in a `while` loop is enough. For this, you can adapt the `examples/c_hello` example, the flash it. + +If you managed to flash both applications, you should be able to connect to the board using `tockloader listen` and see a similar output when running `list`: + +```shell +tockloader listen +[INFO ] No device name specified. Using default name "tock". +[INFO ] No serial port with device name "tock" found. +[INFO ] Found 2 serial ports. +Multiple serial port options found. Which would you like to use? +[0] /dev/cu.debug-console - n/a +[1] /dev/cu.usbmodem1103 - STM32 STLink + +Which option? [0] 1 +[INFO ] Using "/dev/cu.usbmodem1103 - STM32 STLink". +[INFO ] Listening for serial output. + +tock$ list + PID ShortID Name Quanta Syscalls Restarts Grants State + 0 Unique blink 0 289 0 1/11 Yielded + 1 Unique ws-demo 640 6 0 1/11 Running +tock$ +``` + +You should be able to see the on-board LEDs flashing on the board. + +### Cooperation flaw + +Now, let's test the same scenario, but with a cooperative scheduling mechanism. You have to first change the kernel's scheduler in the board's `main.rs` file to use the `scheduler::cooperative::CooperativeSched`. Then you must re-flash the kernel by running `make flash`. Fortunately flashing the kernel should preserve the applications, so you will not have to re-flash them as well. + +After you are done flashing, check that both applications are present. You can try to reset the board a few times by running `reset` in tock's process console (the terminal you open by running `tockloader listen`). diff --git a/docs/embedded/1.Embassy/index.md b/docs/embedded/1.Embassy/index.md new file mode 100644 index 0000000..e367333 --- /dev/null +++ b/docs/embedded/1.Embassy/index.md @@ -0,0 +1,225 @@ +--- +title: Embassy +position: 1 +--- + +# Introduction + +[Embassy](https://github.com/embassy-rs/embassy) is a modern, `async` embedded framework for Rust. It provides efficient, non-blocking abstractions for microcontrollers. + +First, clone the `embassy-rs` repository. + +```shell +git clone git@github.com:embassy-rs/embassy.git +cd embassy +``` + +## Environment setup + +For those of you working in Visual Studio Code, the Embassy project has support for `rust-analyzer`. In order to properly set it up, make sure you correctly open the project's root folder (`embassy`), and modify the workspace settings according to the example bellow. + +```json title=".vscode/settings.json" +{ + // ... + + // Uncomment the target of your chip. + + // highlight-start + //"rust-analyzer.cargo.target": "thumbv6m-none-eabi", + "rust-analyzer.cargo.target": "thumbv7m-none-eabi", + //highlight-end + // "rust-analyzer.cargo.target": "thumbv7em-none-eabi", + //"rust-analyzer.cargo.target": "thumbv7em-none-eabihf", + //"rust-analyzer.cargo.target": "thumbv8m.main-none-eabihf", + "rust-analyzer.cargo.features": [ + // Comment these features + // highlight-start + // "stm32f446re", + // "time-driver-any", + // "unstable-pac", + // "exti", + // "rt", + // highlight-end + ], + "rust-analyzer.linkedProjects": [ + // highlight-next-line + "examples/stm32f4/Cargo.toml", + // To work on the examples, comment the line above and all of the cargo.features lines, + // then uncomment ONE line below to select the chip you want to work on. + // This makes rust-analyzer work on the example crate and all its dependencies. + // "examples/mspm0c1104/Cargo.toml", + // "examples/mspm0g3507/Cargo.toml", + // ... + ], +} + +``` + +## Blink an LED + +Fortunately, Embassy provides a variety of examples implemented for a multitude of hardware platforms, our **STM32F429ZI** included. Examples for our board can be found in the `examples/stm32f4` crate. Multiple examples can be found in the `src` folder, organized as separate *binaries*. To flash one of the examples, simply run: + +```shell +cd examples/stm32f4 +cargo run --bin +``` + +Go ahead and run the `blinky` example. You should get an output similar to this. + +```shell +cargo run --bin blinky + Compiling proc-macro2 v1.0.97 + Compiling unicode-ident v1.0.18 + ... + Compiling embassy-net v0.7.0 (/Users/danut/Work/eurotock/ipw-repos/embassy/embassy-net) + Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.33s + Running `probe-rs run --chip STM32F429ZITx target/thumbv7em-none-eabi/debug/blinky` + Erasing ✔ 100% [####################] 128.00 KiB @ 44.41 KiB/s (took 3s) + Programming ✔ 100% [####################] 81.00 KiB @ 31.50 KiB/s (took 3s) Finished in 5.46s +0.000000 [TRACE] BDCR ok: 00008200 (embassy_stm32 src/rcc/bd.rs:221) +0.000000 [DEBUG] flash: latency=0 (embassy_stm32 src/rcc/f247.rs:264) +0.000000 [DEBUG] rcc: Clocks { hclk1: MaybeHertz(16000000), hclk2: MaybeHertz(16000000), hclk3: MaybeHertz(16000000), hse: MaybeHertz(0), lse: MaybeHertz(0), lsi: MaybeHertz(0), pclk1: MaybeHertz(16000000), pclk1_tim: MaybeHertz(16000000), pclk2: MaybeHertz(16000000), pclk2_tim: MaybeHertz(16000000), pll1_q: MaybeHertz(0), plli2s1_p: MaybeHertz(0), plli2s1_q: MaybeHertz(0), plli2s1_r: MaybeHertz(0), pllsai1_q: MaybeHertz(0), rtc: MaybeHertz(32000), sys: MaybeHertz(16000000) } (embassy_stm32 src/rcc/mod.rs:71) +0.000152 [INFO ] Hello World! (blinky src/bin/blinky.rs:13) +0.000915 [INFO ] high (blinky src/bin/blinky.rs:18) +0.302062 [INFO ] low (blinky src/bin/blinky.rs:22) +``` + +### 3-bit Counter + +For this task, you will have to implement a 3-bit counter, using the 3 on-board LEDs and the `USER` button on board. + +You will need to create a new binary in the `src/bin` folder you can name `counter-3bit.rs`, starting from the `blinky.rs` example. + +```rust title="src/bin/counter-3bit.rs.rs" +#![no_std] +#![no_main] + +use defmt::*; +use embassy_executor::Spawner; +use embassy_stm32::gpio::{Level, Output, Speed}; +use embassy_time::Timer; +use {defmt_rtt as _, panic_probe as _}; + +#[embassy_executor::main] +async fn main(_spawner: Spawner) { + let p = embassy_stm32::init(Default::default()); + info!("Hello World!"); + + let mut led = Output::new(p.PB7, Level::High, Speed::Low); + + loop { + info!("high"); + led.set_high(); + Timer::after_millis(300).await; + + info!("low"); + led.set_low(); + Timer::after_millis(300).await; + } +} +``` + +The first step is figuring out the pins the other two LEDs are connected to. To do so, you can consult the board's [User Manual](https://www.st.com/resource/en/user_manual/um1974-stm32-nucleo144-boards-mb1137-stmicroelectronics.pdf). + +```rust title="src/bin/counter-3bit.rs.rs" +#[embassy_executor::main] +async fn main(_spawner: Spawner) { + let p = embassy_stm32::init(Default::default()); + info!("Hello World!"); + + let mut led0 = todo!("Replace me"); + let mut led1 = Output::new(p.PB7, Level::High, Speed::Low); + let mut led2 = todo!("Replace me"); + + loop { + // ... + } +} +``` + +Next, you will have to instantiate the button. We will want to use one of the external interrupt lines, in order to use the asynchronous methods for the user button. + +```rust +let button = ExtiInput::new(p.PC13, p.EXTI13, Pull::Down); +``` + +Make sure to fix all the import errors. + +Now, inside the main `loop`. Await for the button to be pressed in order to update the *"3-bit display"*. + +```rust title="src/bin/counter-3bit.rs.rs" +let mut counter = 0; +loop { + button.wait_for_high().await; + counter = (counter + 1) % 7; + + // Depending on the value of each of the three bits, + // set the LEDs high or low +} +``` + +### Improved `BinaryCounter` + +With everything in place, here comes the question of extending the functionalities. We would like for this display mechanism to be painlessly extensible to work with any number of LEDs. The quick and painless answer to this problem is generics. We must define a generic `BinaryCounter`. + +```rust title="src/bin/binary-counter.rs" +struct BinaryCounter<'a, const N: usize> { + inner_counter: usize, + leds: [Output<'a>; N], +} + +impl<'a, const N: usize> BinaryCounter<'a, N> { + fn new(leds: [Output<'a>; N]) -> Self { + Self { + inner_counter: 0, + leds, + } + } +} +``` + +Next, we will define the API for interacting with our display. We will have two methods, `increment` which will increase the inner counter's value by one unit and `display`, which will update the LEDs state. + +```rust title="src/bin/binary-counter.rs" +impl<'a, const N: usize> BinaryCounter<'a, N> { + fn new(leds: [Output<'a>; N]) -> Self { + Self { + inner_counter: 0, + leds, + } + } + + /// This function increases the inner counter + fn increment(&mut self) { + core::todo!() + } + + /// This function updates the state of the LEDs + /// according to the `inner_counter` value + fn display(&mut self) { + core::todo!() + } +} +``` + +With the interface in place, we can write the `main` function. + +```rust title="src/bin/binary-counter.rs" +#[embassy_executor::main] +async fn main(_spawner: Spawner) { + let p = embassy_stm32::init(Default::default()); + info!("Binary Demo!"); + + // TODO: `Output` definition + + let mut bc = BinaryCounter::new([led0, led1, led2]); + + let mut button = ExtiInput::new(p.PC13, p.EXTI13, Pull::Down); + + loop { + bc.display(); + button.wait_for_high().await; + bc.increment(); + } +} +``` diff --git a/docs/embedded/index.md b/docs/embedded/index.md index e8296de..ec6b596 100644 --- a/docs/embedded/index.md +++ b/docs/embedded/index.md @@ -1,241 +1,9 @@ -# Introduction +# Embedded Track -## Prerequisites +Rust in embedded systems. -:::note Ubuntu Virtual Machine -This workshop will not work on Windows systems. -You can use the Ubuntu VM we provide [here](https://drive.google.com/file/d/1WSUo29d9Z8bmcjurvkDUmoAgq1TqaW4H/view?usp=sharing) (only works on VirtualBox). -The username and password are both `ipwembedded`. -The VM has the port 3033 forwarded for SSH connection. +## Course Team -If you want to have the VM home directory mounted in Windows, use the following commands (with Admin PowerShell): - -```powershell -winget install -e --id WinFsp.WinFsp -winget install -e --id SSHFS-Win.SSHFS-Win -net use X: \\sshfs\ipwembedded@localhost!3033 -``` -::: - -If you did not attend the **Tock Workshop**, please follow the [Setup Tutorial](../tock_workshop/index.md). - -## Getting Started - -For this track we will be using the **Nucleo-F429ZI** boards. You will need to **change the branch** you are working on, but first make sure you commit your changes. - -```shell -git add . -git commit -m "tock workshop progress" -``` - -Then, to fetch the branch and work on it, run: - -```shell -git fetch -git checkout track/embedded -``` - -The board's main can be found in the `boards/nucleo_f429zi` subfolder. Try to flash the kernel to the board, using the board's `Makefile`. After you are done flashing, connect to the board using `tockloader listen` - -```shell -[INFO ] No device name specified. Using default name "tock". -[INFO ] No serial port with device name "tock" found. -[INFO ] Found 2 serial ports. -Multiple serial port options found. Which would you like to use? -[0] /dev/cu.debug-console - n/a -[1] /dev/cu.usbmodem1303 - STM32 STLink - -Which option? [0] 1 -[INFO ] Using "/dev/cu.usbmodem1303 - STM32 STLink". -[INFO ] Listening for serial output. - -tock$ -``` - -## Customize your kernel - -After connecting to Tock's terminal, you can run `help` to see the supported commands. One of them is `reset` and by running it, you can see the default *"welcome"* message. - -```shell -tock$ reset -Initialization complete. Entering main loop -tock$ -``` - -Personalize your kernel, by changing the hostname and the welcome message. - -## Print Counter Capsule - -For this task, you will need to build a capsule that prints a custom message each time it receives a print command from an application, along with a message counter representing the number of commands received. Remember that you will need to implement the `SyscallDriver` trait. - -### The simple way - -Simplest method to do this is to add a `counter` field in the capsule's structure. One issue you will most likely encounter is that the `command` method required by the `SyscallDriver` trait has a immutable reference to `&self`, so you may need to wrap the counter in a wrapper that allows for inner mutability, such as `Cell`. - -### The Tock way - -One issue with the previous approach is that the counter would be shared between the applications. This could be an issue for mutually distrustful application. Fortunately, Tock has a mechanism in place for such situations, called `Grant`s, which are per-process memory regions allocated by the kernel in a process memory region for a capsule to store that process’s state. - -![Grant](assets/grant.png) - -To access this region, you can simply add a new `grant` field in the capsule structure. - -```rust title="capsules/extra/src/print_counter.rs" -use kernel::grant::{AllowRoCount, AllowRwCount, Grant, UpcallCount}; - -// TODO: Define `App` structure. Make sure to satisfy trait constraints. -struct App; - -struct PrintCounter { - grant: Grant< - App, - UpcallCount<0>, // Number of upcalls supported by the capsule - AllowRoCount<0>, // Number of Read-Only buffers supported - AllowRwCount<0>, // Number of Read-Write buffers supported - >, -} -``` - -As before, we will need to define a component for this capsule, to initialize it. - -```rust title="boards/components/src/print_counter.rs" -#[macro_export] -macro_rules! print_counter_component_static { - ($(,)?) => {{ - kernel::static_buf!(capsules_extra::print_counter::PrintCounter) - };}; -} - -pub struct PrintCounterComponent; - -impl Component for PrintCounterComponent { - type StaticInput = &'static mut MaybeUninit; - - type Output = &'static capsules_extra::print_counter::PrintCounter; - - fn finalize(self, static_memory: Self::StaticInput) -> Self::Output { - todo!() - } -} -``` - -Grants are a sensitive component of the operating system, so the creation and management operations are considered unsafe, and require -privileges to perform. Tock restricts these privileged operations through the use of capabilities, which are tokens implementing `unsafe` traits. Because capsules are forbidden from using unsafe code, these tokens cannot be forged. - -Creating a grant is requires a reference to the board's kernel, and a driver number, so we will need to add these parts in the components. - -```rust title="boards/components/src/print_counter.rs" -pub struct PrintCounterComponent { - driver_num: usize, - board_kernel: &'static kernel::Kernel, -} - -impl PrintCounterComponent { - pub fn new(driver_num: usize, board_kernel: &'static kernel::Kernel) -> Self { - Self { - driver_num, - board_kernel, - } - } -} -``` - -The capability needed for grant creating is called `MemoryAllocationCapability`, and it can be found in the `kernel::capabilities` module. The `kernel` also exposes the `crate_capability!` macro for ease of use. - -```rust title="boards/components/src/print_counter.rs" -impl Component for PrintCounterComponent { - // ... - - fn finalize(self, static_memory: Self::StaticInput) -> Self::Output { - let grant_cap = create_capability!(capabilities::MemoryAllocationCapability); - let grant = self.board_kernel.create_grant(self.driver_num, &grant_cap); - - static_memory.write(capsules_extra::print_counter::PrintCounter::new(grant)) - } -} -``` - -:::note `new` constructor -You will also need to implement the `new` constructor for the `PrintCounter` capsule. -::: - -Next, you must implement the `SyscallDriver` trait, where the command logic will be. For the `allocate_grant` method implementation, it is enough to use the `enter` method of the Grant which takes a closure with two parameters. - -```rust -fn allocate_grant(&self, process_id: kernel::ProcessId) -> Result<(), kernel::process::Error> { - self.grant.enter(process_id, |_, _| {}) -} -``` - -For the command logic, you must also use the `enter` API. The first parameter of the closure will be a mutable reference to a `GrantData` wrapper over the previously defined `App`. The wrapper is transparent, meaning it permits accessing fields of the generic type. - -The next step is configuring the capsule in the board's main file. Remember you need to add the capsule in the `NucleoF429ZI` structure, the `SyscallDriverLookup` and initialize the printer counter capsule. - -## The role of a Scheduler - -This task aims to illustrate the importance of OS preemption in the context of untrusted applications. Currently the scheduler used by the board is `kernel::scheduler::RoundRobinSched`, which implements a classical scheduling algorithm, allowing each process to run up to a maximum time slice called **quanta**. In the event that an application tries starving all other processes, the kernel will interrupt the malicious application after its quanta expires and will then schedule another process. - -### Trust but verify - -:::warning app flashing - - -You will need to install `openocd` first. - -```shell -# Linux -sudo apt install openocd - -# Mac -brew install openocd -``` - -::: - -Your task will be to verify the previous claims, by flashing two C applications. One of them will be the `blink` example. After flashing the kernel by running `make flash` in the board's main directory (`boards/nucleo_f429zi`), you can load the application by running `make flash` in the example's root folder (`example/blink`). - -As there are no *"malicious"* examples, we will have to add them on our own. In this case, an app that would print a message, then just infinitely spin in a `while` loop is enough. For this, you can adapt the `examples/c_hello` example, the flash it. - -If you managed to flash both applications, you should be able to connect to the board using `tockloader listen` and see a similar output when running `list`: - -```shell -tockloader listen -[INFO ] No device name specified. Using default name "tock". -[INFO ] No serial port with device name "tock" found. -[INFO ] Found 2 serial ports. -Multiple serial port options found. Which would you like to use? -[0] /dev/cu.debug-console - n/a -[1] /dev/cu.usbmodem1103 - STM32 STLink - -Which option? [0] 1 -[INFO ] Using "/dev/cu.usbmodem1103 - STM32 STLink". -[INFO ] Listening for serial output. - -tock$ list - PID ShortID Name Quanta Syscalls Restarts Grants State - 0 Unique blink 0 289 0 1/11 Yielded - 1 Unique ws-demo 640 6 0 1/11 Running -tock$ -``` - -You should be able to see the on-board LEDs flashing on the board. - -### Cooperation flaw - -Now, let's test the same scenario, but with a cooperative scheduling mechanism. You have to first change the kernel's scheduler in the board's `main.rs` file to use the `scheduler::cooperative::CooperativeSched`. Then you must re-flash the kernel by running `make flash`. Fortunately flashing the kernel should preserve the applications, so you will not have to re-flash them as well. - -After you are done flashing, check that both applications are present. You can try to reset the board a few times by running `reset` in tock's process console (the terminal you open by running `tockloader listen`). +* Aldea George Dănuț +* Jipa Darius Andrei +* Niță Irina Cristina From b54d7b1b7ffcf7e4a955d463df0b6fe420a8d9e5 Mon Sep 17 00:00:00 2001 From: Irina Nita Date: Fri, 15 Aug 2025 21:36:34 +0300 Subject: [PATCH 4/8] added eeprom and i2c --- .../assets/i2c_10bit_address_transmission.svg | 1 + .../assets/i2c_7bit_address_transmission.svg | 1 + .../embedded/1.Embassy/assets/i2c_network.svg | 1 + docs/embedded/1.Embassy/index.md | 210 ++++++++++++++++++ 4 files changed, 213 insertions(+) create mode 100644 docs/embedded/1.Embassy/assets/i2c_10bit_address_transmission.svg create mode 100644 docs/embedded/1.Embassy/assets/i2c_7bit_address_transmission.svg create mode 100644 docs/embedded/1.Embassy/assets/i2c_network.svg diff --git a/docs/embedded/1.Embassy/assets/i2c_10bit_address_transmission.svg b/docs/embedded/1.Embassy/assets/i2c_10bit_address_transmission.svg new file mode 100644 index 0000000..05aa530 --- /dev/null +++ b/docs/embedded/1.Embassy/assets/i2c_10bit_address_transmission.svg @@ -0,0 +1 @@ +SCLSDAa9a8r/wacka7a6a5a4a3a2a1a0ackbyte1 | byte2 ... ackdatastartupper addrcmdlower addresspayload bytesstop \ No newline at end of file diff --git a/docs/embedded/1.Embassy/assets/i2c_7bit_address_transmission.svg b/docs/embedded/1.Embassy/assets/i2c_7bit_address_transmission.svg new file mode 100644 index 0000000..b04e30a --- /dev/null +++ b/docs/embedded/1.Embassy/assets/i2c_7bit_address_transmission.svg @@ -0,0 +1 @@ +SCLSDAa6a5a4a3a2a1a0r/wackbyte 1 ackbyte 2 ackdatastartaddresscmdpayload bytesstop \ No newline at end of file diff --git a/docs/embedded/1.Embassy/assets/i2c_network.svg b/docs/embedded/1.Embassy/assets/i2c_network.svg new file mode 100644 index 0000000..f910b70 --- /dev/null +++ b/docs/embedded/1.Embassy/assets/i2c_network.svg @@ -0,0 +1 @@ +
SDA
SDA
SCL
SCL
Controller
Controller
Target
@0x12
Target@0x12
Target
@0x17
Target@0x17
Target
@0x5e
Target@0x5e
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/embedded/1.Embassy/index.md b/docs/embedded/1.Embassy/index.md index e367333..29e794b 100644 --- a/docs/embedded/1.Embassy/index.md +++ b/docs/embedded/1.Embassy/index.md @@ -223,3 +223,213 @@ async fn main(_spawner: Spawner) { } } ``` + +### I2C + +The Inter-Integrated Circuit (I2C) is a synchronous, multi-controller/multi-target communication protocol. Similarly to the SPI, it allows data transfer between a controller and one or more peripheral ICs, but it uses only 2 wires (1 data line and 1 clock line, making it half-duplex) and has a different way of addressing the peripherals: using their unique *addresses*. + +#### Configuration + +![I2C_protocol](assets/i2c_network.svg) + +I2C transmission uses 2 lines: + +- **SCL** - **S**erial **CL**ock line - clock is generated by the controller - used to synchronize communication between the controller and the targets +- **SDA** - **S**erial **DA**ta line - carries data between the controller and the addressed target + - targets read data from SDA **only** when the clock is *low* + - targets write data to SDA **only** when the clock is *high* + +:::info Half duplex +The communication is *half-duplex*. This means that data is transmitted only in one direction at a time, since there is only *one* data line that can be used both for sending data to the target and receiving data from the target. +::: + +:::info I2C inner works +The `SDA` and `SCL` wires are never actually driven (set to `LOW`/`HIGH`) by the controller/peripherals. The line is controlled by either pulling the line low or releasing the line high. + +When the line is *pulled down*, this means that it is connected directly to `GND`. This electronically translates to `LOW`. + +When the line is *released*, or *pulled up*, this means that it connects back to `3V3` (which we can consider as being the "default" state of the wire) through a pull-up resistor. This electronically translates to `HIGH`. + +This is called *open-drain connection*. You can read more about how it works [here](https://www.ti.com/lit/an/sbaa565/sbaa565.pdf?ts=1712891793335#:~:text=I2C%20is%20a%20two%2Dwire,and%20receive%20commands%20and%20data.), at section 2.2. +::: + +#### Data transmission + +Each target is associated with a unique *address*. The controller uses this address to initiate communication with that target. This address can either be 7 or 10 bits. + +##### Initiation + +Before the transmission, both the `SCL` and `SDA` lines are set to `HIGH`. First thing the controller does is to signal a `start` condition by pulling the `SDA` line to `LOW`. All targets understand that the communication is about to commence and listen on the `SDA` line. Next, the controller starts the clock and begins to write the address of the target it wants to talk to, followed by a command bit that signifies whether the controller wants to *read* from the target or *write* to it. Whichever target recognizes its address, responds with an `ACK` (acknowledged), by pulling the `SDA` to `LOW`. If no target responds and the `SDA` stays `HIGH`, then it is considered a `NACK` (not acknowledged). Afterwards, the data transmission can begin. + +##### Transmission + +Depending on the command bit (R/W), either the controller or the target begins to send data over the `SDA` line. Data is sent one byte at a time, and then acknowledged by the receiver. One sequence of a data byte and `ack` is called a *frame*. + +During the communication, data can be: +- written to the `SDA` line *only* when `SCL` is `LOW` or +- read from the `SDA` line *only* when `SCL` is `HIGH`. + +##### End + +To end the transmission, the controller signals a `stop` condition. This is done by releasing the `SCL` line to `HIGH`, and then also releasing the `SDA` line. Since data can be written *only* when `SCL` is `LOW`, the target understands that this is a special event, that means that the communication has ended. + +![i2c_transmission](assets/i2c_7bit_address_transmission.svg) + +:::note 10-bit addresses +For 10-bit addresses, the controller first issues a specific sequence of bits. This sequence is reserved, therefore targets with 7-bit addresses are prohibited from having addresses that start with this sequence. These bits mark the fact that the controller is attempting to initiate communication with a target with a 10-bit address, so all 7-bit targets ignore the `SDA` line once they recognize this sequence. After the special sequence, the controller sends the upper 2 bits of the address and the command bit, then waits for an `ack` from the target(s) that have an address that begins with these 2 bits. Afterwards, it sends the rest of the address, and waits for an acknowledgement from the target. + +![i2c_transmission_10_bit](assets/i2c_10bit_address_transmission.svg) +::: + +#### I2C in Embassy + +These are the I2C imports we will be using. We will use the functions provided by the `embedded_hal_async` crate, since these are standard and used by most frameworks. + +```rust +use embassy_stm32::i2c::I2c; +use embassy_stm32::{bind_interrupts, i2c, peripherals}; +``` + +:::info `I2c` trait importing +We use `I2c as _` from `embedded_hal_async` because in order to use the trait methods, we need to import it. +::: + +We start by initializing the peripherals. + +```rust +let peripherals = embassy_stm32::init(Default::default()); +``` + +Next, we declare the pins we will be using for the SDA and SCL lines. We can find which pins of the Raspberry Pi Pico have these functions by looking at the pinout. + +```rust +let sda = peripherals.PIN_X; +let scl = peripherals.PIN_Y; +``` + +We then initialize our I2C instance, using the pins we defined earlier and a default configuration. It's recommended to use the asynchronous version, since it won't block the executor. + +```rust +/// I2C +let mut i2c = I2c::new_async(peripherals.I2CX, scl, sda, Irqs, peripherals.DMAX_CHX, peripherals.DMAX_CHX, Default::default()); +``` + +The first argument of the `new` function is the I2C channel that will be used. Each has multiple sets of pins that can be used for and you can find them marked in blue on the pinout diagram. + +The `Irqs` variable refers to the interrupt that the I2C driver will use when handling transfers. We also need to bind this interrupt, which depends on the I2C channel we are working with. + +```rust +bind_interrupts!(struct Irqs { + I2C1_EV => i2c::EventInterruptHandler; + I2C1_ER => i2c::ErrorInterruptHandler; +}); +``` + +:::warning `I2cConfig` and `I2cInterruptHandler` are renamed imports +Because of the Embassy project naming convention, multiple `Config`s and `InterruptHandler`s can exist in one file. To solve this without having to prefix them with their respective module in code every time we use them (i.e use `i2c::Config` and `i2c::InterruptHandler`), in the code examples above `I2cConfig` and `I2CInterruptHandler` are renamed imports: +```rust +use embassy_stm32::i2c::{I2c, InterruptHandler as I2CInterruptHandler, Config as I2cConfig}; +``` +::: + +#### Reading from a target + +To read from a target, we will be using the `read` **async** function of the I2C driver. + +The function takes 2 parameters: +- the address of the target we are attempting to receive the data from +- the *receiving* buffer in which we will store the data received from the target + +The following example reads two bytes from the target of address `0x44`. + +```rust +const TARGET_ADDR: u16 = 0x44; +let mut rx_buf = [0x00u8; 2]; +i2c.read(TARGET_ADDR, &mut rx_buf).await.unwrap(); +``` + +#### Writing to a target + +To write data to a target, we will be using the `write` **async** function of the I2C driver. + +This function also takes 2 parameters: +- the address of the target we are attempting to transmit the data to +- the *transmitting* buffer that contains the data we want to send to the target + +The following example writes two bytes to the target of address `0x44`. + +```rust +const TARGET_ADDR: u16 = 0x44; +let tx_buf = [0x01, 0x05]; +i2c.write(TARGET_ADDR, &tx_buf).await.unwrap(); +``` + +:::info +We can also use `write_read` if we want to perform both a write and a read one after the other. + +```rust +i2c.write_read(TARGET_ADDR, &tx_buf, &mut rx_buf).await.unwrap(); +``` +::: + +### AT24C256 EEPROM + +The AT24C256 is a 256-kilobit **Electrically Erasable Programmable Read-Only Memory** (EEPROM) device that communicates using the I2C protocol. It is commonly used for storing non-volatile data, such as configuration settings or calibration data, which need to persist even when the device is powered off. + +#### Device Addressing + +The AT24C256 uses a 7-bit I2C address, with the most significant 5 bits fixed as `10100`. The remaining 2 bits are configurable by connecting the `A1` and `A0` pins to either `GND` or `VCC`, allowing up to 4 devices to be connected on the same I2C bus. Knowing the state of the pins, you can determine the address using the formula: `0x50 | (A1 << 1) | A0`. To determine the address of the EEPROM used by our board, you can check the [schematic](https://gitlab.cs.pub.ro/pmrust/pm-ma-pcb/-/blob/main/Schematic/MA.pdf?ref_type=heads) or perform an I2C scan. + +#### Memory Organization + +The memory is organized into 32,768 bytes, divided into 512 pages of 64 bytes each. Each byte can be accessed individually, or multiple bytes can be written/read in a single operation using page addressing. + +##### Reading from the AT24C256 + +To read data from the EEPROM, you first need to write the memory address you want to read, then read the byte at that memory location. Because we are working with 32,768 bytes of memory (which is 215 bytes), we are working about 2-byte addresses that need to be sent **High byte** first (big endian). + +```rust +let mem_addr: u16 = 0xCAFE; // 16 bit address +let memory_address: [u8; 2] = mem_addr.to_be_bytes(); // `be` stands for big endian +let mut data: [u8; 1] = [0]; + +i2c.write_read(EEPROM_ADDR, &memory_address, &mut data).await.unwrap(); +``` + +:::note Sequential read +The AT24C256 supports sequential reads. After the EEPROM sends a data word (byte), if the microcontroller sends a responds with an **ACK** instead of a **Stop Condition** the memory will continue to increment the internal data word address and serially clock out sequential data words. When the memory address limit is reached, the data word address will *"roll over"* (begin writing from the beginning) and the sequential read will continue. + +This means that we can read multiple consecutive bytes: + +```rust +let mem_addr: u16 = 0xBABE; // 16 bit address +let mem_buff: [u8; 2] = mem_addr.to_be_bytes(); // `be` stands for big endian +let mut data: [u8; 10] = [0; 10]; + +i2c.write_read(EEPROM_ADDR, &mem_buff, &mut data).await.unwrap(); +``` +::: + +##### Writing to the AT24C256 + +The EEPROM supports the writing of up to 64 bytes (one page) in a single transaction. The microcontroller performs a write transaction where the first two bytes are the 16-bit memory location in big endian format, followed by a number of bytes that should be written, starting from that respective address. The particularity of this memory module is that, for a write within a **page** when reaching the upper page boundary, the internal data word address would do a *"roll over"* to the address of the first byte of the same page. + +```rust +let mem_addr: u16 = 0xBABE; // 16 bit address +let mem_buff: [u8; 2] = mem_addr.to_be_bytes(); // `be` stands for big endian +let data: [u8; 8] = [0xCA, 0xFE, 0xBA, 0xBE, 0xDE, 0xAD, 0xBE, 0xEF]; + +let mut tx_buf = [0x00; 8 + 2]; +tx_buf[..2].copy_from_slice(&mem_buff); +tx_buf[2..].copy_from_slice(&data); + +i2c.write(EEPROM_ADDR, &tx_buf).await.unwrap(); +``` + +:::danger Write delay +After each complete memory write transaction, the EEPROM an internally-timed write cycle of roughly **5ms**. If you have to perform a series of consecutive writes, make sure to space them out appropriately. +::: + +#### `eeprom24x` crate + +To simplify the interfacing with the non-volatile memory for your **project**, you can use the [`eeprom24x`](https://crates.io/crates/eeprom24x) crate. It is a is a platform agnostic Rust driver for the 24x series serial EEPROM, based on the [`embedded-hal`](https://docs.rs/embedded-hal/1.0.0/embedded_hal/) traits. This means that you will not be able to harness the power of the async executor, and you will need to use the conventional **blocking** API. From 940868a1f26fa252ae417c61995c0c8e741c72eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George-D=C4=83nu=C8=9B=20Aldea?= Date: Sat, 16 Aug 2025 10:54:02 +0300 Subject: [PATCH 5/8] fixed broken link --- docs/embedded/0.Tock/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/embedded/0.Tock/index.md b/docs/embedded/0.Tock/index.md index ced22e8..fa4d802 100644 --- a/docs/embedded/0.Tock/index.md +++ b/docs/embedded/0.Tock/index.md @@ -14,7 +14,7 @@ The username and password are both `ipwembedded`. The VM has the port 3033 forwarded for SSH connection. ::: -If you did not attend the **Tock Workshop**, please follow the [Setup Tutorial](../tock_workshop/index.md). +If you did not attend the **Tock Workshop**, please follow the [Setup Tutorial](../../tock_workshop/index.md). ## Getting Started From c1a191b4c7409e9461c814bf5dfeb939968b3ea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George-D=C4=83nu=C8=9B=20Aldea?= Date: Sat, 16 Aug 2025 11:31:36 +0300 Subject: [PATCH 6/8] re-added VM mount info --- docs/embedded/0.Tock/index.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/embedded/0.Tock/index.md b/docs/embedded/0.Tock/index.md index fa4d802..0174649 100644 --- a/docs/embedded/0.Tock/index.md +++ b/docs/embedded/0.Tock/index.md @@ -12,6 +12,14 @@ This workshop will not work on Windows systems. You can use the Ubuntu VM we provide [here](https://drive.google.com/file/d/1WSUo29d9Z8bmcjurvkDUmoAgq1TqaW4H/view?usp=sharing) (only works on VirtualBox). The username and password are both `ipwembedded`. The VM has the port 3033 forwarded for SSH connection. + +If you want to have the VM home directory mounted in Windows, use the following commands (with Admin PowerShell): + +```powershell +winget install -e --id WinFsp.WinFsp +winget install -e --id SSHFS-Win.SSHFS-Win +net use X: \\sshfs\ipwembedded@localhost!3033 +``` ::: If you did not attend the **Tock Workshop**, please follow the [Setup Tutorial](../../tock_workshop/index.md). From 729bfdb71aa7c06052aaf4fb7996cccf68ee0b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?George-D=C4=83nu=C8=9B=20Aldea?= Date: Sat, 16 Aug 2025 11:32:28 +0300 Subject: [PATCH 7/8] added async subchapter --- docs/embedded/1.Embassy/index.md | 49 ++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/docs/embedded/1.Embassy/index.md b/docs/embedded/1.Embassy/index.md index 29e794b..7444c4f 100644 --- a/docs/embedded/1.Embassy/index.md +++ b/docs/embedded/1.Embassy/index.md @@ -244,7 +244,7 @@ The communication is *half-duplex*. This means that data is transmitted only in ::: :::info I2C inner works -The `SDA` and `SCL` wires are never actually driven (set to `LOW`/`HIGH`) by the controller/peripherals. The line is controlled by either pulling the line low or releasing the line high. +The `SDA` and `SCL` wires are never actually driven (set to `LOW`/`HIGH`) by the controller/peripherals. The line is controlled by either pulling the line low or releasing the line high. When the line is *pulled down*, this means that it is connected directly to `GND`. This electronically translates to `LOW`. @@ -263,15 +263,16 @@ Before the transmission, both the `SCL` and `SDA` lines are set to `HIGH`. First ##### Transmission -Depending on the command bit (R/W), either the controller or the target begins to send data over the `SDA` line. Data is sent one byte at a time, and then acknowledged by the receiver. One sequence of a data byte and `ack` is called a *frame*. +Depending on the command bit (R/W), either the controller or the target begins to send data over the `SDA` line. Data is sent one byte at a time, and then acknowledged by the receiver. One sequence of a data byte and `ack` is called a *frame*. During the communication, data can be: + - written to the `SDA` line *only* when `SCL` is `LOW` or - read from the `SDA` line *only* when `SCL` is `HIGH`. ##### End -To end the transmission, the controller signals a `stop` condition. This is done by releasing the `SCL` line to `HIGH`, and then also releasing the `SDA` line. Since data can be written *only* when `SCL` is `LOW`, the target understands that this is a special event, that means that the communication has ended. +To end the transmission, the controller signals a `stop` condition. This is done by releasing the `SCL` line to `HIGH`, and then also releasing the `SDA` line. Since data can be written *only* when `SCL` is `LOW`, the target understands that this is a special event, that means that the communication has ended. ![i2c_transmission](assets/i2c_7bit_address_transmission.svg) @@ -353,6 +354,7 @@ i2c.read(TARGET_ADDR, &mut rx_buf).await.unwrap(); To write data to a target, we will be using the `write` **async** function of the I2C driver. This function also takes 2 parameters: + - the address of the target we are attempting to transmit the data to - the *transmitting* buffer that contains the data we want to send to the target @@ -433,3 +435,44 @@ After each complete memory write transaction, the EEPROM an internally-timed wri #### `eeprom24x` crate To simplify the interfacing with the non-volatile memory for your **project**, you can use the [`eeprom24x`](https://crates.io/crates/eeprom24x) crate. It is a is a platform agnostic Rust driver for the 24x series serial EEPROM, based on the [`embedded-hal`](https://docs.rs/embedded-hal/1.0.0/embedded_hal/) traits. This means that you will not be able to harness the power of the async executor, and you will need to use the conventional **blocking** API. + +## Asynchronous basics + +Until now you've only worked with simple (almost) serial programs. However, not all programs can be designed to run serially/sequentially. Handling multiple I/O events concurrently usually requires separate parallel tasks. For example, reading a button press while blinking an LED. A single loop would block the button reading event while waiting for the timer to finish. + +To address this issue, we would need to spawn a new task in which we would wait for the button press, while blinking the LED in the `main` function. + +The signature of the task that toggles the LED when the button is pressed would need to receive both an `Input` and `Output` as arguments. + +```rust title="src/bin/button_task.rs" +#[embassy_executor::task] +async fn button_task(mut led: Output<'static>, mut btn: ExtiInput<'static>) { + loop { + // TODO: + // * `await` button rising edge + // * print message with `info!` + // * toggle LED + } +} +``` + +In the main function, tasks can be spawned using the `Spawner` provided as an argument. + +```rust title="src/bin/button_task.rs" +#[embassy_executor::main] +async fn main(spawner: Spawner) { + let p = embassy_stm32::init(Default::default()); + + // TODO: initialize LEDs and button + + spawner.must_spawn(button_task(led, btn)); + + loop { + // Handle other LED blink + } +} +``` + +To periodically blink and LED, you will need to be able to introduce a delay. You can do so manually, by introducing a `for` loop with a number of steps that takes into account the frequency of the processor. The issue with this method is that it would do a *"busy loop"* where the processor spends both time and energy doing unproductive instructions. + +This approach does not benefit from the underlying `async` that could schedule another task with available work to be executed. If you want to introduce delays the *`embassy`* way, you can do it using the `Timer` interface, specifically the `Timer::after()` function which takes a `Duration`, or the more direct `after_milis`, `after_secs`, etc. From 20908a6a6fa77eeca631dbd67a4259050fda24f3 Mon Sep 17 00:00:00 2001 From: Irina Nita Date: Mon, 18 Aug 2025 10:53:49 +0300 Subject: [PATCH 8/8] added shield schematic --- docs/embedded/1.Embassy/assets/sch.png | Bin 0 -> 270672 bytes docs/embedded/1.Embassy/index.md | 8 ++++++++ 2 files changed, 8 insertions(+) create mode 100644 docs/embedded/1.Embassy/assets/sch.png diff --git a/docs/embedded/1.Embassy/assets/sch.png b/docs/embedded/1.Embassy/assets/sch.png new file mode 100644 index 0000000000000000000000000000000000000000..e89f1537d3a9a7611f1d2d017fc7c26b9115fc0c GIT binary patch literal 270672 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

OmxG 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 literal 0 HcmV?d00001 diff --git a/docs/embedded/1.Embassy/index.md b/docs/embedded/1.Embassy/index.md index 107ff56..0da6981 100644 --- a/docs/embedded/1.Embassy/index.md +++ b/docs/embedded/1.Embassy/index.md @@ -476,3 +476,11 @@ async fn main(spawner: Spawner) { To periodically blink and LED, you will need to be able to introduce a delay. You can do so manually, by introducing a `for` loop with a number of steps that takes into account the frequency of the processor. The issue with this method is that it would do a *"busy loop"* where the processor spends both time and energy doing unproductive instructions. This approach does not benefit from the underlying `async` that could schedule another task with available work to be executed. If you want to introduce delays the *`embassy`* way, you can do it using the `Timer` interface, specifically the `Timer::after()` function which takes a `Duration`, or the more direct `after_milis`, `after_secs`, etc. + +:::note Shield schematic + +Schematic for the OxidOS shield that you can use in the project: + +![shield](assets/sch.png) + +:::