esp-rs / std-training

Embedded Rust on Espressif training material.
https://esp-rs.github.io/std-training
Apache License 2.0
590 stars 75 forks source link

Upgrade esp_idf_svc to 0.48.1 #243

Closed juliankrieger closed 2 months ago

Vollbrecht commented 5 months ago

Also since you seam to affected by the current bug where you need to set the CC env variable( you used it in your PR), it would be super helpful if you can try out the current https://github.com/rust-lang/cc-rs git master version. Today they merged a potential fix and it would be nice if that is working, or if we do need to change anything.

Its not directly related but we need the feedback ;D

You can test the current cc branch by adding

[patch.crates-io]
cc = { git = "https://github.com/rust-lang/cc-rs" }

and running cargo update afterwards

juliankrieger commented 5 months ago

@Vollbrecht I will try it. Strangely enough, I am still getting this error when compiling non-rust PIO projects??

juliankrieger commented 5 months ago

@Vollbrecht I am afraid the new cc version fails unspectacularly with

 Run Build Command(s):/Users/wintermute/.espressif/tools/ninja/1.10.2/ninja cmTC_7a3f1 && [1/2] Building C object CMakeFiles/cmTC_7a3f1.dir/testCCompiler.c.obj
      FAILED: CMakeFiles/cmTC_7a3f1.dir/testCCompiler.c.obj 
      /Users/wintermute/.espressif/tools/riscv32-esp-elf/esp-12.2.0_20230208/riscv32-esp-elf/bin/riscv32-esp-elf-gcc   -march=rv32imc_zicsr_zifencei  -ffunction-sections -fdata-sections --target=riscv32imc_zicsr_zifencei-esp-espidf -o CMakeFiles/cmTC_7a3f1.dir/testCCompiler.c.obj -c /Users/wintermute/Dev/Work/std-training/intro/http-server/target/riscv32imc-esp-espidf/debug/build/esp-idf-sys-476fda9ea20abe34/out/build/CMakeFiles/CMakeTmp/testCCompiler.c
      riscv32-esp-elf-gcc: error: unrecognized command-line option '--target=riscv32imc_zicsr_zifencei-esp-espidf'
      ninja: build stopped: subcommand failed.
juliankrieger commented 5 months ago

For the time being I've added back the examples. PR should be in a mergeable state now.

juliankrieger commented 5 months ago

@Vollbrecht Ah. Sorry. It's late. I'll fix it.

juliankrieger commented 5 months ago

@Vollbrecht would you have preferred the dead code in http-server to be left included? I could've toggled the clippy flag instead of removing it.

juliankrieger commented 5 months ago

@Vollbrecht Seems like mqtt has had breaking changes in embedded svc 0.27.0... I will have to look at this again tomorrow.

juliankrieger commented 5 months ago

@Vollbrecht I've changed the mqtt examples to fit into the new embedded_svc mqtt API at https://github.com/esp-rs/embedded-svc/blob/master/CHANGELOG.md

juliankrieger commented 5 months ago

@Vollbrecht ready to merge.

prismv commented 3 months ago

I tried to check my new ESP32-C3-Rust-Kit with hardware-check sub-project - just to find out that it does not work without fixing common/wifi/lib.rs as shown in this merge request (and some crate versions fixing).

> rustup toolchain list
stable-x86_64-unknown-linux-gnu (default)
nightly-2023-11-14-x86_64-unknown-linux-gnu (override)

As a beginner I have no clue how to force older versions of crates (despite fixing Cargo.toml based on information given by recommended vscode extensions.

Or is #253 the show stopper (indeed no blinking Led ...)?

Vollbrecht commented 3 months ago

@prismv we are close to a new release of esp-idf-svc. If you want to use the latest fixes and working on a standalone project as described in the book mentioning the template, you can simply do the following.

Add this to your Cargo.toml

[patch.crates-io]
embuild = { git = "https://github.com/esp-rs/embuild" }
esp-idf-svc = { git = "https://github.com/esp-rs/esp-idf-svc" }
esp-idf-hal = { git = "https://github.com/esp-rs/esp-idf-hal" }
esp-idf-sys = { git = "https://github.com/esp-rs/esp-idf-sys" }
embedded-svc = { git = "https://github.com/esp-rs/embedded-svc" }

than running cargo clean + cargo update+ cargo build.

This way you are using the latest git master version. And you can remove them in the couple next days when we have a new release up.

The book needs updating after we pushed the new release but one thing at a time, and in general most things should be pretty much the same.

SergioGasquez commented 2 months ago

esp-idf-svc 0.49.0 was released, the training would need to be updated to use it. We can do it in this PR or I could reopen a new PR for it.

SergioGasquez commented 2 months ago

Closed in favor of #257