57 lines
1.4 KiB
Nix
57 lines
1.4 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
|
||
|
||
# ARM embedded cross toolchain
|
||
gcc-arm-embedded
|
||
|
||
# Flashing / Debug
|
||
openocd
|
||
probe-rs
|
||
cargo-binutils
|
||
cargo-generate
|
||
flip-link
|
||
];
|
||
|
||
shellHook = ''
|
||
# 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
|
||
|
||
rustc --version
|
||
arm-none-eabi-gcc --version | head -n1
|
||
echo "cargo build --release --target thumbv8m.main-none-eabihf"
|
||
echo "sudo probe-rs run --chip STM32U575ZI target/thumbv8m.main-none-eabihf/release/main"
|
||
'';
|
||
};
|
||
};
|
||
}
|