ivmarkov / rust-esp32-std-demo

Rust on ESP32 STD demo app. A demo STD binary crate for the ESP32[XX] and ESP-IDF, which connects to WiFi, Ethernet, drives a small HTTP server and draws on a LED screen.
Apache License 2.0
784 stars 105 forks source link

Build errors in esp-idf-hal-0.32.10 #62

Closed brianmay closed 2 years ago

brianmay commented 2 years ago
   Compiling esp-idf-hal v0.32.10
error[E0433]: failed to resolve: could not find `Operation` in `spi`
   --> /home/brian/.cargo/registry/src/github.com-1ecc6299db9ec823/esp-idf-hal-0.32.10/src/spi.rs:575:50
    |
575 |                 embedded_hal_0_2::blocking::spi::Operation::Write(write) => {
    |                                                  ^^^^^^^^^ could not find `Operation` in `spi`

error[E0433]: failed to resolve: could not find `Operation` in `spi`
   --> /home/brian/.cargo/registry/src/github.com-1ecc6299db9ec823/esp-idf-hal-0.32.10/src/spi.rs:578:50
    |
578 |                 embedded_hal_0_2::blocking::spi::Operation::Transfer(words) => {
    |                                                  ^^^^^^^^^ could not find `Operation` in `spi`

error[E0405]: cannot find trait `Transactional` in module `embedded_hal_0_2::blocking::spi`
   --> /home/brian/.cargo/registry/src/github.com-1ecc6299db9ec823/esp-idf-hal-0.32.10/src/spi.rs:563:38
    |
563 |     embedded_hal_0_2::blocking::spi::Transactional<u8> for Master<SPI, SCLK, SDO, SDI, CS>
    |                                      ^^^^^^^^^^^^^ not found in `embedded_hal_0_2::blocking::spi`
    |
help: consider importing one of these items
    |
23  | use embedded_hal::i2c::blocking::Transactional;
    |
23  | use embedded_hal::spi::blocking::Transactional;
    |

error[E0412]: cannot find type `Operation` in module `embedded_hal_0_2::blocking::spi`
   --> /home/brian/.cargo/registry/src/github.com-1ecc6299db9ec823/esp-idf-hal-0.32.10/src/spi.rs:569:60
    |
569 |         operations: &mut [embedded_hal_0_2::blocking::spi::Operation<'a, u8>],
    |                                                            ^^^^^^^^^ not found in `embedded_hal_0_2::blocking::spi`
    |
help: consider importing one of these items
    |
23  | use embedded_hal::i2c::blocking::Operation;
    |
23  | use embedded_hal::spi::blocking::Operation;
    |

Some errors have detailed explanations: E0405, E0412, E0433.
For more information about an error, try `rustc --explain E0405`.
error: could not compile `esp-idf-hal` due to 4 previous errors

Wondering if I somehow picked up the wrong version of something. But it looks fine to me...

Later: Oh, I see, it was getting an old version of embedded_hal, the listed version isn't precise enough. This solves it:

diff --git a/Cargo.toml b/Cargo.toml
index f353d1c..67f42b6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -69,7 +69,7 @@ esp-idf-sys = { version = "0.30.3", features = ["binstart"] }
 esp-idf-svc = "0.36.9"
 esp-idf-hal = "0.32.9"
 embedded-svc = "0.16"
-embedded-hal = "0.2"
+embedded-hal = "0.2.7"
 embedded-graphics = "0.7"
 display-interface = "0.4"
 display-interface-spi = "0.4"
ivmarkov commented 2 years ago

This is fixed in the upcoming esp-idf-hal.