69 lines
1.9 KiB
Nix
69 lines
1.9 KiB
Nix
{
|
||
description = "STM32U575ZI-Q Rust Embedded Development Environment";
|
||
|
||
inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; };
|
||
|
||
outputs = { self, nixpkgs }: let
|
||
system = "x86_64-linux";
|
||
pkgs = import nixpkgs { inherit system; };
|
||
in {
|
||
devShells.${system}.default = pkgs.mkShell {
|
||
packages = with pkgs; [
|
||
# Base toolchain
|
||
rustup
|
||
llvm
|
||
gcc
|
||
gnumake
|
||
cmake
|
||
pkg-config
|
||
python3
|
||
git
|
||
curl
|
||
wget
|
||
unzip
|
||
svd2rust
|
||
form
|
||
|
||
# ARM embedded cross toolchain
|
||
gcc-arm-embedded
|
||
|
||
# Flashing / Debug
|
||
openocd
|
||
probe-rs
|
||
cargo-binutils
|
||
cargo-generate
|
||
flip-link
|
||
];
|
||
|
||
shellHook = ''
|
||
echo ">>> STM32U575ZI-Q Rust (HAL + PAC) DevShell"
|
||
echo "---------------------------------------------"
|
||
|
||
# Set up Rust target
|
||
rustup target add thumbv7em-none-eabihf 2>/dev/null || true
|
||
|
||
# Ensure probe-rs binary is in PATH
|
||
if ! command -v probe-rs >/dev/null; then
|
||
echo "⚠️ probe-rs not found! (check nix installation)"
|
||
fi
|
||
|
||
export RUST_TARGET=thumbv7em-none-eabihf
|
||
export CARGO_TARGET_DIR=target
|
||
export PATH=$PATH:${pkgs.gcc-arm-embedded}/bin
|
||
|
||
echo "🧩 Target: $RUST_TARGET"
|
||
echo "💡 Examples:"
|
||
echo " 1️⃣ cargo generate --git https://github.com/rust-embedded/cortex-m-quickstart --name stm32u5-blinky"
|
||
echo " 2️⃣ cd stm32u5-blinky && cargo build --release --target thumbv7em-none-eabihf"
|
||
echo " 3️⃣ probe-rs run --chip STM32U575ZITxQ target/thumbv7em-none-eabihf/release/stm32u5-blinky"
|
||
echo ""
|
||
echo "🧠 TIP: Add stm32u5xx-hal to Cargo.toml to access register-level HAL API."
|
||
echo "---------------------------------------------"
|
||
|
||
rustc --version
|
||
arm-none-eabi-gcc --version | head -n1
|
||
'';
|
||
};
|
||
};
|
||
}
|