Move bootloader main to examples
This should remove some confusion around embassy-boot-* being a library vs. a binary. The binary is now an example bootloader instead.
This commit is contained in:
parent
84628d36cf
commit
776be79f7b
18
ci.sh
18
ci.sh
@ -85,14 +85,16 @@ cargo batch \
|
|||||||
--- build --release --manifest-path examples/stm32u5/Cargo.toml --target thumbv8m.main-none-eabihf --out-dir out/examples/stm32u5 \
|
--- build --release --manifest-path examples/stm32u5/Cargo.toml --target thumbv8m.main-none-eabihf --out-dir out/examples/stm32u5 \
|
||||||
--- build --release --manifest-path examples/stm32wb/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/stm32wb \
|
--- build --release --manifest-path examples/stm32wb/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/stm32wb \
|
||||||
--- build --release --manifest-path examples/stm32wl/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/stm32wl \
|
--- build --release --manifest-path examples/stm32wl/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/stm32wl \
|
||||||
--- build --release --manifest-path examples/boot/nrf/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/nrf --bin b \
|
--- build --release --manifest-path examples/boot/application/nrf/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/nrf --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32f3/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32f3 --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32f3/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32f3 --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32f7/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32f7 --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32f7/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32f7 --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32h7/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32h7 --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32h7/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32h7 --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32l0/Cargo.toml --target thumbv6m-none-eabi --out-dir out/examples/boot/stm32l0 --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32l0/Cargo.toml --target thumbv6m-none-eabi --out-dir out/examples/boot/stm32l0 --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32l1/Cargo.toml --target thumbv7m-none-eabi --out-dir out/examples/boot/stm32l1 --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32l1/Cargo.toml --target thumbv7m-none-eabi --out-dir out/examples/boot/stm32l1 --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32l4/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32l4 --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32l4/Cargo.toml --target thumbv7em-none-eabi --out-dir out/examples/boot/stm32l4 --bin b \
|
||||||
--- build --release --manifest-path examples/boot/stm32wl/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/boot/stm32wl --bin b \
|
--- build --release --manifest-path examples/boot/application/stm32wl/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/boot/stm32wl --bin b \
|
||||||
|
--- build --release --manifest-path examples/boot/bootloader/nrf/Cargo.toml --target thumbv7em-none-eabi --features embassy-nrf/nrf52840 \
|
||||||
|
--- build --release --manifest-path examples/boot/bootloader/stm32/Cargo.toml --target thumbv7em-none-eabi --features embassy-stm32/stm32wl55jc-cm4,embassy/time-tick-32768hz \
|
||||||
--- build --release --manifest-path examples/wasm/Cargo.toml --target wasm32-unknown-unknown --out-dir out/examples/wasm \
|
--- build --release --manifest-path examples/wasm/Cargo.toml --target wasm32-unknown-unknown --out-dir out/examples/wasm \
|
||||||
--- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv7m-none-eabi --features stm32f103c8 --out-dir out/tests/bluepill-stm32f103c8 \
|
--- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv7m-none-eabi --features stm32f103c8 --out-dir out/tests/bluepill-stm32f103c8 \
|
||||||
--- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f429zi --out-dir out/tests/nucleo-stm32f429zi \
|
--- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f429zi --out-dir out/tests/nucleo-stm32f429zi \
|
||||||
|
@ -2,11 +2,12 @@
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
name = "embassy-boot-nrf"
|
name = "embassy-boot-nrf"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "Bootloader for nRF chips"
|
description = "Bootloader lib for nRF chips"
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
defmt = { version = "0.3", optional = true }
|
defmt = { version = "0.3", optional = true }
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
|
|
||||||
embassy = { path = "../../embassy", default-features = false }
|
embassy = { path = "../../embassy", default-features = false }
|
||||||
embassy-nrf = { path = "../../embassy-nrf", default-features = false, features = ["nightly"] }
|
embassy-nrf = { path = "../../embassy-nrf", default-features = false, features = ["nightly"] }
|
||||||
@ -28,35 +29,3 @@ defmt = [
|
|||||||
softdevice = [
|
softdevice = [
|
||||||
"nrf-softdevice-mbr",
|
"nrf-softdevice-mbr",
|
||||||
]
|
]
|
||||||
debug = ["defmt-rtt"]
|
|
||||||
|
|
||||||
[profile.dev]
|
|
||||||
debug = 2
|
|
||||||
debug-assertions = true
|
|
||||||
incremental = false
|
|
||||||
opt-level = 'z'
|
|
||||||
overflow-checks = true
|
|
||||||
|
|
||||||
[profile.release]
|
|
||||||
codegen-units = 1
|
|
||||||
debug = 2
|
|
||||||
debug-assertions = false
|
|
||||||
incremental = false
|
|
||||||
lto = 'fat'
|
|
||||||
opt-level = 'z'
|
|
||||||
overflow-checks = false
|
|
||||||
|
|
||||||
# do not optimize proc-macro crates = faster builds from scratch
|
|
||||||
[profile.dev.build-override]
|
|
||||||
codegen-units = 8
|
|
||||||
debug = false
|
|
||||||
debug-assertions = false
|
|
||||||
opt-level = 0
|
|
||||||
overflow-checks = false
|
|
||||||
|
|
||||||
[profile.release.build-override]
|
|
||||||
codegen-units = 8
|
|
||||||
debug = false
|
|
||||||
debug-assertions = false
|
|
||||||
opt-level = 0
|
|
||||||
overflow-checks = false
|
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
name = "embassy-boot-stm32"
|
name = "embassy-boot-stm32"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "Bootloader for STM32 chips"
|
description = "Bootloader lib for STM32 chips"
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
defmt = { version = "0.3", optional = true }
|
defmt = { version = "0.3", optional = true }
|
||||||
|
18
examples/boot/application/nrf/Cargo.toml
Normal file
18
examples/boot/application/nrf/Cargo.toml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-nrf-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly"] }
|
||||||
|
embassy-nrf = { version = "0.1.0", path = "../../../../embassy-nrf", features = ["time-driver-rtc1", "gpiote", "nightly", "nrf52840"] }
|
||||||
|
embassy-boot-nrf = { version = "0.1.0", path = "../../../../embassy-boot/nrf" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
@ -17,10 +17,10 @@ application.
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Use bare metal linker script
|
# Use bare metal linker script
|
||||||
cp memory-bl.x ../../../embassy-boot/nrf/memory.x
|
cp memory-bl.x ../../bootloader/nrf/memory.x
|
||||||
|
|
||||||
# Flash bootloader
|
# Flash bootloader
|
||||||
cargo flash --manifest-path ../../../embassy-boot/nrf/Cargo.toml --features embassy-nrf/nrf52840 --release --chip nRF52840_xxAA
|
cargo flash --manifest-path ../../bootloader/nrf/Cargo.toml --features embassy-nrf/nrf52840 --release --chip nRF52840_xxAA
|
||||||
# Build 'b'
|
# Build 'b'
|
||||||
cargo build --release --bin b
|
cargo build --release --bin b
|
||||||
# Generate binary for 'b'
|
# Generate binary for 'b'
|
25
examples/boot/application/stm32f3/Cargo.toml
Normal file
25
examples/boot/application/stm32f3/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32f3-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32f303re", "time-driver-any", "exti"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
@ -15,7 +15,7 @@ application.
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Flash bootloader
|
# Flash bootloader
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32f303re --chip STM32F303RETx
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32f303re --chip STM32F303RETx
|
||||||
# Build 'b'
|
# Build 'b'
|
||||||
cargo build --release --bin b
|
cargo build --release --bin b
|
||||||
# Generate binary for 'b'
|
# Generate binary for 'b'
|
25
examples/boot/application/stm32f7/Cargo.toml
Normal file
25
examples/boot/application/stm32f7/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32f7-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32f767zi", "time-driver-any", "exti"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
8
examples/boot/application/stm32f7/flash-boot.sh
Executable file
8
examples/boot/application/stm32f7/flash-boot.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
mv ../../bootloader/stm32/memory.x ../../bootloader/stm32/memory-old.x
|
||||||
|
cp memory-bl.x ../../bootloader/stm32/memory.x
|
||||||
|
|
||||||
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32f767zi --chip STM32F767ZITx --target thumbv7em-none-eabihf
|
||||||
|
|
||||||
|
rm ../../bootloader/stm32/memory.x
|
||||||
|
mv ../../bootloader/stm32/memory-old.x ../../bootloader/stm32/memory.x
|
25
examples/boot/application/stm32h7/Cargo.toml
Normal file
25
examples/boot/application/stm32h7/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32f7-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32h743zi", "time-driver-any", "exti"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
8
examples/boot/application/stm32h7/flash-boot.sh
Executable file
8
examples/boot/application/stm32h7/flash-boot.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
mv ../../bootloader/stm32/memory.x ../../bootloader/stm32/memory-old.x
|
||||||
|
cp memory-bl.x ../../bootloader/stm32/memory.x
|
||||||
|
|
||||||
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32f767zi --chip STM32F767ZITx --target thumbv7em-none-eabihf
|
||||||
|
|
||||||
|
rm ../../bootloader/stm32/memory.x
|
||||||
|
mv ../../bootloader/stm32/memory-old.x ../../bootloader/stm32/memory.x
|
25
examples/boot/application/stm32l0/Cargo.toml
Normal file
25
examples/boot/application/stm32l0/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32l0-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32l072cz", "time-driver-any", "exti", "memory-x"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
@ -15,7 +15,7 @@ application.
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Flash bootloader
|
# Flash bootloader
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32l072cz --chip STM32L072CZTx
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32l072cz --chip STM32L072CZTx
|
||||||
# Build 'b'
|
# Build 'b'
|
||||||
cargo build --release --bin b
|
cargo build --release --bin b
|
||||||
# Generate binary for 'b'
|
# Generate binary for 'b'
|
25
examples/boot/application/stm32l1/Cargo.toml
Normal file
25
examples/boot/application/stm32l1/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32l1-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32l151cb-a", "time-driver-any", "exti"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
@ -15,7 +15,7 @@ application.
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Flash bootloader
|
# Flash bootloader
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32l151cb-a --chip STM32L151CBxxA
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32l151cb-a --chip STM32L151CBxxA
|
||||||
# Build 'b'
|
# Build 'b'
|
||||||
cargo build --release --bin b
|
cargo build --release --bin b
|
||||||
# Generate binary for 'b'
|
# Generate binary for 'b'
|
25
examples/boot/application/stm32l4/Cargo.toml
Normal file
25
examples/boot/application/stm32l4/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32l4-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32l475vg", "time-driver-any", "exti"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
@ -15,7 +15,7 @@ application.
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Flash bootloader
|
# Flash bootloader
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32l475vg --chip STM32L475VG
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32l475vg --chip STM32L475VG
|
||||||
# Build 'b'
|
# Build 'b'
|
||||||
cargo build --release --bin b
|
cargo build --release --bin b
|
||||||
# Generate binary for 'b'
|
# Generate binary for 'b'
|
25
examples/boot/application/stm32wl/Cargo.toml
Normal file
25
examples/boot/application/stm32wl/Cargo.toml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "embassy-boot-stm32wl-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
embassy = { version = "0.1.0", path = "../../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
||||||
|
embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32wl55jc-cm4", "time-driver-any", "exti"] }
|
||||||
|
embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot/stm32" }
|
||||||
|
embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
|
||||||
|
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
panic-reset = { version = "0.1.1" }
|
||||||
|
embedded-hal = { version = "0.2.6" }
|
||||||
|
|
||||||
|
cortex-m = "0.7.3"
|
||||||
|
cortex-m-rt = "0.7.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
]
|
@ -15,7 +15,7 @@ application.
|
|||||||
|
|
||||||
```
|
```
|
||||||
# Flash bootloader
|
# Flash bootloader
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32wl55jc-cm4 --chip STM32WLE5JCIx
|
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32wl55jc-cm4 --chip STM32WLE5JCIx
|
||||||
# Build 'b'
|
# Build 'b'
|
||||||
cargo build --release --bin b
|
cargo build --release --bin b
|
||||||
# Generate binary for 'b'
|
# Generate binary for 'b'
|
58
examples/boot/bootloader/nrf/Cargo.toml
Normal file
58
examples/boot/bootloader/nrf/Cargo.toml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "nrf-bootloader-example"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "Bootloader for nRF chips"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
|
||||||
|
embassy = { path = "../../../../embassy", default-features = false }
|
||||||
|
embassy-nrf = { path = "../../../../embassy-nrf", default-features = false, features = ["nightly"] }
|
||||||
|
embassy-boot-nrf = { path = "../../../../embassy-boot/nrf", default-features = false }
|
||||||
|
cortex-m = { version = "0.7" }
|
||||||
|
cortex-m-rt = { version = "0.7" }
|
||||||
|
cfg-if = "1.0.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-boot-nrf/defmt",
|
||||||
|
"embassy-nrf/defmt",
|
||||||
|
]
|
||||||
|
softdevice = [
|
||||||
|
"embassy-boot-nrf/softdevice",
|
||||||
|
]
|
||||||
|
debug = ["defmt-rtt"]
|
||||||
|
|
||||||
|
[profile.dev]
|
||||||
|
debug = 2
|
||||||
|
debug-assertions = true
|
||||||
|
incremental = false
|
||||||
|
opt-level = 'z'
|
||||||
|
overflow-checks = true
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
codegen-units = 1
|
||||||
|
debug = 2
|
||||||
|
debug-assertions = false
|
||||||
|
incremental = false
|
||||||
|
lto = 'fat'
|
||||||
|
opt-level = 'z'
|
||||||
|
overflow-checks = false
|
||||||
|
|
||||||
|
# do not optimize proc-macro crates = faster builds from scratch
|
||||||
|
[profile.dev.build-override]
|
||||||
|
codegen-units = 8
|
||||||
|
debug = false
|
||||||
|
debug-assertions = false
|
||||||
|
opt-level = 0
|
||||||
|
overflow-checks = false
|
||||||
|
|
||||||
|
[profile.release.build-override]
|
||||||
|
codegen-units = 8
|
||||||
|
debug = false
|
||||||
|
debug-assertions = false
|
||||||
|
opt-level = 0
|
||||||
|
overflow-checks = false
|
57
examples/boot/bootloader/stm32/Cargo.toml
Normal file
57
examples/boot/bootloader/stm32/Cargo.toml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
[package]
|
||||||
|
edition = "2021"
|
||||||
|
name = "stm32-bootloader-example"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "Example bootloader for STM32 chips"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
defmt = { version = "0.3", optional = true }
|
||||||
|
defmt-rtt = { version = "0.3", optional = true }
|
||||||
|
|
||||||
|
embassy = { path = "../../../../embassy", default-features = false }
|
||||||
|
embassy-stm32 = { path = "../../../../embassy-stm32", default-features = false, features = ["nightly"] }
|
||||||
|
embassy-boot-stm32 = { path = "../../../../embassy-boot/stm32", default-features = false }
|
||||||
|
cortex-m = { version = "0.7" }
|
||||||
|
cortex-m-rt = { version = "0.7" }
|
||||||
|
embedded-storage = "0.3.0"
|
||||||
|
embedded-storage-async = "0.3.0"
|
||||||
|
cfg-if = "1.0.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
defmt = [
|
||||||
|
"dep:defmt",
|
||||||
|
"embassy-boot-stm32/defmt",
|
||||||
|
"embassy-stm32/defmt",
|
||||||
|
]
|
||||||
|
debug = ["defmt-rtt"]
|
||||||
|
|
||||||
|
[profile.dev]
|
||||||
|
debug = 2
|
||||||
|
debug-assertions = true
|
||||||
|
incremental = false
|
||||||
|
opt-level = 'z'
|
||||||
|
overflow-checks = true
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
codegen-units = 1
|
||||||
|
debug = 2
|
||||||
|
debug-assertions = false
|
||||||
|
incremental = false
|
||||||
|
lto = 'fat'
|
||||||
|
opt-level = 'z'
|
||||||
|
overflow-checks = false
|
||||||
|
|
||||||
|
# do not optimize proc-macro crates = faster builds from scratch
|
||||||
|
[profile.dev.build-override]
|
||||||
|
codegen-units = 8
|
||||||
|
debug = false
|
||||||
|
debug-assertions = false
|
||||||
|
opt-level = 0
|
||||||
|
overflow-checks = false
|
||||||
|
|
||||||
|
[profile.release.build-override]
|
||||||
|
codegen-units = 8
|
||||||
|
debug = false
|
||||||
|
debug-assertions = false
|
||||||
|
opt-level = 0
|
||||||
|
overflow-checks = false
|
11
examples/boot/bootloader/stm32/README.md
Normal file
11
examples/boot/bootloader/stm32/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Bootloader for STM32
|
||||||
|
|
||||||
|
The bootloader uses `embassy-boot` to interact with the flash.
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
Flash the bootloader
|
||||||
|
|
||||||
|
```
|
||||||
|
cargo flash --features embassy-stm32/stm32wl55jc-cm4 --release --chip STM32WLE5JCIx
|
||||||
|
```
|
@ -1,18 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-nrf-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly"] }
|
|
||||||
embassy-nrf = { version = "0.1.0", path = "../../../embassy-nrf", features = ["time-driver-rtc1", "gpiote", "nightly", "nrf52840"] }
|
|
||||||
embassy-boot-nrf = { version = "0.1.0", path = "../../../embassy-boot/nrf" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32f3-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32f303re", "time-driver-any", "exti"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32f7-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32f767zi", "time-driver-any", "exti"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
mv ../../../embassy-boot/stm32/memory.x ../../../embassy-boot/stm32/memory-old.x
|
|
||||||
cp memory-bl.x ../../../embassy-boot/stm32/memory.x
|
|
||||||
|
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32f767zi --chip STM32F767ZITx --target thumbv7em-none-eabihf
|
|
||||||
|
|
||||||
rm ../../../embassy-boot/stm32/memory.x
|
|
||||||
mv ../../../embassy-boot/stm32/memory-old.x ../../../embassy-boot/stm32/memory.x
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32f7-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32h743zi", "time-driver-any", "exti"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
mv ../../../embassy-boot/stm32/memory.x ../../../embassy-boot/stm32/memory-old.x
|
|
||||||
cp memory-bl.x ../../../embassy-boot/stm32/memory.x
|
|
||||||
|
|
||||||
cargo flash --manifest-path ../../../embassy-boot/stm32/Cargo.toml --release --features embassy-stm32/stm32f767zi --chip STM32H743ZITx --target thumbv7em-none-eabihf
|
|
||||||
|
|
||||||
rm ../../../embassy-boot/stm32/memory.x
|
|
||||||
mv ../../../embassy-boot/stm32/memory-old.x ../../../embassy-boot/stm32/memory.x
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32l0-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32l072cz", "time-driver-any", "exti", "memory-x"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32l1-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32l151cb-a", "time-driver-any", "exti"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32l4-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32l475vg", "time-driver-any", "exti"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
@ -1,25 +0,0 @@
|
|||||||
[package]
|
|
||||||
edition = "2021"
|
|
||||||
name = "embassy-boot-stm32wl-examples"
|
|
||||||
version = "0.1.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
embassy = { version = "0.1.0", path = "../../../embassy", features = ["nightly", "time-tick-32768hz"] }
|
|
||||||
embassy-stm32 = { version = "0.1.0", path = "../../../embassy-stm32", features = ["unstable-traits", "nightly", "stm32wl55jc-cm4", "time-driver-any", "exti"] }
|
|
||||||
embassy-boot-stm32 = { version = "0.1.0", path = "../../../embassy-boot/stm32" }
|
|
||||||
embassy-embedded-hal = { version = "0.1.0", path = "../../../embassy-embedded-hal" }
|
|
||||||
|
|
||||||
defmt = { version = "0.3", optional = true }
|
|
||||||
defmt-rtt = { version = "0.3", optional = true }
|
|
||||||
panic-reset = { version = "0.1.1" }
|
|
||||||
embedded-hal = { version = "0.2.6" }
|
|
||||||
|
|
||||||
cortex-m = "0.7.3"
|
|
||||||
cortex-m-rt = "0.7.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
defmt = [
|
|
||||||
"dep:defmt",
|
|
||||||
"embassy-stm32/defmt",
|
|
||||||
"embassy-boot-stm32/defmt",
|
|
||||||
]
|
|
Loading…
Reference in New Issue
Block a user