build firmware with Nix
This commit is contained in:
parent
b6c53406ea
commit
d2391e0aa1
|
@ -17,4 +17,6 @@ rec {
|
|||
|
||||
binutils-riscv = pkgs.callPackage ./compilers/binutils.nix { platform = "riscv32"; };
|
||||
rust-riscv32imc-crates = pkgs.callPackage ./compilers/rust-riscv32imc-crates.nix { };
|
||||
|
||||
helloworld = pkgs.callPackage ./firmware { inherit rust-riscv32imc-crates binutils-riscv; };
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[build]
|
||||
target = "riscv32imc-unknown-none-elf"
|
|
@ -0,0 +1,21 @@
|
|||
{ rustPlatform, rust-riscv32imc-crates, binutils-riscv }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
name = "helloworld";
|
||||
version = "0.0.0";
|
||||
|
||||
src = ./.;
|
||||
cargoSha256 = "1j8ipk7mwf6jqjnddpvkdydhgl7lfddxkv6p1vhzlfhqlf8am42j";
|
||||
|
||||
buildPhase = ''
|
||||
export CARGO_HOME=$(mktemp -d cargo-home.XXX)
|
||||
export RUSTFLAGS="-L ${rust-riscv32imc-crates}/lib/rustlib/riscv32imc-unknown-none-elf/lib -C linker=${binutils-riscv}/bin/riscv32-unknown-elf-ld -C link-arg=-Tlink.x"
|
||||
cargo build --release --target riscv32imc-unknown-none-elf
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp target/riscv32imc-unknown-none-elf/release/helloworld $out
|
||||
'';
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ }:
|
||||
let
|
||||
pkgs = import <nixpkgs> { overlays = [ import ./overlay.nix ]; };
|
||||
hx = import ./derivations.nix { inherit pkgs; };
|
||||
in
|
||||
pkgs.mkShell {
|
||||
buildInputs = [ hx.rustc hx.rust-riscv32imc-crates hx.binutils-riscv hx.cargo ];
|
||||
RUSTFLAGS="-L ${hx.rust-riscv32imc-crates}/lib/rustlib/riscv32imc-unknown-none-elf/lib -C linker=riscv32-unknown-elf-ld -C link-arg=-Tlink.x";
|
||||
}
|
Loading…
Reference in New Issue