diff --git a/README.md b/README.md index 02e68ed..434bb4d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ direnv allow When you enter the devShell (via `direnv allow` or `nix develop`), the following happens automatically: ✓ **Git Repository**: Initializes `.git` if not present -✓ **Rust Targets**: Automatically adds common embedded Rust targets (ARM Cortex-M, RISC-V) +✓ **Rust Targets**: Automatically adds the RP2040 (Pico W) target: `thumbv6m-none-eabi` ✓ **Cargo Paths**: Sets up `$HOME/.cargo/bin` in PATH for cargo-installed binaries ✓ **Welcome Banner**: Displays available tools and quick commands @@ -35,16 +35,11 @@ cargo build ## Embedded Rust Support -The devShell automatically installs common embedded Rust targets via `rustup`: +The devShell automatically installs the Raspberry Pi Pico W target via `rustup`: | Target | Platform | Use Case | |--------|----------|----------| -| `thumbv6m-none-eabi` | ARM Cortex-M0/M0+ | RP2040 (Pico) | -| `thumbv7em-none-eabihf` | ARM Cortex-M4F/M7F | STM32, nRF52840 | -| `riscv32imc-unknown-none-elf` | RISC-V 32-bit | ESP32-C3 (basic) | -| `riscv32imac-unknown-none-elf` | RISC-V 32-bit (atomic) | ESP32-C3 (advanced) | - -**Note:** ESP32 Xtensa targets require espup or custom toolchains (see [esp-rs](https://github.com/esp-rs)). +| `thumbv6m-none-eabi` | ARM Cortex-M0/M0+ | RP2040 (Pico W) | ## Flatpak Packaging @@ -84,14 +79,11 @@ flatpak run org.example.rustdevshell | **rustfmt** | Rust code formatter | | **rust-analyzer** | Language server for IDE integration | | **rust-src** | Rust source code (for tools like rust-analyzer) | -| **probe-rs** | Embedded debugger/flasher for ARM targets | -| **espflash** | Flashing tool for ESP32 boards | -| **openocd** | JTAG/SWD debugger for ARM and other targets | +| **probe-rs** | Embedded debugger/flasher | +| **openocd** | JTAG/SWD debugger | | **minicom** | Serial terminal for device output | | **elf2uf2-rs** | Convert ELF to UF2 format (RP2040) | | **picotool** | Pico-specific firmware operations | -| **avrdude** | AVR microcontroller programmer | -| **ravedude** | Rapid AVR development utility | ## Testing & Development Features @@ -114,7 +106,7 @@ cargo clippy cargo fmt # Build for embedded target -cargo build --target thumbv7em-none-eabihf --release +cargo build --target thumbv6m-none-eabi --release ``` ## Project Layout diff --git a/flake.nix b/flake.nix index 583ccfd..3d61f1e 100644 --- a/flake.nix +++ b/flake.nix @@ -73,16 +73,11 @@ rustup # Embedded Rust tooling probe-rs-tools - espflash openocd minicom # RP2040 UF2 workflows elf2uf2-rs picotool - avrdude - pkgsCross.avr.buildPackages.libc - pkgsCross.avr.buildPackages.gcc - ravedude pre-commit ]; @@ -102,15 +97,11 @@ export PATH="$HOME/.cargo/bin:$PATH" if command -v rustup >/dev/null 2>&1; then - echo "Ensuring common embedded Rust targets are available (idempotent)..." + echo "Ensuring Raspberry Pi Pico W target is available (idempotent)..." rustup target add thumbv6m-none-eabi >/dev/null 2>&1 || true # Cortex-M0/M0+ (RP2040) - rustup target add thumbv7em-none-eabihf >/dev/null 2>&1 || true # Cortex-M4F/M7F (many STM32/nRF52) - rustup target add riscv32imc-unknown-none-elf >/dev/null 2>&1 || true - rustup target add riscv32imac-unknown-none-elf >/dev/null 2>&1 || true # ESP32-C3 class - echo "Note: ESP32 Xtensa targets require espup/custom toolchains (see esp-rs)." fi echo "[rust-template] Welcome to the Rust dev shell!" - echo "Tools: cargo, rustc, clippy, rustfmt, rust-analyzer, probe-rs, espflash, openocd, minicom, elf2uf2-rs, picotool, avrdude, ravedude" + echo "Tools: cargo, rustc, clippy, rustfmt, rust-analyzer, probe-rs, openocd, minicom, elf2uf2-rs, picotool" echo "Run 'cargo build' to build, or 'nix run .#dev-helper' for a tool summary." echo "See README.md for usage." '';