mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-22 23:02:30 +00:00
Merge #519
519: stm32: Add timer test, add g0, g4 tests. r=Dirbaio a=Dirbaio Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
This commit is contained in:
commit
c1b4759935
22
ci.sh
22
ci.sh
@ -6,14 +6,14 @@ export CARGO_TARGET_DIR=$PWD/target_ci
|
||||
export RUSTFLAGS=-Dwarnings
|
||||
export DEFMT_LOG=trace
|
||||
|
||||
#find . -name '*.rs' -not -path '*target*' -not -path '*stm32-metapac-gen/out/*' | xargs rustfmt --check --skip-children --unstable-features --edition 2018
|
||||
find . -name '*.rs' -not -path '*target*' -not -path '*stm32-metapac-gen/out/*' | xargs rustfmt --check --skip-children --unstable-features --edition 2018
|
||||
|
||||
# Generate stm32-metapac
|
||||
# for some reason Cargo stomps the cache if we don't specify --target.
|
||||
# This happens with vanilla Cargo, not just cargo-batch. Bug?
|
||||
#(cd stm32-metapac-gen; cargo run --release --target x86_64-unknown-linux-gnu)
|
||||
#rm -rf stm32-metapac
|
||||
#mv stm32-metapac-gen/out stm32-metapac
|
||||
(cd stm32-metapac-gen; cargo run --release --target x86_64-unknown-linux-gnu)
|
||||
rm -rf stm32-metapac
|
||||
mv stm32-metapac-gen/out stm32-metapac
|
||||
|
||||
cargo batch \
|
||||
--- build --release --manifest-path embassy/Cargo.toml --target thumbv7em-none-eabi \
|
||||
@ -57,7 +57,9 @@ cargo batch \
|
||||
--- build --release --manifest-path examples/stm32wb55/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/stm32wb55 \
|
||||
--- build --release --manifest-path examples/stm32wl55/Cargo.toml --target thumbv7em-none-eabihf --out-dir out/examples/stm32wl55 \
|
||||
--- 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 thumbv7em-none-eabi --out-dir out/tests/stm32f4 \
|
||||
--- 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 stm32g491re --out-dir out/tests/nucleo-stm32g491re \
|
||||
--- build --release --manifest-path tests/stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32g071rb --out-dir out/tests/nucleo-stm32g071rb \
|
||||
|
||||
|
||||
function run_elf {
|
||||
@ -70,6 +72,7 @@ function run_elf {
|
||||
-H "Authorization: Bearer $TELEPROBE_TOKEN" \
|
||||
https://teleprobe.embassy.dev/targets/$1/run --data-binary @$2
|
||||
)
|
||||
echo
|
||||
echo HTTP Status code: $STATUSCODE
|
||||
test "$STATUSCODE" -eq 200
|
||||
}
|
||||
@ -83,6 +86,9 @@ if [[ -z "${TELEPROBE_TOKEN-}" ]]; then
|
||||
export TELEPROBE_TOKEN=$(curl -sS -H "Authorization: Bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value')
|
||||
fi
|
||||
|
||||
|
||||
run_elf nucleo-stm32f429zi out/tests/stm32f4/gpio
|
||||
|
||||
for board in $(ls out/tests); do
|
||||
echo Running tests fo board: $board
|
||||
for elf in $(ls out/tests/$board); do
|
||||
run_elf $board out/tests/$board/$elf
|
||||
done
|
||||
done
|
||||
|
@ -4,7 +4,8 @@ build-std-features = ["panic_immediate_abort"]
|
||||
|
||||
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
|
||||
# replace STM32F429ZITx with your chip as listed in `probe-run --list-chips`
|
||||
runner = "probe-run --chip STM32F429ZITx"
|
||||
#runner = "teleprobe run --chip STM32G071RBTx --elf"
|
||||
runner = "./teleprobe.sh nucleo-stm32f429zi"
|
||||
|
||||
rustflags = [
|
||||
# Code-size optimizations.
|
||||
|
@ -5,10 +5,15 @@ name = "embassy-stm32-tests"
|
||||
version = "0.1.0"
|
||||
resolver = "2"
|
||||
|
||||
[features]
|
||||
stm32f429zi = ["embassy-stm32/stm32f429zi"]
|
||||
stm32g071rb = ["embassy-stm32/stm32g071rb"]
|
||||
stm32g491re = ["embassy-stm32/stm32g491re"]
|
||||
|
||||
[dependencies]
|
||||
embassy = { version = "0.1.0", path = "../../embassy", features = ["defmt"] }
|
||||
embassy-traits = { version = "0.1.0", path = "../../embassy-traits", features = ["defmt"] }
|
||||
embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32f429zi", "unstable-pac", "memory-x", "time-driver-tim2"] }
|
||||
embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "unstable-pac", "memory-x", "time-driver-tim2"] }
|
||||
|
||||
defmt = "0.3.0"
|
||||
defmt-rtt = "0.3.0"
|
||||
@ -19,10 +24,8 @@ embedded-hal = "0.2.6"
|
||||
panic-probe = { version = "0.3.0", features = ["print-defmt"] }
|
||||
|
||||
[profile.dev]
|
||||
codegen-units = 1
|
||||
debug = 2
|
||||
debug-assertions = true
|
||||
incremental = false
|
||||
opt-level = 's'
|
||||
overflow-checks = true
|
||||
|
||||
|
@ -15,6 +15,13 @@ use example_common::*;
|
||||
async fn main(_spawner: Spawner, p: Peripherals) {
|
||||
info!("Hello World!");
|
||||
|
||||
// Arduino pins D0 and D1
|
||||
// They're connected together with a 1K resistor.
|
||||
#[cfg(feature = "stm32g491re")]
|
||||
let (mut a, mut b) = (p.PC4, p.PC5);
|
||||
#[cfg(feature = "stm32g071rb")]
|
||||
let (mut a, mut b) = (p.PC4, p.PC5);
|
||||
#[cfg(feature = "stm32f429zi")]
|
||||
let (mut a, mut b) = (p.PG14, p.PG9);
|
||||
|
||||
// Test initial output
|
||||
|
27
tests/stm32/src/bin/timer.rs
Normal file
27
tests/stm32/src/bin/timer.rs
Normal file
@ -0,0 +1,27 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
#![feature(type_alias_impl_trait)]
|
||||
|
||||
#[path = "../example_common.rs"]
|
||||
mod example_common;
|
||||
use defmt::assert;
|
||||
use embassy::executor::Spawner;
|
||||
use embassy::time::{Duration, Instant, Timer};
|
||||
use embassy_stm32::Peripherals;
|
||||
use example_common::*;
|
||||
|
||||
#[embassy::main]
|
||||
async fn main(_spawner: Spawner, _p: Peripherals) {
|
||||
info!("Hello World!");
|
||||
|
||||
let start = Instant::now();
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
let end = Instant::now();
|
||||
let ms = (end - start).as_millis();
|
||||
info!("slept for {} ms", ms);
|
||||
assert!(ms >= 99);
|
||||
assert!(ms < 110);
|
||||
|
||||
info!("Test OK");
|
||||
cortex_m::asm::bkpt();
|
||||
}
|
Loading…
Reference in New Issue
Block a user