Beim Kompilieren eines Rust-Projekts für ESP32-S3 kann der folgende Fehler auftreten:
cargo build --release Compiling xtensa-lx-rt v0.16.0 Compiling esp-hal-common v0.14.1 LLVM ERROR: Global variable 'save_context' has an invalid section specifier '.rwtext': mach-o section specifier requires a segment and section separated by a comma. error: could not compile xtensa-lx-rt (lib) warning: build failed, waiting for other jobs to finish... error: invalid instruction mnemonic 'rsr.ccount' --> /Users/georgik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/xtensa-lx-0.8.0/src/timer.rs:81:20 | 81 | unsafe { asm!("rsr.ccount {0}", out(reg) x, options(nostack)) };
Obwohl Rust bei Fehlermeldungen sehr hilfreich ist, ist es ziemlich schwierig zu bestimmen, was schief läuft.
Grundsätzlich tritt dieses Problem auf, wenn Sie ein Projekt für ESP32-S3 kompilieren, das das Xtensa-Ziel verwendet, und dem Projekt die folgende Datei fehlt: .cargo/config.toml
[target.'cfg(target_arch = "xtensa")'] runner = "espflash flash --monitor" rustflags = [ "-C", "link-arg=-Tlinkall.x", "-C", "link-arg=-nostartfiles", ] [build] target = "xtensa-esp32s3-none-elf" [unstable] build-std = [ "core", "alloc" ]