commit 097f5a9d1ae1a07d76f42583020764e819eebcc2
parent c79b53eb5b9ae784dc363f79a1e356ebf9c1e3bf
Author: filipton <filipton12@gmail.com>
Date: Fri, 19 Jul 2024 13:06:07 +0200
chore: update dependencies (esp-hal)
Diffstat:
4 files changed, 137 insertions(+), 65 deletions(-)
diff --git a/examples/Cargo.lock b/examples/Cargo.lock
@@ -114,6 +114,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
+name = "bytemuck"
+version = "1.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e"
+
+[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -155,9 +161,9 @@ checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
[[package]]
name = "darling"
-version = "0.20.9"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
dependencies = [
"darling_core",
"darling_macro",
@@ -165,27 +171,27 @@ dependencies = [
[[package]]
name = "darling_core"
-version = "0.20.9"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
name = "darling_macro"
-version = "0.20.9"
+version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -196,14 +202,14 @@ checksum = "4e018fccbeeb50ff26562ece792ed06659b9c2dae79ece77c4456bb10d9bf79b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
name = "document-features"
-version = "0.2.8"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95"
+checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0"
dependencies = [
"litrs",
]
@@ -237,7 +243,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -475,7 +481,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -486,13 +492,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "esp-backtrace"
-version = "0.12.1"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5b1720f2275eb87dbde9607cb2ab6a10894a4502045c0924c0f265aaceb3118"
+checksum = "1a34817530dceba397172d6a9fb660b684a73a3a591fbe7fb0da27bed796f270"
dependencies = [
"esp-build",
"esp-println",
- "rustversion",
"semihosting",
]
@@ -503,19 +508,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b94a4b8d74e7cc7baabcca5b2277b41877e039ad9cd49959d48ef94dac7eab4b"
dependencies = [
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
"termcolor",
]
[[package]]
name = "esp-hal"
-version = "0.18.0"
+version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44f1bf3b1b34bbeb59e24e630f26e21b95f9c2bb7c0a53361ae5a97c67936566"
+checksum = "fe4f8cb6a9dcf0fd4506a856fbb4a0622b92042978c601a23c840c28f621a59f"
dependencies = [
"basic-toml",
"bitfield",
"bitflags 2.6.0",
+ "bytemuck",
"cfg-if",
"critical-section",
"delegate",
@@ -555,9 +561,9 @@ dependencies = [
[[package]]
name = "esp-hal-embassy"
-version = "0.1.0"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a892b9fe96cdfddab252ffa0ea90de66ccb078ff42d037b14ca9dfa3608b688a"
+checksum = "5206e4c63993df6da47fd30432ccc22111bd084ebfd0372afd45202b491e717e"
dependencies = [
"cfg-if",
"critical-section",
@@ -580,9 +586,9 @@ dependencies = [
[[package]]
name = "esp-hal-procmacros"
-version = "0.11.0"
+version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "788b535b8127a8f0d1f40a8d8e300e57a8c361c492d660dd08fe8e9a1b96ee3c"
+checksum = "9569ccb286c5a0c39292dbaaa0995bbb2a2a9d671ef3ce807b8b5b3d9a589d35"
dependencies = [
"darling",
"document-features",
@@ -592,14 +598,14 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
name = "esp-metadata"
-version = "0.1.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "654b8f14bf076fe5995fe94fabbe41a98041e1f2f801e5b3404dcae87e476db6"
+checksum = "6013420eb303c3087d82c2d2a38944427662b0b07a9ae79e5b1636fc1442e0ba"
dependencies = [
"basic-toml",
"lazy_static",
@@ -609,19 +615,21 @@ dependencies = [
[[package]]
name = "esp-println"
-version = "0.9.1"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e98f0f58453dd2ce08d99228fc8757fad39d05dfd26643665d1093b8844f42cc"
+checksum = "58cd4fa834980ba64aad00a5c2c1a630020af984eadef65a125cb99085f6f54c"
dependencies = [
"critical-section",
+ "esp-build",
"log",
+ "portable-atomic",
]
[[package]]
name = "esp-riscv-rt"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "404129c79e9dc34f8b468ec44e71ce36a0bd443cb88be0feffa4b9f3856c97a6"
+checksum = "bfc32298ed7c263b06c8b031704d8517cc62c819f2a9d5c261d0cb119634d6e9"
dependencies = [
"document-features",
"riscv",
@@ -640,9 +648,9 @@ dependencies = [
[[package]]
name = "esp-synopsys-usb-otg"
-version = "0.4.1"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cea082d4a065ea923e074cbfda48e5fdf90aa13bdeba948be5a066cb029a9512"
+checksum = "8938451cb19032f13365328ea66ab38c8d16deecdf322067442297110eb74468"
dependencies = [
"critical-section",
"embedded-hal 0.2.7",
@@ -653,9 +661,9 @@ dependencies = [
[[package]]
name = "esp-wifi"
-version = "0.6.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48709a955a7730ef27457682d4f3173d956ae7cd4182c46252a61bd2f61ace6c"
+checksum = "7ba911553329cdd61a1a503d6f71c85f17127447736c3d2522b7ee87d318affd"
dependencies = [
"atomic-waker",
"cfg-if",
@@ -687,18 +695,18 @@ dependencies = [
[[package]]
name = "esp-wifi-sys"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "551b510b3944844675fcefa1301b3610fe56faa419bcc05dd0dd0056745c6654"
+checksum = "1829bd8c63b22a6d8a5485203a6e6bdc008897d9ee687aa6df8b57d2103a48d2"
dependencies = [
"anyhow",
]
[[package]]
name = "esp32s3"
-version = "0.26.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53ac7bb447c239be8a6a9eba9aaf4099c3aab4b7aefca5871be8bf7d8c8893cf"
+checksum = "7989c8d8e81a0b1037926ccaec6b2ff8bed36b758e6beb9145111ba33892fe6f"
dependencies = [
"critical-section",
"vcell",
@@ -777,7 +785,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -1002,7 +1010,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -1067,7 +1075,7 @@ checksum = "a33fa6ec7f2047f572d49317cca19c87195de99c6e5b6ee492da701cfe02b053"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -1232,28 +1240,28 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "semihosting"
-version = "0.1.11"
+version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92bc56e056d8725553408cc2dfdfb96591c49ef2835d2f6060f28396d645d785"
+checksum = "999408e6628a9b637a47b6550310452084e88c29e1c3a09b65c50256ca6aaad6"
[[package]]
name = "serde"
-version = "1.0.203"
+version = "1.0.204"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.203"
+version = "1.0.204"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -1352,7 +1360,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.68",
+ "syn 2.0.71",
]
[[package]]
@@ -1368,9 +1376,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.68"
+version = "2.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9"
+checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
dependencies = [
"proc-macro2",
"quote",
@@ -1408,7 +1416,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde",
- "syn 2.0.68",
+ "syn 2.0.71",
"toml",
]
@@ -1628,5 +1636,5 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.68",
+ "syn 2.0.71",
]
diff --git a/examples/Cargo.toml b/examples/Cargo.toml
@@ -6,19 +6,19 @@ edition = "2021"
license = "MIT OR Apache-2.0"
[dependencies]
-esp-backtrace = { version = "0.12.1", features = [ "esp32s3", "exception-handler", "panic-handler", "println" ] }
-esp-hal = { version = "0.18.0", features = [ "esp32s3", "embedded-hal", "embedded-hal-02", "async" ] }
-esp-println = { version = "0.9.1", features = ["esp32s3", "log"] }
+esp-backtrace = { version = "0.13.0", features = [ "esp32s3", "exception-handler", "panic-handler", "println" ] }
+esp-hal = { version = "0.19.0", features = [ "esp32s3", "embedded-hal", "embedded-hal-02", "async" ] }
+esp-println = { version = "0.10.0", features = ["esp32s3", "log"] }
log = { version = "0.4.22" }
-esp-wifi = { version = "0.6.0", features = [ "esp32s3", "phy-enable-usb", "utils", "wifi", "dhcpv4", "ble", "embassy-net" ] }
-esp-hal-embassy = { version = "0.1.0", features = ["time-timg0", "integrated-timers", "esp32s3"] }
+esp-wifi = { version = "0.7.1", features = [ "esp32s3", "phy-enable-usb", "utils", "wifi", "dhcpv4", "ble", "embassy-net" ] }
+esp-hal-embassy = { version = "0.2.0", features = ["integrated-timers", "esp32s3"] }
embassy-executor = { version = "0.5.0", package = "embassy-executor", features = ["arch-riscv32", "task-arena-size-10240"] }
embassy-net = { version = "0.4.0", features = ["tcp", "udp", "dhcpv4", "medium-ethernet"] }
embassy-time = { version = "0.3.1" }
esp-storage = { version = "0.3.0", features = ["esp32s3"] }
esp-hal-ota = { path = "../" }
static_cell = { version = "2.1.0", features = ["nightly"] }
-#heapless = { version = "0.8.0", default-features = false }
+
[build-dependencies]
dotenvy = "0.15.7"
diff --git a/examples/build.rs b/examples/build.rs
@@ -1,4 +1,30 @@
fn main() {
+ let path_env = std::env::var("PATH").expect("NO PATH ENV FOUND!");
+ let rustup_home_env = std::env::var("RUSTUP_HOME").expect("NO RUSTUP_HOME ENV FOUND!");
+ let esp_toolchains_path = std::path::PathBuf::from(rustup_home_env)
+ .join("toolchains")
+ .join("esp");
+
+ if !esp_toolchains_path.exists() {
+ panic!(
+ ".rustup/toolchains/esp path not found! Are you sure you've installed esp toolchains?"
+ );
+ }
+
+ let clang_path = get_newest(&esp_toolchains_path.join("xtensa-esp32-elf-clang")).expect("xtensa-esp32-elf-clang not found in esp toolchains! Are you sure you've installed esp toolchains?");
+ let elf_path = get_newest(&esp_toolchains_path.join("xtensa-esp-elf")).expect(
+ "xtensa-esp-elf not found in esp toolchains! Are you sure you've installed esp toolchains?",
+ );
+
+ println!(
+ "cargo:rustc-env=LIBCLANG_PATH={}/esp-clang/lib",
+ clang_path.display()
+ );
+ println!(
+ "cargo:rustc-env=PATH={}/xtensa-esp-elf/bin:{path_env}",
+ elf_path.display()
+ );
+
println!("cargo:rerun-if-changed=*.env*");
if let Ok(mut iter) = dotenvy::dotenv_iter() {
while let Some(Ok((key, value))) = iter.next() {
@@ -9,3 +35,30 @@ fn main() {
println!("cargo:rustc-link-arg-bins=-Tlinkall.x");
println!("cargo:rustc-link-arg-bins=-Trom_functions.x");
}
+
+fn get_newest(path: &std::path::PathBuf) -> Option<std::path::PathBuf> {
+ if !path.exists() {
+ return None;
+ }
+
+ let mut tmp_path = (None, None);
+ for entry in path.read_dir().unwrap() {
+ if let Ok(entry) = entry {
+ let metadata = entry.metadata().expect("Cant get dir metadata!");
+ let modified = metadata.modified().expect("Cant get dir modified time!");
+
+ match tmp_path.0 {
+ Some(old) => {
+ if modified > old {
+ tmp_path = (Some(modified), Some(entry.path()));
+ }
+ }
+ None => {
+ tmp_path = (Some(modified), Some(entry.path()));
+ }
+ }
+ }
+ }
+
+ tmp_path.1
+}
diff --git a/examples/src/main.rs b/examples/src/main.rs
@@ -8,8 +8,11 @@ use embassy_net::{tcp::TcpSocket, Config, Stack, StackResources};
use embassy_time::{Duration, Timer};
use esp_backtrace as _;
use esp_hal::{
- clock::ClockControl, peripherals::Peripherals, prelude::*, system::SystemControl,
- timer::timg::TimerGroup,
+ clock::ClockControl,
+ peripherals::Peripherals,
+ prelude::*,
+ system::SystemControl,
+ timer::{timg::TimerGroup, ErasedTimer, OneShotTimer, PeriodicTimer},
};
use esp_hal_ota::Ota;
use esp_storage::FlashStorage;
@@ -39,19 +42,27 @@ async fn main(spawner: Spawner) {
esp_println::logger::init_logger_from_env();
log::set_max_level(log::LevelFilter::Info);
+ let timer = PeriodicTimer::new(
+ esp_hal::timer::timg::TimerGroup::new(peripherals.TIMG1, &clocks, None)
+ .timer0
+ .into(),
+ );
+
let rng = esp_hal::rng::Rng::new(peripherals.RNG);
- let timer = esp_hal::timer::timg::TimerGroup::new(peripherals.TIMG1, &clocks, None);
let init = esp_wifi::initialize(
esp_wifi::EspWifiInitFor::Wifi,
- timer.timer0,
+ timer,
rng.clone(),
peripherals.RADIO_CLK,
&clocks,
)
.unwrap();
- let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);
- esp_hal_embassy::init(&clocks, timg0);
+ let timg1 = TimerGroup::new(peripherals.TIMG0, &clocks, None);
+ let timer0 = OneShotTimer::new(timg1.timer0.into());
+ let timers = [timer0];
+ let timers: &mut [OneShotTimer<ErasedTimer>; 1] = make_static!(timers);
+ esp_hal_embassy::init(&clocks, timers);
let wifi = peripherals.WIFI;
let (wifi_interface, controller) =