commit af462d90037b8c518b0fce273cfb3f463480d993
parent 0c2f8542f8126a8b187cd557dd6e237343083f56
Author: filipton <filipton12@gmail.com>
Date: Wed, 20 Nov 2024 14:10:41 +0100
chore: update example to newest esp-hal
Diffstat:
4 files changed, 162 insertions(+), 122 deletions(-)
diff --git a/examples/Cargo.lock b/examples/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[package]]
name = "anyhow"
-version = "1.0.89"
+version = "1.0.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
+checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
[[package]]
name = "as-slice"
@@ -73,9 +73,9 @@ dependencies = [
[[package]]
name = "bitfield"
-version = "0.16.1"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5acf59e2452f0c4b968b15ce4b9468f57b45f7733b919d68b19fcc39264bfb8"
+checksum = "f798d2d157e547aa99aab0967df39edd0b70307312b6f8bd2848e6abe40896e0"
[[package]]
name = "bitflags"
@@ -104,9 +104,9 @@ dependencies = [
[[package]]
name = "bytemuck"
-version = "1.18.0"
+version = "1.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
+checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a"
[[package]]
name = "byteorder"
@@ -131,9 +131,9 @@ dependencies = [
[[package]]
name = "critical-section"
-version = "1.1.3"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242"
+checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
[[package]]
name = "darling"
@@ -156,7 +156,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -167,18 +167,18 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
name = "delegate"
-version = "0.12.0"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e018fccbeeb50ff26562ece792ed06659b9c2dae79ece77c4456bb10d9bf79b"
+checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -197,10 +197,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]]
+name = "embassy-embedded-hal"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5794414bc20e0d750f145bc0e82366b19dd078e9e075e8331fb8dd069a1cb6a2"
+dependencies = [
+ "embassy-futures",
+ "embassy-sync 0.6.0",
+ "embassy-time",
+ "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-executor"
-version = "0.6.0"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09ed0e24bdd4a5f4ff1b72ee4f264b1d23e179ea71a77d984b5fd24877a2bbe1"
+checksum = "f64f84599b0f4296b92a4b6ac2109bc02340094bda47b9766c5f9ec6a318ebf8"
dependencies = [
"critical-section",
"document-features",
@@ -211,14 +228,14 @@ dependencies = [
[[package]]
name = "embassy-executor-macros"
-version = "0.5.0"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4d4c0c34b32c2c653c9eecce1cefaf8539dd9a54e61deb5499254f01e2fcac2"
+checksum = "3577b1e9446f61381179a330fc5324b01d511624c55f25e3c66c9e3c626dbecf"
dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -418,15 +435,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032"
[[package]]
+name = "embedded-storage-async"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1763775e2323b7d5f0aa6090657f5e21cfa02ede71f5dc40eead06d64dcd15cc"
+dependencies = [
+ "embedded-storage",
+]
+
+[[package]]
name = "enum-as-inner"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
dependencies = [
- "heck 0.4.1",
+ "heck",
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -447,7 +473,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -485,24 +511,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b94a4b8d74e7cc7baabcca5b2277b41877e039ad9cd49959d48ef94dac7eab4b"
dependencies = [
"quote",
- "syn 2.0.79",
+ "syn",
"termcolor",
]
[[package]]
name = "esp-config"
-version = "0.1.0"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eeb7365af80ce4f8a1a2536676daf4e3d1487ec7a5b2eda0e8c458b9ba8b266"
+checksum = "f7584e4cd1dac06201fd92fff1c84b396be5458ac4d93e9457e7a89b1b42c60e"
dependencies = [
"document-features",
]
[[package]]
name = "esp-hal"
-version = "0.21.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef2983f6fd1fdbd19217019958517257a0b6495e8aa618cb505612cc7ead44ec"
+checksum = "1a5605e1518d63f7bf9fbd9885e61d2896060d2e4f28954736bdd74da911b676"
dependencies = [
"basic-toml",
"bitfield",
@@ -513,6 +539,7 @@ dependencies = [
"critical-section",
"delegate",
"document-features",
+ "embassy-embedded-hal",
"embassy-futures",
"embassy-sync 0.6.0",
"embassy-usb-driver",
@@ -550,15 +577,16 @@ dependencies = [
[[package]]
name = "esp-hal-embassy"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d17e1b37de4605fdcadbb2a9701065e7d6ed376b473bf8eeac1d879a53b3470"
+checksum = "c7d0f2537ea2ff9bea26a1c8bfe43ad580d4c89febf27189653a9cf95f1f7961"
dependencies = [
"critical-section",
"document-features",
"embassy-executor",
"embassy-time-driver",
"esp-build",
+ "esp-config",
"esp-hal",
"esp-hal-procmacros",
"esp-metadata",
@@ -568,7 +596,7 @@ dependencies = [
[[package]]
name = "esp-hal-ota"
-version = "0.1.3"
+version = "0.1.4"
dependencies = [
"embedded-storage",
"log",
@@ -592,14 +620,13 @@ dependencies = [
"esp-wifi",
"log",
"static_cell",
- "xtensa-lx-rt",
]
[[package]]
name = "esp-hal-procmacros"
-version = "0.14.0"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34022a362a27f781b83852afd0c856a43e2ee5b4334cdc292bd80c9be482a1f5"
+checksum = "69a9a8706b7d1182b56335d196e70eeb04e2b70f4b8db96432898bd3c2bdb91e"
dependencies = [
"darling",
"document-features",
@@ -609,7 +636,7 @@ dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -638,9 +665,9 @@ dependencies = [
[[package]]
name = "esp-riscv-rt"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfc32298ed7c263b06c8b031704d8517cc62c819f2a9d5c261d0cb119634d6e9"
+checksum = "94aca65db6157aa5f42d9df6595b21462f28207ca4230b799aa3620352ef6a72"
dependencies = [
"document-features",
"riscv",
@@ -649,9 +676,9 @@ dependencies = [
[[package]]
name = "esp-storage"
-version = "0.3.1"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b475dc7bd3b5c33718a5e65c9f192ba4493f1244bf696e8b3a8743dff795bc3f"
+checksum = "661aebceb62e0caadd7e6bddd88b2d891c3b08cea4eb5afe96ef697674ccda5c"
dependencies = [
"critical-section",
"embedded-storage",
@@ -673,9 +700,9 @@ dependencies = [
[[package]]
name = "esp-wifi"
-version = "0.10.1"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44431e7946c560e7632f3d0241763681da1376b357f2cba1362be168bc38d162"
+checksum = "00d36018303cd60a30184c6f605a921038c08ff34afc870e22070ea08a6280a2"
dependencies = [
"bt-hci",
"cfg-if",
@@ -695,29 +722,29 @@ dependencies = [
"fugit",
"heapless",
"libm",
- "no-std-net",
"num-derive",
"num-traits",
"portable-atomic",
"portable_atomic_enum",
+ "rand_core",
"smoltcp",
"xtensa-lx-rt",
]
[[package]]
name = "esp-wifi-sys"
-version = "0.6.0"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f339ddb1664812e79992a8231a3f8603456c80b769066313150831f2b0bf66e7"
+checksum = "7730d6093853119088bbb793e3383801965ebe8fcf91e0817781d94628aaf718"
dependencies = [
"anyhow",
]
[[package]]
name = "esp32c3"
-version = "0.25.0"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3922cd13da83d070892c47e66f005856c62510952198c3008bc4f3b79f3e9623"
+checksum = "5d1750382dc49fa333ee6b1ba96f8c540038b9666f5a233dc1221c98e3236118"
dependencies = [
"critical-section",
"vcell",
@@ -725,13 +752,12 @@ dependencies = [
[[package]]
name = "esp32s3"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae51703c44196b924910bd8ea7285e5a234d1a5aebcd0b60a997cd5081eb002"
+checksum = "fe69dca8db0ed37d222555f12dfaf99232592e84f54e56dd81e450a4769718bf"
dependencies = [
"critical-section",
"vcell",
- "xtensa-lx",
]
[[package]]
@@ -803,7 +829,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -894,12 +920,6 @@ dependencies = [
[[package]]
name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-[[package]]
-name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
@@ -922,9 +942,9 @@ dependencies = [
[[package]]
name = "libm"
-version = "0.2.8"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
[[package]]
name = "linked_list_allocator"
@@ -971,9 +991,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "minijinja"
-version = "2.2.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d7d3e3a3eece1fa4618237ad41e1de855ced47eab705cec1c9a920e1d1c5aad"
+checksum = "2c37e1b517d1dcd0e51dc36c4567b9d5a29262b3ec8da6cb5d35e27a8fb529b5"
dependencies = [
"serde",
]
@@ -1013,7 +1033,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -1076,7 +1096,7 @@ checksum = "a33fa6ec7f2047f572d49317cca19c87195de99c6e5b6ee492da701cfe02b053"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -1107,14 +1127,14 @@ dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
name = "proc-macro2"
-version = "1.0.87"
+version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
dependencies = [
"unicode-ident",
]
@@ -1148,23 +1168,43 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
[[package]]
name = "riscv"
-version = "0.11.1"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9"
+checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7"
dependencies = [
"critical-section",
"embedded-hal 1.0.0",
+ "paste",
+ "riscv-macros",
+ "riscv-pac",
]
[[package]]
+name = "riscv-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "riscv-pac"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436"
+
+[[package]]
name = "riscv-rt-macros"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8d100d466dbb76681ef6a9386f3da9abc570d57394e86da0ba5af8c4408486d"
+checksum = "30f19a85fe107b65031e0ba8ec60c34c2494069fe910d6c297f5e7cb5a6f76d0"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn",
]
[[package]]
@@ -1187,22 +1227,22 @@ checksum = "3f69d4d7b8d5f6595ac8901b8c4ede3339b1b4c8565f9d3180d20fc046cca177"
[[package]]
name = "serde"
-version = "1.0.210"
+version = "1.0.215"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.210"
+version = "1.0.215"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
[[package]]
@@ -1272,29 +1312,18 @@ version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
- "heck 0.5.0",
+ "heck",
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.79",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
+ "syn",
]
[[package]]
name = "syn"
-version = "2.0.79"
+version = "2.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
+checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
dependencies = [
"proc-macro2",
"quote",
@@ -1494,9 +1523,9 @@ dependencies = [
[[package]]
name = "xtensa-lx-rt"
-version = "0.17.1"
+version = "0.17.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ceb69c1487b78d83531c5d94fb81d0dceef1ccb0affba29f29420b1f72d3ddb"
+checksum = "5c0307d03dadbf95633942e13901984f2059df4c963367348168cbd21c962669"
dependencies = [
"anyhow",
"bare-metal",
@@ -1520,5 +1549,5 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.79",
+ "syn",
]
diff --git a/examples/Cargo.toml b/examples/Cargo.toml
@@ -7,18 +7,18 @@ license = "MIT OR Apache-2.0"
[dependencies]
esp-backtrace = { version = "0.14.2", features = [ "exception-handler", "panic-handler", "println" ] }
-esp-hal = { version = "0.21.0", features = [] }
+esp-hal = { version = "0.22.0", features = [] }
esp-println = { version = "0.12.0", features = ["log"] }
log = { version = "0.4.22" }
-esp-wifi = { version = "0.10.1", features = [ "phy-enable-usb", "utils", "wifi", "dhcpv4", "ble", "embassy-net" ] }
-esp-hal-embassy = { version = "0.4.0", features = ["integrated-timers"] }
+esp-wifi = { version = "0.11.0", features = [ "utils", "wifi", "ble" ] }
+esp-hal-embassy = { version = "0.5.0", features = ["integrated-timers"] }
embassy-executor = { version = "0.6.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.2" }
-esp-storage = { version = "0.3.1", features = [] }
-esp-hal-ota = { path = "../", features = [] }
+esp-storage = { version = "0.4.0", features = [] }
+esp-hal-ota = { path = "/home/pilif/projects/esp-hal-ota", features = [] }
static_cell = { version = "2.1.0", features = ["nightly"] }
-xtensa-lx-rt = { version = "0.17.1", optional = true, features = ["esp32s3", "float-save-restore"] }
+#xtensa-lx-rt = { version = "0.17.2", optional = true, features = ["esp32s3", "float-save-restore"] }
esp-alloc = "0.5.0"
[build-dependencies]
@@ -40,5 +40,5 @@ overflow-checks = false
[features]
default = ["esp32s3"]
-esp32s3 = ["esp-backtrace/esp32s3", "esp-hal/esp32s3", "esp-println/esp32s3", "esp-wifi/esp32s3", "esp-hal-embassy/esp32s3", "esp-storage/esp32s3", "esp-hal-ota/esp32s3", "dep:xtensa-lx-rt"]
+esp32s3 = ["esp-backtrace/esp32s3", "esp-hal/esp32s3", "esp-println/esp32s3", "esp-wifi/esp32s3", "esp-hal-embassy/esp32s3", "esp-storage/esp32s3", "esp-hal-ota/esp32s3"]
esp32c3 = ["esp-backtrace/esp32c3", "esp-hal/esp32c3", "esp-println/esp32c3", "esp-wifi/esp32c3", "esp-hal-embassy/esp32c3", "esp-storage/esp32c3", "esp-hal-ota/esp32c3"]
diff --git a/examples/build.rs b/examples/build.rs
@@ -7,5 +7,4 @@ fn main() {
}
println!("cargo:rustc-link-arg-bins=-Tlinkall.x");
- println!("cargo:rustc-link-arg-bins=-Trom_functions.x");
}
diff --git a/examples/src/main.rs b/examples/src/main.rs
@@ -11,11 +11,13 @@ use esp_backtrace as _;
use esp_hal::{prelude::*, timer::timg::TimerGroup};
use esp_hal_ota::Ota;
use esp_storage::FlashStorage;
-use esp_wifi::wifi::{
- ClientConfiguration, Configuration, WifiController, WifiDevice, WifiEvent, WifiStaDevice,
- WifiState,
+use esp_wifi::{
+ wifi::{
+ ClientConfiguration, Configuration, WifiController, WifiDevice, WifiEvent, WifiStaDevice,
+ WifiState,
+ },
+ EspWifiController,
};
-use static_cell::make_static;
const WIFI_SSID: &'static str = env!("SSID");
const WIFI_PSK: &'static str = env!("PSK");
@@ -26,6 +28,15 @@ const TX_BUFFER_SIZE: usize = 16384;
static mut TX_BUFF: [u8; TX_BUFFER_SIZE] = [0; TX_BUFFER_SIZE];
static mut RX_BUFF: [u8; RX_BUFFER_SIZE] = [0; RX_BUFFER_SIZE];
+macro_rules! mk_static {
+ ($t:ty,$val:expr) => {{
+ static STATIC_CELL: static_cell::StaticCell<$t> = static_cell::StaticCell::new();
+ #[deny(unused_attributes)]
+ let x = STATIC_CELL.uninit().write(($val));
+ x
+ }};
+}
+
#[main]
async fn main(spawner: Spawner) {
esp_alloc::heap_allocator!(150 * 1024);
@@ -38,13 +49,11 @@ async fn main(spawner: Spawner) {
let rng = esp_hal::rng::Rng::new(peripherals.RNG);
let timg1 = TimerGroup::new(peripherals.TIMG1);
- let init = esp_wifi::init(
- esp_wifi::EspWifiInitFor::Wifi,
- timg1.timer0,
- rng.clone(),
- peripherals.RADIO_CLK,
- )
- .unwrap();
+
+ let init = &*mk_static!(
+ EspWifiController<'static>,
+ esp_wifi::init(timg1.timer0, rng.clone(), peripherals.RADIO_CLK).unwrap()
+ );
let timg0 = TimerGroup::new(peripherals.TIMG0);
esp_hal_embassy::init(timg0.timer0);
@@ -56,12 +65,15 @@ async fn main(spawner: Spawner) {
let config = Config::dhcpv4(Default::default());
let seed = 69420;
- let stack = &*make_static!(Stack::new(
- wifi_interface,
- config,
- make_static!(StackResources::<3>::new()),
- seed,
- ));
+ let stack = &*mk_static!(
+ Stack<WifiDevice<'_, WifiStaDevice>>,
+ Stack::new(
+ wifi_interface,
+ config,
+ mk_static!(StackResources<3>, StackResources::<3>::new()),
+ seed,
+ )
+ );
spawner
.spawn(connection(controller, stack))
@@ -158,9 +170,9 @@ async fn connection(
stack: &'static Stack<WifiDevice<'static, WifiStaDevice>>,
) {
log::info!("start connection task");
- log::info!("Device capabilities: {:?}", controller.get_capabilities());
+ log::info!("Device capabilities: {:?}", controller.capabilities());
loop {
- if esp_wifi::wifi::get_wifi_state() == WifiState::StaConnected {
+ if esp_wifi::wifi::wifi_state() == WifiState::StaConnected {
// wait until we're no longer connected
controller.wait_for_event(WifiEvent::StaDisconnected).await;
Timer::after(Duration::from_millis(5000)).await
@@ -173,12 +185,12 @@ async fn connection(
});
controller.set_configuration(&client_config).unwrap();
log::info!("Starting wifi");
- controller.start().await.unwrap();
+ controller.start_async().await.unwrap();
log::info!("Wifi started!");
}
log::info!("About to connect...");
- match controller.connect().await {
+ match controller.connect_async().await {
Ok(_) => {
log::info!("Wifi connected!");