diff --git a/Cargo.lock b/Cargo.lock index 581c413d..fd736197 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,12 +14,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - [[package]] name = "autocfg" version = "1.5.0" @@ -41,21 +35,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "bare-metal" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" - -[[package]] -name = "basic-toml" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" -dependencies = [ - "serde", -] - [[package]] name = "bitfield" version = "0.13.2" @@ -70,9 +49,23 @@ checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" [[package]] name = "bitfield" -version = "0.17.0" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f798d2d157e547aa99aab0967df39edd0b70307312b6f8bd2848e6abe40896e0" +checksum = "21ba6517c6b0f2bf08be60e187ab64b038438f22dd755614d8fe4d4098c46419" +dependencies = [ + "bitfield-macros", +] + +[[package]] +name = "bitfield-macros" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f48d6ace212fdf1b45fd6b566bb40808415344642b76c3224c07c8df9da81e97" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] [[package]] name = "bitflags" @@ -110,22 +103,13 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" -[[package]] -name = "chrono" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" -dependencies = [ - "num-traits", -] - [[package]] name = "cortex-m" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9" dependencies = [ - "bare-metal 0.2.5", + "bare-metal", "bitfield 0.13.2", "embedded-hal 0.2.7", "volatile-register", @@ -163,6 +147,16 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "darling" version = "0.20.11" @@ -183,6 +177,16 @@ dependencies = [ "darling_macro 0.21.3", ] +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + [[package]] name = "darling_core" version = "0.20.11" @@ -210,6 +214,19 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + [[package]] name = "darling_macro" version = "0.20.11" @@ -232,6 +249,17 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.117", +] + [[package]] name = "defmt" version = "0.3.100" @@ -284,6 +312,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "crypto-common", +] + [[package]] name = "display-interface" version = "0.5.0" @@ -319,7 +356,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" dependencies = [ - "litrs 1.0.0", + "litrs", ] [[package]] @@ -329,24 +366,24 @@ dependencies = [ "cfg-if", "cortex-m-rt", "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "display-interface", - "embassy-embedded-hal", + "embassy-embedded-hal 0.6.0", "embassy-executor", "embassy-futures", "embassy-nrf", - "embassy-sync 0.6.2", + "embassy-sync 0.8.0", "embassy-time", "embassy-usb", "embassy-usb-driver", "embedded-graphics", "embedded-hal-async", - "embedded-io-async", + "embedded-io-async 0.7.0", "esp-backtrace", "esp-hal", - "esp-hal-embassy", "esp-println", - "heapless", + "esp-rtos", + "heapless 0.9.2", "lora-phy", "minijinja", "owo-colors", @@ -358,13 +395,31 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" -version = "0.2.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5794414bc20e0d750f145bc0e82366b19dd078e9e075e8331fb8dd069a1cb6a2" +checksum = "554e3e840696f54b4c9afcf28a0f24da431c927f4151040020416e7393d6d0d8" dependencies = [ - "defmt 0.3.100", "embassy-futures", - "embassy-sync 0.6.2", + "embassy-hal-internal 0.3.0", + "embassy-sync 0.7.2", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0", + "embedded-hal-async", + "embedded-storage", + "embedded-storage-async", + "nb 1.1.0", +] + +[[package]] +name = "embassy-embedded-hal" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0641612053b2f34fc250bb63f6630ae75de46e02ade7f457268447081d709ce" +dependencies = [ + "defmt 1.0.1", + "embassy-futures", + "embassy-hal-internal 0.4.0", + "embassy-sync 0.8.0", "embassy-time", "embedded-hal 0.2.7", "embedded-hal 1.0.0", @@ -376,21 +431,22 @@ dependencies = [ [[package]] name = "embassy-executor" -version = "0.6.3" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64f84599b0f4296b92a4b6ac2109bc02340094bda47b9766c5f9ec6a318ebf8" +checksum = "06070468370195e0e86f241c8e5004356d696590a678d47d6676795b2e439c6b" dependencies = [ "cortex-m", "critical-section", "document-features", "embassy-executor-macros", + "embassy-executor-timer-queue", ] [[package]] name = "embassy-executor-macros" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3577b1e9446f61381179a330fc5324b01d511624c55f25e3c66c9e3c626dbecf" +checksum = "dfdddc3a04226828316bf31393b6903ee162238576b1584ee2669af215d55472" dependencies = [ "darling 0.20.11", "proc-macro2", @@ -398,6 +454,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "embassy-executor-timer-queue" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc328bf943af66b80b98755db9106bf7e7471b0cf47dc8559cd9a6be504cc9c" + [[package]] name = "embassy-futures" version = "0.1.2" @@ -406,13 +468,31 @@ checksum = "dc2d050bdc5c21e0862a89256ed8029ae6c290a93aecefc73084b3002cdebb01" [[package]] name = "embassy-hal-internal" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef3bac31ec146321248a169e9c7b5799f1e0b3829c7a9b324cb4600a7438f59" +checksum = "95285007a91b619dc9f26ea8f55452aa6c60f7115a4edc05085cd2bd3127cd7a" +dependencies = [ + "num-traits", +] + +[[package]] +name = "embassy-hal-internal" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f10ce10a4dfdf6402d8e9bd63128986b96a736b1a0a6680547ed2ac55d55dba" +dependencies = [ + "num-traits", +] + +[[package]] +name = "embassy-hal-internal" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568659fc53866d3d85c60fa33723fb751aa69e71507634fc2c19e7649432fb75" dependencies = [ "cortex-m", "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "num-traits", ] @@ -424,67 +504,46 @@ checksum = "524eb3c489760508f71360112bca70f6e53173e6fe48fc5f0efd0f5ab217751d" [[package]] name = "embassy-net-driver-channel" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b2739fbcf6cd206ae08779c7d709087b16577d255f2ea4a45bc4bbbf305b3f" +checksum = "a07d2eb9f05a6fc876500949856ea1be40773d866d8cb99384f72d0ae4568c16" dependencies = [ "embassy-futures", "embassy-net-driver", - "embassy-sync 0.7.2", + "embassy-sync 0.8.0", ] [[package]] name = "embassy-nrf" -version = "0.2.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5f41f2ef4df68d3066c62667a0027b194cf6294e58afe8e6c36b8feede1e4ac" +checksum = "b715380574504335c40ec3016bc44598fac3c385f82959b26c41b25c30b7648d" dependencies = [ "bitflags 2.11.0", "cfg-if", "cortex-m", "cortex-m-rt", "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "document-features", - "embassy-embedded-hal", - "embassy-hal-internal", - "embassy-sync 0.6.2", + "embassy-embedded-hal 0.6.0", + "embassy-futures", + "embassy-hal-internal 0.5.0", + "embassy-sync 0.8.0", "embassy-time-driver", + "embassy-time-queue-utils", "embassy-usb-driver", "embedded-hal 0.2.7", "embedded-hal 1.0.0", "embedded-hal-async", - "embedded-io", - "embedded-io-async", + "embedded-io 0.7.1", + "embedded-io-async 0.7.0", "embedded-storage", "embedded-storage-async", "fixed", - "nrf51-pac", - "nrf52805-pac", - "nrf52810-pac", - "nrf52811-pac", - "nrf52820-pac", - "nrf52832-pac", - "nrf52833-pac", - "nrf52840-pac", - "nrf5340-app-pac", - "nrf5340-net-pac", - "nrf9120-pac", - "nrf9160-pac", - "rand_core", -] - -[[package]] -name = "embassy-sync" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd938f25c0798db4280fcd8026bf4c2f48789aebf8f77b6e5cf8a7693ba114ec" -dependencies = [ - "cfg-if", - "critical-section", - "embedded-io-async", - "futures-util", - "heapless", + "nrf-pac", + "rand_core 0.6.4", + "rand_core 0.9.5", ] [[package]] @@ -495,11 +554,10 @@ checksum = "8d2c8cdff05a7a51ba0087489ea44b0b1d97a296ca6b1d6d1a33ea7423d34049" dependencies = [ "cfg-if", "critical-section", - "defmt 0.3.100", - "embedded-io-async", + "embedded-io-async 0.6.1", "futures-sink", "futures-util", - "heapless", + "heapless 0.8.0", ] [[package]] @@ -510,79 +568,99 @@ checksum = "73974a3edbd0bd286759b3d483540f0ebef705919a5f56f4fc7709066f71689b" dependencies = [ "cfg-if", "critical-section", - "embedded-io-async", + "embedded-io-async 0.6.1", "futures-core", "futures-sink", - "heapless", + "heapless 0.8.0", +] + +[[package]] +name = "embassy-sync" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bbd85cf5a5ae56bdf26f618364af642d1d0a4e245cdd75cd9aabda382f65a81" +dependencies = [ + "cfg-if", + "critical-section", + "defmt 1.0.1", + "embedded-io-async 0.7.0", + "futures-core", + "futures-sink", + "heapless 0.9.2", ] [[package]] name = "embassy-time" -version = "0.3.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "158080d48f824fad101d7b2fae2d83ac39e3f7a6fa01811034f7ab8ffc6e7309" +checksum = "592b0c143ec626e821d4d90da51a2bd91d559d6c442b7c74a47d368c9e23d97a" dependencies = [ "cfg-if", "critical-section", "document-features", "embassy-time-driver", - "embassy-time-queue-driver", "embedded-hal 0.2.7", "embedded-hal 1.0.0", "embedded-hal-async", - "futures-util", - "heapless", + "futures-core", ] [[package]] name = "embassy-time-driver" -version = "0.1.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c214077aaa9206958b16411c157961fb7990d4ea628120a78d1a5a28aed24" +checksum = "6ee71af1b3a0deaa53eaf2d39252f83504c853646e472400b763060389b9fcc9" dependencies = [ "document-features", ] [[package]] -name = "embassy-time-queue-driver" -version = "0.1.0" +name = "embassy-time-queue-utils" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1177859559ebf42cd24ae7ba8fe6ee707489b01d0bf471f8827b7b12dcb0bc0" +checksum = "80e2ee86063bd028a420a5fb5898c18c87a8898026da1d4c852af2c443d0a454" +dependencies = [ + "embassy-executor-timer-queue", + "heapless 0.8.0", +] [[package]] name = "embassy-usb" -version = "0.3.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d0b882133fa684b9d4652351cd7aac5afe8a2c2bf4a7da59f442ff61087cda2" +checksum = "a25746d8b152b72fbf2a217f489a083dbbe243f281f09184a1f2cfbe9bbb245f" dependencies = [ - "defmt 0.3.100", + "bitflags 2.11.0", + "defmt 1.0.1", "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.6.2", + "embassy-sync 0.8.0", + "embassy-time", "embassy-usb-driver", - "heapless", + "embedded-io-async 0.7.0", + "heapless 0.9.2", "ssmarshal", "usbd-hid", ] [[package]] name = "embassy-usb-driver" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "340c5ce591ef58c6449e43f51d2c53efe1bf0bb6a40cbf80afa0d259c7d52c76" +checksum = "17119855ccc2d1f7470a39756b12068454ae27a3eabb037d940b5c03d9c77b7a" dependencies = [ "defmt 1.0.1", - "embedded-io-async", + "embedded-io-async 0.6.1", ] [[package]] name = "embassy-usb-synopsys-otg" -version = "0.1.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d46be92e72bcf39e623ff74d739a8ab29b02f4909a9b05986ca81c2157ac254a" +checksum = "cbe46f4083109c7ea12a03ca61095d1e87c76fec52c7ca9ee06a42935606dacb" dependencies = [ "critical-section", - "embassy-sync 0.5.0", + "embassy-sync 0.8.0", "embassy-usb-driver", ] @@ -643,29 +721,34 @@ dependencies = [ "embedded-hal 1.0.0", ] -[[package]] -name = "embedded-hal-nb" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" -dependencies = [ - "embedded-hal 1.0.0", - "nb 1.1.0", -] - [[package]] name = "embedded-io" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" +[[package]] +name = "embedded-io" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7" + [[package]] name = "embedded-io-async" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" dependencies = [ - "embedded-io", + "embedded-io 0.6.1", +] + +[[package]] +name = "embedded-io-async" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2564b9f813c544241430e147d8bc454815ef9ac998878d30cc3055449f7fd4c0" +dependencies = [ + "embedded-io 0.7.1", ] [[package]] @@ -689,18 +772,6 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "enumset" version = "1.1.10" @@ -730,155 +801,180 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "esp-backtrace" -version = "0.14.2" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7660d85e3e7b0e113aaeeffb1a155e64a09a5035d4104031875acdba4cb68e" +checksum = "3318413fb566c7227387f67736cf70cd74d80a11f2bb31c7b95a9eb48d079669" dependencies = [ - "defmt 0.3.100", - "esp-build", + "cfg-if", + "defmt 1.0.1", + "document-features", + "esp-config", + "esp-metadata-generated", "esp-println", + "heapless 0.9.2", + "riscv", "semihosting", + "xtensa-lx", ] [[package]] -name = "esp-build" -version = "0.1.0" +name = "esp-config" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94a4b8d74e7cc7baabcca5b2277b41877e039ad9cd49959d48ef94dac7eab4b" +checksum = "102871054f8dd98202177b9890cb4b71d0c6fe1f1413b7a379a8e0841fc2473c" dependencies = [ + "document-features", + "esp-metadata-generated", + "serde", + "serde_yaml", + "somni-expr", +] + +[[package]] +name = "esp-hal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54786287c0a61ca0f78cb0c338a39427551d1be229103b4444591796c579e093" +dependencies = [ + "bitfield 0.19.4", + "bitflags 2.11.0", + "bytemuck", + "cfg-if", + "critical-section", + "delegate", + "digest", + "document-features", + "embassy-embedded-hal 0.5.0", + "embassy-futures", + "embassy-sync 0.7.2", + "embassy-usb-driver", + "embassy-usb-synopsys-otg", + "embedded-can", + "embedded-hal 1.0.0", + "embedded-hal-async", + "embedded-io 0.6.1", + "embedded-io 0.7.1", + "embedded-io-async 0.6.1", + "embedded-io-async 0.7.0", + "enumset", + "esp-config", + "esp-hal-procmacros", + "esp-metadata-generated", + "esp-riscv-rt", + "esp-rom-sys", + "esp-sync", + "esp-synopsys-usb-otg", + "esp32", + "esp32c2", + "esp32c3", + "esp32c6", + "esp32h2", + "esp32s2", + "esp32s3", + "fugit", + "instability", + "nb 1.1.0", + "paste", + "portable-atomic", + "rand_core 0.6.4", + "rand_core 0.9.5", + "riscv", + "strum", + "ufmt-write", + "xtensa-lx", + "xtensa-lx-rt", +] + +[[package]] +name = "esp-hal-procmacros" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e025a7a7a0affdb4ff913b5c4494aef96ee03d085bf83c27453ae3a71d50da6" +dependencies = [ + "document-features", + "object", + "proc-macro-crate", + "proc-macro2", "quote", "syn 2.0.117", "termcolor", ] [[package]] -name = "esp-config" -version = "0.2.0" +name = "esp-metadata-generated" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7584e4cd1dac06201fd92fff1c84b396be5458ac4d93e9457e7a89b1b42c60e" -dependencies = [ - "document-features", -] - -[[package]] -name = "esp-hal" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5605e1518d63f7bf9fbd9885e61d2896060d2e4f28954736bdd74da911b676" -dependencies = [ - "basic-toml", - "bitfield 0.17.0", - "bitflags 2.11.0", - "bytemuck", - "cfg-if", - "chrono", - "critical-section", - "delegate", - "document-features", - "embassy-embedded-hal", - "embassy-futures", - "embassy-sync 0.6.2", - "embassy-usb-driver", - "embassy-usb-synopsys-otg", - "embedded-can", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "embedded-hal-nb", - "embedded-io", - "embedded-io-async", - "enumset", - "esp-build", - "esp-config", - "esp-hal-procmacros", - "esp-metadata", - "esp-riscv-rt", - "esp-synopsys-usb-otg", - "esp32s3", - "fugit", - "nb 1.1.0", - "paste", - "portable-atomic", - "rand_core", - "serde", - "strum", - "ufmt-write", - "usb-device", - "void", - "xtensa-lx", - "xtensa-lx-rt", -] - -[[package]] -name = "esp-hal-embassy" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d0f2537ea2ff9bea26a1c8bfe43ad580d4c89febf27189653a9cf95f1f7961" -dependencies = [ - "critical-section", - "document-features", - "embassy-executor", - "embassy-time-driver", - "esp-build", - "esp-config", - "esp-hal", - "esp-hal-procmacros", - "esp-metadata", - "portable-atomic", - "static_cell", -] - -[[package]] -name = "esp-hal-procmacros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a9a8706b7d1182b56335d196e70eeb04e2b70f4b8db96432898bd3c2bdb91e" -dependencies = [ - "darling 0.20.11", - "document-features", - "litrs 0.4.2", - "object", - "proc-macro-crate", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "esp-metadata" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9972bbb21dcafe430b87f92efc7a788978a2d17cf8f572d104beeb48602482a" -dependencies = [ - "anyhow", - "basic-toml", - "serde", - "strum", -] +checksum = "9a93e39c8ad8d390d248dc7b9f4b59a873f313bf535218b8e2351356972399e3" [[package]] name = "esp-println" -version = "0.12.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee38e87bc7e303c299047c0e9bcd0f8ccca7c7e70d1fd78bbb565db14f33beb6" +checksum = "5a30e6c9fbcc01c348d46706fef8131c7775ab84c254a3cd65d0cd3f6414d592" dependencies = [ - "critical-section", - "defmt 0.3.100", - "esp-build", + "defmt 1.0.1", + "document-features", + "esp-metadata-generated", + "esp-sync", "log", "portable-atomic", ] [[package]] name = "esp-riscv-rt" -version = "0.9.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94aca65db6157aa5f42d9df6595b21462f28207ca4230b799aa3620352ef6a72" +checksum = "502744a5b1e7268d27fd2a4e56ad45efe42ead517d6c517a6961540de949b0ee" dependencies = [ "document-features", "riscv", - "riscv-rt-macros", + "riscv-rt", +] + +[[package]] +name = "esp-rom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd66cccc6dd2d13e9f33668a57717ab14a6d217180ec112e6be533de93e7ecbf" +dependencies = [ + "cfg-if", + "document-features", + "esp-metadata-generated", +] + +[[package]] +name = "esp-rtos" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ec711c8d06e79c67b75d01595539e86b0aac209643af98ca87a12250428b3" +dependencies = [ + "cfg-if", + "document-features", + "embassy-executor", + "embassy-sync 0.7.2", + "embassy-time-driver", + "embassy-time-queue-utils", + "esp-config", + "esp-hal", + "esp-hal-procmacros", + "esp-metadata-generated", + "esp-sync", + "portable-atomic", +] + +[[package]] +name = "esp-sync" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d44974639b4e88914f83fe60d2832c00276657d7d857628fdfc966cc7302e8a8" +dependencies = [ + "cfg-if", + "document-features", + "embassy-sync 0.6.2", + "embassy-sync 0.7.2", + "esp-metadata-generated", + "riscv", + "xtensa-lx", ] [[package]] @@ -895,10 +991,70 @@ dependencies = [ ] [[package]] -name = "esp32s3" -version = "0.29.0" +name = "esp32" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe69dca8db0ed37d222555f12dfaf99232592e84f54e56dd81e450a4769718bf" +checksum = "b76170a463d18f888a1ad258031901036fd827a9ef126733053ba5f8739fb0c8" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32c2" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e62cf8932966b8d445b6f1832977b468178f0a84effb2e9fda89f60c24d45aa3" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32c3" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "356af3771d0d6536c735bf71136594f4d1cbb506abf6e0c51a6639e9bf4e7988" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32c6" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5e511df672d79cd63365c92045135e01ba952b6bddd25b660baff5e1110f6b" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32h2" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed4a50bbd1380931e095e0973b9b12f782a9c481f2edf1f7c42e7eb4ff736d6d" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32s2" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98574d4c577fbe888fe3e6df7fc80d25a05624d9998f7d7de1500ae21fcca78f" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32s3" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1810d8ee4845ef87542af981e38eb80ab531d0ef1061e1486014ab7af74c337a" dependencies = [ "critical-section", "vcell", @@ -975,6 +1131,16 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "half" version = "2.7.1" @@ -1020,6 +1186,16 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "heapless" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" +dependencies = [ + "hash32", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -1043,29 +1219,39 @@ dependencies = [ ] [[package]] -name = "litrs" -version = "0.4.2" +name = "indoc" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" dependencies = [ - "proc-macro2", + "rustversion", ] +[[package]] +name = "instability" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" +dependencies = [ + "darling 0.23.0", + "indoc", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + [[package]] name = "litrs" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - [[package]] name = "log" version = "0.4.29" @@ -1132,12 +1318,6 @@ dependencies = [ "serde", ] -[[package]] -name = "mutex-trait" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4bb1638d419e12f8b1c43d9e639abd0d1424285bdea2f76aa231e233c63cd3a" - [[package]] name = "nb" version = "0.1.3" @@ -1154,135 +1334,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" [[package]] -name = "nrf51-pac" -version = "0.12.2" +name = "nrf-pac" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137f187dc6ee482e27312086bd3c3a83e1c273512782cf131a61957f72fc4219" +checksum = "bddd547fab92b0553ff37032034fd04ce8b8b60d3f9a83f89ea815dfd0400336" dependencies = [ "cortex-m", "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52805-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2da657648039d59f4de6bc31b948dd3a5d03b32529a4d5d19d9e2dd9d4bfa6c" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52810-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c26b12d5af17a9f4bb9a06ca9a1f814bca3d67bc8715b23f8dc230b09a227666" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52811-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4179b2a7ed0b2fd5e109d0fab9b4fc55b3936b2a4916a9306d22e5bc8dc1fd8f" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52820-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4791cff995e6419a5ad1aebc3b3c9539d79125ca85eb5bfd2cff9b470b81071" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52832-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0242b685c9c15648fb803e155628f42ace457478b2cb930868f40cae2db925e0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52833-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10e1358255b360cdc816dd7b6ef81be8c8499c0998277e5249bed222bd0f5241" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf52840-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30713f36f1be02e5bc9abefa30eae4a1f943d810f199d4923d3ad062d1be1b3d" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf5340-app-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c88824573cd150fe9f27c1a48cea31a8cb24d3322df488875775143618c087a" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf5340-net-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5c03e44df22fe5888109fe42e523162c7059adf4d30860f4f73ecc8b1fc16fe" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf9120-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c012f18dc278aa33741722d374bc84e3d2d7694e29745f0bb83e56b2d6faf9b" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", -] - -[[package]] -name = "nrf9160-pac" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7344d74afb5684e00c48d175cad9619f36d629cfb0687d33b4d1bb86fba688f4" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "vcell", ] [[package]] @@ -1296,9 +1354,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.7" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] @@ -1317,12 +1375,12 @@ checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" [[package]] name = "panic-probe" -version = "0.3.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4047d9235d1423d66cc97da7d07eddb54d4f154d6c13805c6d0793956f4f25b0" +checksum = "fd402d00b0fb94c5aee000029204a46884b1262e0c443f166d86d2c0747e1a1a" dependencies = [ "cortex-m", - "defmt 0.3.100", + "defmt 1.0.1", ] [[package]] @@ -1345,9 +1403,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] @@ -1427,12 +1485,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "r0" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" - [[package]] name = "ral-registers" version = "0.1.3" @@ -1446,10 +1498,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] -name = "riscv" -version = "0.12.1" +name = "rand_core" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" + +[[package]] +name = "riscv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05cfa3f7b30c84536a9025150d44d26b8e1cc20ddf436448d74cd9591eefb25" dependencies = [ "critical-section", "embedded-hal 1.0.0", @@ -1460,9 +1518,9 @@ dependencies = [ [[package]] name = "riscv-macros" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" +checksum = "7d323d13972c1b104aa036bc692cd08b822c8bbf23d79a27c526095856499799" dependencies = [ "proc-macro2", "quote", @@ -1476,16 +1534,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" [[package]] -name = "riscv-rt-macros" -version = "0.2.2" +name = "riscv-rt" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30f19a85fe107b65031e0ba8ec60c34c2494069fe910d6c297f5e7cb5a6f76d0" +checksum = "3d07b9f3a0eff773fc4df11f44ada4fa302e529bff4b7fe7e6a4b98a65ce9174" +dependencies = [ + "riscv", + "riscv-pac", + "riscv-rt-macros", + "riscv-target-parser", +] + +[[package]] +name = "riscv-rt-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def519ddeeb5e43c2b4fc3952c27b3a86782fc05192f322b2309125cd85b1fc3" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "riscv-target-parser" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1376b15f3ff160e9b1e8ea564ce427f2f6fcf77528cc0a8bf405cb476f9cea7" + [[package]] name = "rustc_version" version = "0.2.3" @@ -1502,10 +1578,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] -name = "scopeguard" -version = "1.2.0" +name = "ryu" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "semihosting" @@ -1559,23 +1635,33 @@ dependencies = [ ] [[package]] -name = "serde_spanned" -version = "0.6.9" +name = "serde_yaml" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ + "indexmap", + "itoa", + "ryu", "serde", + "unsafe-libyaml", ] [[package]] -name = "spin" -version = "0.9.8" +name = "somni-expr" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "3ed9b7648d5e8b2df6c5e49940c54bcdd2b4dd71eafc6e8f1c714eb4581b0f53" dependencies = [ - "lock_api", + "somni-parser", ] +[[package]] +name = "somni-parser" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0f368519fc6c85fc1afdb769fb5a51123f6158013e143656e25a3485a0d401c" + [[package]] name = "ssd1306" version = "0.10.0" @@ -1624,23 +1710,22 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", "syn 2.0.117", ] @@ -1695,46 +1780,35 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - [[package]] name = "toml_datetime" -version = "0.6.11" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "toml_edit" -version = "0.22.27" +version = "0.25.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" dependencies = [ "indexmap", - "serde", - "serde_spanned", "toml_datetime", - "toml_write", + "toml_parser", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.2" +name = "toml_parser" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +dependencies = [ + "winnow", +] [[package]] name = "typenum" @@ -1764,42 +1838,46 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "usb-device" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98816b1accafbb09085168b90f27e93d790b4bfa19d883466b5e53315b5f06a6" dependencies = [ - "heapless", + "heapless 0.8.0", "portable-atomic", ] [[package]] name = "usbd-hid" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f291ab53d428685cc780f08a2eb9d5d6ff58622db2b36e239a4f715f1e184c" +checksum = "68beab087e4971a2fe76f631478b0e91d39593f58efd2775026ce6dc07a7bac6" dependencies = [ - "serde", - "ssmarshal", "usb-device", "usbd-hid-macros", ] [[package]] name = "usbd-hid-descriptors" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee54712c5d778d2fb2da43b1ce5a7b5060886ef7b09891baeb4bf36910a3ed" +checksum = "b297f021719c4308d5d0c61b6c1e7c6b3ba383deba774b49aa5484f996bdb8f1" dependencies = [ "bitfield 0.14.0", ] [[package]] name = "usbd-hid-macros" -version = "0.8.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb573c76e7884035ac5e1ab4a81234c187a82b6100140af0ab45757650ccda38" +checksum = "011a3219e0933f5b3ad7dc90d9a66541a967d084c98c067deed1cd608e557ed7" dependencies = [ "byteorder", "hashbrown 0.13.2", @@ -1807,7 +1885,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 1.0.109", + "syn 2.0.117", "usbd-hid-descriptors", ] @@ -1864,50 +1942,39 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.15" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] [[package]] name = "xtensa-lx" -version = "0.9.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e758f94e1a1f71758f94052a2766dcb12604998eb372b8b2e30576e3ab1ba1e6" +checksum = "e012d667b0aa6d2592ace8ef145a98bff3e76cca7a644f4181ecd7a916ed289b" dependencies = [ - "bare-metal 1.0.0", - "mutex-trait", - "spin", + "critical-section", ] [[package]] name = "xtensa-lx-rt" -version = "0.17.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0307d03dadbf95633942e13901984f2059df4c963367348168cbd21c962669" +checksum = "8709f037fb123fe7ff146d2bce86f9dc0dfc53045c016bfd9d703317b6502845" dependencies = [ - "anyhow", - "bare-metal 1.0.0", "document-features", - "enum-as-inner", - "minijinja", - "r0", - "serde", - "strum", - "toml", "xtensa-lx", "xtensa-lx-rt-proc-macros", ] [[package]] name = "xtensa-lx-rt-proc-macros" -version = "0.2.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11277b1e4cbb7ffe44678c668518b249c843c81df249b8f096701757bc50d7ee" +checksum = "96fb42cd29c42f8744c74276e9f5bee7b06685bbe5b88df891516d72cb320450" dependencies = [ - "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.117", diff --git a/Cargo.toml b/Cargo.toml index f0d77053..d5a31202 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,16 +17,16 @@ categories = ["embedded", "hardware-support", "no-std"] [dependencies] cfg-if = "1.0" critical-section = "1.2" -defmt = "0.3" +defmt = "1.0" embedded-hal-async = "1.0" -embassy-embedded-hal = "0.2" -embassy-executor = { version = "0.6", features = ["task-arena-size-32768"] } -embassy-sync = "0.6" -embassy-time = "0.3" -embassy-usb = { version = "0.3", features = ["defmt"] } -embassy-usb-driver = "0.1" +embassy-embedded-hal = "0.6" +embassy-executor = "0.9" +embassy-sync = "0.8" +embassy-time = "0.5" +embassy-usb = { version = "0.6", features = ["defmt"] } +embassy-usb-driver = "0.2" ucobs = { path = "../ucobs" } -heapless = "0.8" +heapless = "0.9" lora-phy = "3.0" static_cell = "2.1" @@ -36,38 +36,36 @@ embedded-graphics = "0.8" ssd1306 = { version = "0.10", features = ["async"] } # Async IO traits and combinators -embedded-io-async = "0.6" +embedded-io-async = "0.7" embassy-futures = "0.1" # ESP32-S3 (Heltec V3) — requires esp toolchain (espup) -esp-backtrace = { version = "0.14", optional = true, features = ["esp32s3", "panic-handler", "exception-handler", "defmt"] } -esp-hal = { version = "0.22", optional = true, features = ["esp32s3"] } -esp-hal-embassy = { version = "0.5", optional = true, features = ["esp32s3"] } -esp-println = { version = "0.12", optional = true, features = ["esp32s3", "defmt-espflash"] } +esp-backtrace = { version = "0.18", optional = true, features = ["esp32s3", "panic-handler", "defmt"] } +esp-hal = { version = "1.0", optional = true, features = ["esp32s3", "unstable"] } +esp-println = { version = "0.16", optional = true, features = ["esp32s3", "defmt-espflash"] } +esp-rtos = { version = "0.2", optional = true, features = ["esp32s3", "embassy"] } # nRF52840 (RAK 4631) cortex-m-rt = { version = "0.7", optional = true } -embassy-nrf = { version = "0.2", optional = true, features = ["nrf52840", "gpiote", "time-driver-rtc1", "defmt"] } -panic-probe = { version = "0.3", optional = true, features = ["print-defmt"] } +embassy-nrf = { version = "0.10", optional = true, features = ["nrf52840", "gpiote", "time-driver-rtc1", "defmt"] } +panic-probe = { version = "1.0", optional = true, features = ["print-defmt"] } [build-dependencies] -minijinja = "2.0" -owo-colors = "4.0" +minijinja = "2.18" +owo-colors = "4.3" [features] heltec_v3 = [ "dep:esp-backtrace", "dep:esp-hal", - "dep:esp-hal-embassy", "dep:esp-println", - "embassy-time/generic-queue-8", + "dep:esp-rtos", ] heltec_v4 = [ "dep:esp-backtrace", "dep:esp-hal", - "dep:esp-hal-embassy", "dep:esp-println", - "embassy-time/generic-queue-8", + "dep:esp-rtos", ] rak_wisblock_4631 = [ "dep:cortex-m-rt", diff --git a/Justfile b/Justfile index f85c1665..555e8f7b 100644 --- a/Justfile +++ b/Justfile @@ -113,7 +113,7 @@ _require_esp_toolchain: echo "error: ESP toolchain not found" >&2; \ echo " install:" >&2; \ echo " cargo install espup" >&2; \ - echo " espup install --toolchain-version 1.82.0.3" >&2; \ + echo " espup install" >&2; \ exit 1; \ fi diff --git a/src/board/heltec_v3.rs b/src/board/heltec_v3.rs index 454066a1..2f3745ad 100644 --- a/src/board/heltec_v3.rs +++ b/src/board/heltec_v3.rs @@ -2,12 +2,12 @@ use super::traits::LoRaBoard; use embassy_embedded_hal::shared_bus::asynch::spi::SpiDevice; use embassy_sync::blocking_mutex::raw::NoopRawMutex; use embassy_time::Delay; -use esp_hal::dma::{Dma, DmaPriority}; -use esp_hal::gpio::{Input, Level, Output, Pull}; +use esp_hal::dma::{DmaRxBuf, DmaTxBuf}; +use esp_hal::gpio::{Input, InputConfig, Level, Output, OutputConfig, Pull}; use esp_hal::i2c::master::{Config as I2cConfig, I2c}; -use esp_hal::prelude::*; use esp_hal::spi::master::{Config as SpiConfig, Spi, SpiDmaBus}; -use esp_hal::spi::SpiMode; +use esp_hal::spi::Mode as SpiMode; +use esp_hal::time::Rate; use esp_hal::timer::timg::TimerGroup; use static_cell::StaticCell; @@ -67,32 +67,30 @@ impl Board { pub fn into_parts(self) -> (RadioParts, UsbParts, Option) { let p = self.p; - // ── Embassy time driver ──────────────────────────────────── + // ── esp-rtos scheduler + embassy time driver ────────────── let timg0 = TimerGroup::new(p.TIMG0); - esp_hal_embassy::init(timg0.timer0); + esp_rtos::start(timg0.timer0); // ── Vext power: GPIO21, active LOW to enable OLED ────────── - let vext = Output::new(p.GPIO21, Level::Low); + let vext = Output::new(p.GPIO21, Level::Low, OutputConfig::default()); core::mem::forget(vext); // hold pin low permanently; drop would reset it - // ── DMA for SPI ──────────────────────────────────────────── - let dma = Dma::new(p.DMA); - let dma_ch = dma.channel0.configure(false, DmaPriority::Priority0); - // ── SPI + DMA for SX1262 ─────────────────────────────────── - let spi = Spi::new_with_config(p.SPI2, SpiConfig { - frequency: 1u32.MHz(), - mode: SpiMode::Mode0, - ..Default::default() - }) + let spi = Spi::new( + p.SPI2, + SpiConfig::default() + .with_frequency(Rate::from_mhz(1)) + .with_mode(SpiMode::_0), + ) + .expect("SPI init") .with_sck(p.GPIO9) .with_mosi(p.GPIO10) .with_miso(p.GPIO11) - .with_dma(dma_ch); + .with_dma(p.DMA_CH0); let (rx_buf, rx_desc, tx_buf, tx_desc) = esp_hal::dma_buffers!(256); - let dma_rx = esp_hal::dma::DmaRxBuf::new(rx_desc, rx_buf).expect("DMA RX buf"); - let dma_tx = esp_hal::dma::DmaTxBuf::new(tx_desc, tx_buf).expect("DMA TX buf"); + let dma_rx = DmaRxBuf::new(rx_desc, rx_buf).expect("DMA RX buf"); + let dma_tx = DmaTxBuf::new(tx_desc, tx_buf).expect("DMA TX buf"); let spi = spi.with_buffers(dma_rx, dma_tx).into_async(); @@ -100,13 +98,13 @@ impl Board { StaticCell::new(); let spi_bus = SPI_BUS.init(embassy_sync::mutex::Mutex::new(spi)); - let nss = Output::new(p.GPIO8, Level::High); + let nss = Output::new(p.GPIO8, Level::High, OutputConfig::default()); let spi_device = SpiDevice::new(spi_bus, nss); // ── SX1262 control pins ──────────────────────────────────── - let reset = Output::new(p.GPIO12, Level::High); - let dio1 = Input::new(p.GPIO14, Pull::Down); - let busy = Input::new(p.GPIO13, Pull::Down); + let reset = Output::new(p.GPIO12, Level::High, OutputConfig::default()); + let dio1 = Input::new(p.GPIO14, InputConfig::default().with_pull(Pull::Down)); + let busy = Input::new(p.GPIO13, InputConfig::default().with_pull(Pull::Down)); let iv = GenericSx126xInterfaceVariant::new(reset, dio1, busy, None, None).expect("SX1262 interface init"); @@ -136,6 +134,7 @@ impl Board { // ── Display (SSD1306 OLED on I2C, 0x3C) ─────────────────── let i2c = I2c::new(p.I2C0, I2cConfig::default()) + .expect("I2C init") .with_sda(p.GPIO17) .with_scl(p.GPIO18) .into_async(); diff --git a/src/board/heltec_v4.rs b/src/board/heltec_v4.rs index db034435..d5289545 100644 --- a/src/board/heltec_v4.rs +++ b/src/board/heltec_v4.rs @@ -1,12 +1,12 @@ use embassy_embedded_hal::shared_bus::asynch::spi::SpiDevice; use embassy_sync::blocking_mutex::raw::NoopRawMutex; use embassy_time::Delay; -use esp_hal::dma::{Dma, DmaPriority}; -use esp_hal::gpio::{Input, Level, Output, Pull}; +use esp_hal::dma::{DmaRxBuf, DmaTxBuf}; +use esp_hal::gpio::{Input, InputConfig, Level, Output, OutputConfig, Pull}; use esp_hal::i2c::master::{Config as I2cConfig, I2c}; -use esp_hal::prelude::*; use esp_hal::spi::master::{Config as SpiConfig, Spi, SpiDmaBus}; -use esp_hal::spi::SpiMode; +use esp_hal::spi::Mode as SpiMode; +use esp_hal::time::Rate; use esp_hal::timer::timg::TimerGroup; use static_cell::StaticCell; @@ -67,32 +67,30 @@ impl Board { pub fn into_parts(self) -> (RadioParts, UsbParts, Option) { let p = self.p; - // ── Embassy time driver ──────────────────────────────────── + // ── esp-rtos scheduler + embassy time driver ────────────── let timg0 = TimerGroup::new(p.TIMG0); - esp_hal_embassy::init(timg0.timer0); + esp_rtos::start(timg0.timer0); // ── Vext power: GPIO36 ───────────────────────────────────── - let vext = Output::new(p.GPIO36, Level::Low); + let vext = Output::new(p.GPIO36, Level::Low, OutputConfig::default()); core::mem::forget(vext); // hold pin low permanently; drop would reset it - // ── DMA for SPI ──────────────────────────────────────────── - let dma = Dma::new(p.DMA); - let dma_ch = dma.channel0.configure(false, DmaPriority::Priority0); - // ── SPI + DMA for SX1262 ─────────────────────────────────── - let spi = Spi::new_with_config(p.SPI2, SpiConfig { - frequency: 1u32.MHz(), - mode: SpiMode::Mode0, - ..Default::default() - }) + let spi = Spi::new( + p.SPI2, + SpiConfig::default() + .with_frequency(Rate::from_mhz(1)) + .with_mode(SpiMode::_0), + ) + .expect("SPI init") .with_sck(p.GPIO9) .with_mosi(p.GPIO10) .with_miso(p.GPIO11) - .with_dma(dma_ch); + .with_dma(p.DMA_CH0); let (rx_buf, rx_desc, tx_buf, tx_desc) = esp_hal::dma_buffers!(256); - let dma_rx = esp_hal::dma::DmaRxBuf::new(rx_desc, rx_buf).expect("DMA RX buf"); - let dma_tx = esp_hal::dma::DmaTxBuf::new(tx_desc, tx_buf).expect("DMA TX buf"); + let dma_rx = DmaRxBuf::new(rx_desc, rx_buf).expect("DMA RX buf"); + let dma_tx = DmaTxBuf::new(tx_desc, tx_buf).expect("DMA TX buf"); let spi = spi.with_buffers(dma_rx, dma_tx).into_async(); @@ -100,13 +98,13 @@ impl Board { StaticCell::new(); let spi_bus = SPI_BUS.init(embassy_sync::mutex::Mutex::new(spi)); - let nss = Output::new(p.GPIO8, Level::High); + let nss = Output::new(p.GPIO8, Level::High, OutputConfig::default()); let spi_device = SpiDevice::new(spi_bus, nss); // ── SX1262 control pins ──────────────────────────────────── - let reset = Output::new(p.GPIO12, Level::High); - let dio1 = Input::new(p.GPIO14, Pull::Down); - let busy = Input::new(p.GPIO13, Pull::Down); + let reset = Output::new(p.GPIO12, Level::High, OutputConfig::default()); + let dio1 = Input::new(p.GPIO14, InputConfig::default().with_pull(Pull::Down)); + let busy = Input::new(p.GPIO13, InputConfig::default().with_pull(Pull::Down)); let iv = GenericSx126xInterfaceVariant::new(reset, dio1, busy, None, None) .expect("SX1262 interface init"); @@ -138,13 +136,14 @@ impl Board { }; // ── Display (SSD1315 OLED on I2C, 0x3C) ─────────────────── - let mut display_rst = Output::new(p.GPIO21, Level::Low); + let mut display_rst = Output::new(p.GPIO21, Level::Low, OutputConfig::default()); esp_hal::delay::Delay::new().delay_millis(10); display_rst.set_high(); esp_hal::delay::Delay::new().delay_millis(10); core::mem::forget(display_rst); // hold reset high permanently let i2c = I2c::new(p.I2C0, I2cConfig::default()) + .expect("I2C init") .with_sda(p.GPIO17) .with_scl(p.GPIO18) .into_async(); diff --git a/src/board/rak_wisblock_4631.rs b/src/board/rak_wisblock_4631.rs index 1486dad1..4f5d1e78 100644 --- a/src/board/rak_wisblock_4631.rs +++ b/src/board/rak_wisblock_4631.rs @@ -1,6 +1,5 @@ use embassy_embedded_hal::shared_bus::asynch::spi::SpiDevice; -use embassy_nrf::gpio::{AnyPin, Input, Level, Output, OutputDrive, Pull}; -use embassy_nrf::peripherals::USBD; +use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull}; use embassy_nrf::spim::{self, Spim}; use embassy_nrf::twim::{self, Twim}; use embassy_nrf::usb::Driver; @@ -15,14 +14,14 @@ use lora_phy::sx126x::{self, Sx1262, Sx126x}; use super::traits::LoRaBoard; bind_interrupts!(struct Irqs { - USBD => embassy_nrf::usb::InterruptHandler; + USBD => embassy_nrf::usb::InterruptHandler; SPIM3 => embassy_nrf::spim::InterruptHandler; - SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0 => embassy_nrf::twim::InterruptHandler; + TWISPI0 => embassy_nrf::twim::InterruptHandler; }); // ── Concrete peripheral types ──────────────────────────────────────── -type SpiBus = Spim<'static, embassy_nrf::peripherals::SPI3>; +type SpiBus = Spim<'static>; type Nss = Output<'static>; type Iv = GenericSx126xInterfaceVariant, Input<'static>>; type RadioSpiDevice = SpiDevice<'static, NoopRawMutex, SpiBus, Nss>; @@ -30,10 +29,10 @@ type RadioSpiDevice = SpiDevice<'static, NoopRawMutex, SpiBus, Nss>; pub type RadioDriver = Sx126x; /// USB driver for CDC-ACM. -pub type UsbDriver = Driver<'static, USBD, &'static embassy_nrf::usb::vbus_detect::SoftwareVbusDetect>; +pub type UsbDriver = Driver<'static, &'static embassy_nrf::usb::vbus_detect::SoftwareVbusDetect>; /// I2C bus for an optional SSD1306 OLED. -pub type DisplayI2c = Twim<'static, embassy_nrf::peripherals::TWISPI0>; +pub type DisplayI2c = Twim<'static>; // ── Peripheral bundles ─────────────────────────────────────────────── @@ -97,13 +96,13 @@ impl Board { StaticCell::new(); let spi_bus = SPI_BUS.init(embassy_sync::mutex::Mutex::new(spi)); - let nss = Output::new(AnyPin::from(p.P1_10), Level::High, OutputDrive::Standard); + let nss = Output::new(p.P1_10, Level::High, OutputDrive::Standard); let spi_device = SpiDevice::new(spi_bus, nss); // ── SX1262 control pins ────────────────────────────────── - let reset = Output::new(AnyPin::from(p.P1_06), Level::High, OutputDrive::Standard); - let dio1 = Input::new(AnyPin::from(p.P1_15), Pull::Down); - let busy = Input::new(AnyPin::from(p.P1_14), Pull::Down); + let reset = Output::new(p.P1_06, Level::High, OutputDrive::Standard); + let dio1 = Input::new(p.P1_15, Pull::Down); + let busy = Input::new(p.P1_14, Pull::Down); let iv = GenericSx126xInterfaceVariant::new(reset, dio1, busy, None, None).expect("SX1262 interface init"); @@ -130,8 +129,10 @@ impl Board { // ── Display (optional RAK1921 SSD1306 OLED on I2C) ────── // Always provide the I2C bus; display_task detects presence // via SSD1306 init (fails gracefully if no display attached). + static TWIM_BUF: StaticCell<[u8; 256]> = StaticCell::new(); + let twim_buf = TWIM_BUF.init([0u8; 256]); let i2c_cfg = twim::Config::default(); - let i2c = Twim::new(p.TWISPI0, Irqs, p.P0_13, p.P0_14, i2c_cfg); + let i2c = Twim::new(p.TWISPI0, Irqs, p.P0_13, p.P0_14, i2c_cfg, twim_buf); let mac = Self::mac_address(); let display = Some(DisplayParts { i2c, mac }); diff --git a/src/main.rs b/src/main.rs index 37f3d7d8..9acaf285 100644 --- a/src/main.rs +++ b/src/main.rs @@ -48,7 +48,7 @@ cfg_if::cfg_if! { run(spawner).await; } } else if #[cfg(any(feature = "heltec_v3", feature = "heltec_v4"))] { - #[esp_hal_embassy::main] + #[esp_rtos::main] async fn main(spawner: Spawner) { run(spawner).await; }