aboutsummaryrefslogtreecommitdiff
path: root/docs/examples/layer-by-layer
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/layer-by-layer')
-rw-r--r--docs/examples/layer-by-layer/.cargo/config.toml3
-rw-r--r--docs/examples/layer-by-layer/Cargo.toml5
-rw-r--r--docs/examples/layer-by-layer/blinky-async/Cargo.toml20
-rw-r--r--docs/examples/layer-by-layer/blinky-hal/Cargo.toml18
-rw-r--r--docs/examples/layer-by-layer/blinky-irq/Cargo.toml20
-rw-r--r--docs/examples/layer-by-layer/blinky-pac/Cargo.toml18
-rw-r--r--docs/examples/layer-by-layer/blinky-pac/src/main.rs48
-rw-r--r--docs/examples/layer-by-layer/memory.x5
8 files changed, 78 insertions, 59 deletions
diff --git a/docs/examples/layer-by-layer/.cargo/config.toml b/docs/examples/layer-by-layer/.cargo/config.toml
index 3012f05dc..f30d9e446 100644
--- a/docs/examples/layer-by-layer/.cargo/config.toml
+++ b/docs/examples/layer-by-layer/.cargo/config.toml
@@ -1,5 +1,6 @@
1[target.'cfg(all(target_arch = "arm", target_os = "none"))'] 1[target.'cfg(all(target_arch = "arm", target_os = "none"))']
2runner = "probe-run --chip STM32L475VG" 2# replace your chip as listed in `probe-rs chip list`
3runner = "probe-rs run --chip STM32L475VG"
3 4
4rustflags = [ 5rustflags = [
5 "-C", "link-arg=--nmagic", 6 "-C", "link-arg=--nmagic",
diff --git a/docs/examples/layer-by-layer/Cargo.toml b/docs/examples/layer-by-layer/Cargo.toml
index 0f233eae5..01666ec6e 100644
--- a/docs/examples/layer-by-layer/Cargo.toml
+++ b/docs/examples/layer-by-layer/Cargo.toml
@@ -3,14 +3,9 @@ resolver = "2"
3members = [ 3members = [
4 "blinky-pac", 4 "blinky-pac",
5 "blinky-hal", 5 "blinky-hal",
6 "blinky-irq",
7 "blinky-async", 6 "blinky-async",
8] 7]
9 8
10[patch.crates-io]
11embassy-executor = { path = "../../../embassy-executor" }
12embassy-stm32 = { path = "../../../embassy-stm32" }
13
14[profile.release] 9[profile.release]
15codegen-units = 1 10codegen-units = 1
16debug = 2 11debug = 2
diff --git a/docs/examples/layer-by-layer/blinky-async/Cargo.toml b/docs/examples/layer-by-layer/blinky-async/Cargo.toml
index 64f7e8403..797ae3097 100644
--- a/docs/examples/layer-by-layer/blinky-async/Cargo.toml
+++ b/docs/examples/layer-by-layer/blinky-async/Cargo.toml
@@ -1,15 +1,21 @@
1[package] 1[package]
2name = "blinky-async" 2name = "blinky-async"
3version = "0.1.0" 3version = "0.1.0"
4edition = "2021" 4edition = "2024"
5license = "MIT OR Apache-2.0" 5license = "MIT OR Apache-2.0"
6 6
7publish = false
7[dependencies] 8[dependencies]
8cortex-m = "0.7" 9cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
9cortex-m-rt = "0.7" 10cortex-m-rt = "0.7"
10embassy-stm32 = { version = "0.1.0", features = ["stm32l475vg", "memory-x", "exti"] } 11embassy-stm32 = { version = "0.4.0", path = "../../../../embassy-stm32", features = ["stm32l475vg", "memory-x", "exti"] }
11embassy-executor = { version = "0.5.0", features = ["arch-cortex-m", "executor-thread"] } 12embassy-executor = { version = "0.9.0", path = "../../../../embassy-executor", features = ["arch-cortex-m", "executor-thread"] }
12 13
13defmt = "0.3.0" 14defmt = "1.0.1"
14defmt-rtt = "0.3.0" 15defmt-rtt = "1.0.0"
15panic-probe = { version = "0.3.0", features = ["print-defmt"] } 16panic-probe = { version = "1.0.0", features = ["print-defmt"] }
17
18[package.metadata.embassy]
19build = [
20 { target = "thumbv7em-none-eabi" }
21]
diff --git a/docs/examples/layer-by-layer/blinky-hal/Cargo.toml b/docs/examples/layer-by-layer/blinky-hal/Cargo.toml
index c15de2db2..802b8b32e 100644
--- a/docs/examples/layer-by-layer/blinky-hal/Cargo.toml
+++ b/docs/examples/layer-by-layer/blinky-hal/Cargo.toml
@@ -1,14 +1,20 @@
1[package] 1[package]
2name = "blinky-hal" 2name = "blinky-hal"
3version = "0.1.0" 3version = "0.1.0"
4edition = "2021" 4edition = "2024"
5license = "MIT OR Apache-2.0" 5license = "MIT OR Apache-2.0"
6 6
7publish = false
7[dependencies] 8[dependencies]
8cortex-m = "0.7"
9cortex-m-rt = "0.7" 9cortex-m-rt = "0.7"
10embassy-stm32 = { version = "0.1.0", features = ["stm32l475vg", "memory-x"] } 10cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
11embassy-stm32 = { version = "0.4.0", path = "../../../../embassy-stm32", features = ["stm32l475vg", "memory-x"] }
11 12
12defmt = "0.3.0" 13defmt = "1.0.1"
13defmt-rtt = "0.3.0" 14defmt-rtt = "1.0.0"
14panic-probe = { version = "0.3.0", features = ["print-defmt"] } 15panic-probe = { version = "1.0.0", features = ["print-defmt"] }
16
17[package.metadata.embassy]
18build = [
19 { target = "thumbv7em-none-eabi" }
20]
diff --git a/docs/examples/layer-by-layer/blinky-irq/Cargo.toml b/docs/examples/layer-by-layer/blinky-irq/Cargo.toml
index 9733658b6..d1b893a1e 100644
--- a/docs/examples/layer-by-layer/blinky-irq/Cargo.toml
+++ b/docs/examples/layer-by-layer/blinky-irq/Cargo.toml
@@ -1,14 +1,22 @@
1[workspace]
2
1[package] 3[package]
2name = "blinky-irq" 4name = "blinky-irq"
3version = "0.1.0" 5version = "0.1.0"
4edition = "2021" 6edition = "2024"
5license = "MIT OR Apache-2.0" 7license = "MIT OR Apache-2.0"
6 8
9publish = false
7[dependencies] 10[dependencies]
8cortex-m = "0.7" 11cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
9cortex-m-rt = { version = "0.7" } 12cortex-m-rt = { version = "0.7" }
10embassy-stm32 = { version = "0.1.0", features = ["stm32l475vg", "memory-x", "unstable-pac"] } 13embassy-stm32 = { version = "0.4.0", path = "../../../../embassy-stm32", features = ["stm32l475vg", "memory-x", "unstable-pac"] }
14
15defmt = "1.0.1"
16defmt-rtt = "1.0.0"
17panic-probe = { version = "1.0.0", features = ["print-defmt"] }
11 18
12defmt = "0.3.0" 19[package.metadata.embassy]
13defmt-rtt = "0.3.0" 20build = [
14panic-probe = { version = "0.3.0", features = ["print-defmt"] } 21 { target = "thumbv7em-none-eabi" }
22]
diff --git a/docs/examples/layer-by-layer/blinky-pac/Cargo.toml b/docs/examples/layer-by-layer/blinky-pac/Cargo.toml
index f872b94cb..fa093a3af 100644
--- a/docs/examples/layer-by-layer/blinky-pac/Cargo.toml
+++ b/docs/examples/layer-by-layer/blinky-pac/Cargo.toml
@@ -1,14 +1,20 @@
1[package] 1[package]
2name = "blinky-pac" 2name = "blinky-pac"
3version = "0.1.0" 3version = "0.1.0"
4edition = "2021" 4edition = "2024"
5license = "MIT OR Apache-2.0" 5license = "MIT OR Apache-2.0"
6 6
7publish = false
7[dependencies] 8[dependencies]
8cortex-m = "0.7" 9cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
9cortex-m-rt = "0.7" 10cortex-m-rt = "0.7"
10stm32-metapac = { version = "1", features = ["stm32l475vg", "memory-x"] } 11stm32-metapac = { version = "16", features = ["stm32l475vg"] }
11 12
12defmt = "0.3.0" 13defmt = "1.0.1"
13defmt-rtt = "0.3.0" 14defmt-rtt = "1.0.0"
14panic-probe = { version = "0.3.0", features = ["print-defmt"] } 15panic-probe = { version = "1.0.0", features = ["print-defmt"] }
16
17[package.metadata.embassy]
18build = [
19 { target = "thumbv7em-none-eabi" }
20]
diff --git a/docs/examples/layer-by-layer/blinky-pac/src/main.rs b/docs/examples/layer-by-layer/blinky-pac/src/main.rs
index 990d46cb6..cfbd91306 100644
--- a/docs/examples/layer-by-layer/blinky-pac/src/main.rs
+++ b/docs/examples/layer-by-layer/blinky-pac/src/main.rs
@@ -8,46 +8,38 @@ use {defmt_rtt as _, panic_probe as _, stm32_metapac as pac};
8fn main() -> ! { 8fn main() -> ! {
9 // Enable GPIO clock 9 // Enable GPIO clock
10 let rcc = pac::RCC; 10 let rcc = pac::RCC;
11 unsafe { 11 rcc.ahb2enr().modify(|w| {
12 rcc.ahb2enr().modify(|w| { 12 w.set_gpioben(true);
13 w.set_gpioben(true); 13 w.set_gpiocen(true);
14 w.set_gpiocen(true); 14 });
15 });
16 15
17 rcc.ahb2rstr().modify(|w| { 16 rcc.ahb2rstr().modify(|w| {
18 w.set_gpiobrst(true); 17 w.set_gpiobrst(true);
19 w.set_gpiocrst(true); 18 w.set_gpiocrst(true);
20 w.set_gpiobrst(false); 19 w.set_gpiobrst(false);
21 w.set_gpiocrst(false); 20 w.set_gpiocrst(false);
22 }); 21 });
23 }
24 22
25 // Setup button 23 // Setup button
26 let gpioc = pac::GPIOC; 24 let gpioc = pac::GPIOC;
27 const BUTTON_PIN: usize = 13; 25 const BUTTON_PIN: usize = 13;
28 unsafe { 26 gpioc.pupdr().modify(|w| w.set_pupdr(BUTTON_PIN, vals::Pupdr::PULL_UP));
29 gpioc.pupdr().modify(|w| w.set_pupdr(BUTTON_PIN, vals::Pupdr::PULLUP)); 27 gpioc.otyper().modify(|w| w.set_ot(BUTTON_PIN, vals::Ot::PUSH_PULL));
30 gpioc.otyper().modify(|w| w.set_ot(BUTTON_PIN, vals::Ot::PUSHPULL)); 28 gpioc.moder().modify(|w| w.set_moder(BUTTON_PIN, vals::Moder::INPUT));
31 gpioc.moder().modify(|w| w.set_moder(BUTTON_PIN, vals::Moder::INPUT));
32 }
33 29
34 // Setup LED 30 // Setup LED
35 let gpiob = pac::GPIOB; 31 let gpiob = pac::GPIOB;
36 const LED_PIN: usize = 14; 32 const LED_PIN: usize = 14;
37 unsafe { 33 gpiob.pupdr().modify(|w| w.set_pupdr(LED_PIN, vals::Pupdr::FLOATING));
38 gpiob.pupdr().modify(|w| w.set_pupdr(LED_PIN, vals::Pupdr::FLOATING)); 34 gpiob.otyper().modify(|w| w.set_ot(LED_PIN, vals::Ot::PUSH_PULL));
39 gpiob.otyper().modify(|w| w.set_ot(LED_PIN, vals::Ot::PUSHPULL)); 35 gpiob.moder().modify(|w| w.set_moder(LED_PIN, vals::Moder::OUTPUT));
40 gpiob.moder().modify(|w| w.set_moder(LED_PIN, vals::Moder::OUTPUT));
41 }
42 36
43 // Main loop 37 // Main loop
44 loop { 38 loop {
45 unsafe { 39 if gpioc.idr().read().idr(BUTTON_PIN) == vals::Idr::LOW {
46 if gpioc.idr().read().idr(BUTTON_PIN) == vals::Idr::LOW { 40 gpiob.bsrr().write(|w| w.set_bs(LED_PIN, true));
47 gpiob.bsrr().write(|w| w.set_bs(LED_PIN, true)); 41 } else {
48 } else { 42 gpiob.bsrr().write(|w| w.set_br(LED_PIN, true));
49 gpiob.bsrr().write(|w| w.set_br(LED_PIN, true));
50 }
51 } 43 }
52 } 44 }
53} 45}
diff --git a/docs/examples/layer-by-layer/memory.x b/docs/examples/layer-by-layer/memory.x
new file mode 100644
index 000000000..69f5b28a1
--- /dev/null
+++ b/docs/examples/layer-by-layer/memory.x
@@ -0,0 +1,5 @@
1MEMORY
2{
3 FLASH : ORIGIN = 0x08000000, LENGTH = 2048K /* BANK_1 */
4 RAM : ORIGIN = 0x20000000, LENGTH = 640K /* SRAM */
5}