This commit is contained in:
parent
61a2db14a8
commit
c0fcfe9dbb
5 changed files with 78 additions and 37 deletions
28
Cargo.lock
generated
28
Cargo.lock
generated
|
@ -429,6 +429,20 @@ dependencies = [
|
||||||
"regex",
|
"regex",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rkbfirm"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"cortex-m",
|
||||||
|
"cortex-m-rt",
|
||||||
|
"defmt",
|
||||||
|
"defmt-rtt",
|
||||||
|
"embedded-hal",
|
||||||
|
"embedded-time",
|
||||||
|
"panic-probe",
|
||||||
|
"rp-pico",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rp-pico"
|
name = "rp-pico"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
|
@ -500,20 +514,6 @@ dependencies = [
|
||||||
"vcell",
|
"vcell",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rust-template"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"cortex-m",
|
|
||||||
"cortex-m-rt",
|
|
||||||
"defmt",
|
|
||||||
"defmt-rtt",
|
|
||||||
"embedded-hal",
|
|
||||||
"embedded-time",
|
|
||||||
"panic-probe",
|
|
||||||
"rp-pico",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc_version"
|
name = "rustc_version"
|
||||||
version = "0.2.3"
|
version = "0.2.3"
|
||||||
|
|
38
Cargo.nix
38
Cargo.nix
|
@ -4,7 +4,7 @@
|
||||||
args@{
|
args@{
|
||||||
release ? true,
|
release ? true,
|
||||||
rootFeatures ? [
|
rootFeatures ? [
|
||||||
"rust-template/default"
|
"rkbfirm/default"
|
||||||
],
|
],
|
||||||
rustPackages,
|
rustPackages,
|
||||||
buildRustPackages,
|
buildRustPackages,
|
||||||
|
@ -41,7 +41,7 @@ in
|
||||||
{
|
{
|
||||||
cargo2nixVersion = "0.11.0";
|
cargo2nixVersion = "0.11.0";
|
||||||
workspace = {
|
workspace = {
|
||||||
rust-template = rustPackages.unknown.rust-template."0.1.0";
|
rkbfirm = rustPackages.unknown.rkbfirm."0.1.0";
|
||||||
};
|
};
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".aho-corasick."0.7.18" = overridableMkRustCrate (profileName: rec {
|
"registry+https://github.com/rust-lang/crates.io-index".aho-corasick."0.7.18" = overridableMkRustCrate (profileName: rec {
|
||||||
name = "aho-corasick";
|
name = "aho-corasick";
|
||||||
|
@ -622,6 +622,23 @@ in
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
"unknown".rkbfirm."0.1.0" = overridableMkRustCrate (profileName: rec {
|
||||||
|
name = "rkbfirm";
|
||||||
|
version = "0.1.0";
|
||||||
|
registry = "unknown";
|
||||||
|
src = fetchCrateLocal workspaceSrc;
|
||||||
|
dependencies = {
|
||||||
|
cortex_m = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m."0.7.5" { inherit profileName; };
|
||||||
|
cortex_m_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m-rt."0.7.1" { inherit profileName; };
|
||||||
|
defmt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt."0.3.2" { inherit profileName; };
|
||||||
|
defmt_rtt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt-rtt."0.3.2" { inherit profileName; };
|
||||||
|
embedded_hal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".embedded-hal."0.2.7" { inherit profileName; };
|
||||||
|
embedded_time = rustPackages."registry+https://github.com/rust-lang/crates.io-index".embedded-time."0.12.1" { inherit profileName; };
|
||||||
|
panic_probe = rustPackages."registry+https://github.com/rust-lang/crates.io-index".panic-probe."0.3.0" { inherit profileName; };
|
||||||
|
rp_pico = rustPackages."registry+https://github.com/rust-lang/crates.io-index".rp-pico."0.4.1" { inherit profileName; };
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".rp-pico."0.4.1" = overridableMkRustCrate (profileName: rec {
|
"registry+https://github.com/rust-lang/crates.io-index".rp-pico."0.4.1" = overridableMkRustCrate (profileName: rec {
|
||||||
name = "rp-pico";
|
name = "rp-pico";
|
||||||
version = "0.4.1";
|
version = "0.4.1";
|
||||||
|
@ -712,23 +729,6 @@ in
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
"unknown".rust-template."0.1.0" = overridableMkRustCrate (profileName: rec {
|
|
||||||
name = "rust-template";
|
|
||||||
version = "0.1.0";
|
|
||||||
registry = "unknown";
|
|
||||||
src = fetchCrateLocal workspaceSrc;
|
|
||||||
dependencies = {
|
|
||||||
cortex_m = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m."0.7.5" { inherit profileName; };
|
|
||||||
cortex_m_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m-rt."0.7.1" { inherit profileName; };
|
|
||||||
defmt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt."0.3.2" { inherit profileName; };
|
|
||||||
defmt_rtt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt-rtt."0.3.2" { inherit profileName; };
|
|
||||||
embedded_hal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".embedded-hal."0.2.7" { inherit profileName; };
|
|
||||||
embedded_time = rustPackages."registry+https://github.com/rust-lang/crates.io-index".embedded-time."0.12.1" { inherit profileName; };
|
|
||||||
panic_probe = rustPackages."registry+https://github.com/rust-lang/crates.io-index".panic-probe."0.3.0" { inherit profileName; };
|
|
||||||
rp_pico = rustPackages."registry+https://github.com/rust-lang/crates.io-index".rp-pico."0.4.1" { inherit profileName; };
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
"registry+https://github.com/rust-lang/crates.io-index".rustc_version."0.2.3" = overridableMkRustCrate (profileName: rec {
|
"registry+https://github.com/rust-lang/crates.io-index".rustc_version."0.2.3" = overridableMkRustCrate (profileName: rec {
|
||||||
name = "rustc_version";
|
name = "rustc_version";
|
||||||
version = "0.2.3";
|
version = "0.2.3";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[package]
|
[package]
|
||||||
name = "rust-template"
|
name = "rkbfirm"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
|
13
elf2uf2.patch
Normal file
13
elf2uf2.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/src/main.rs b/src/main.rs
|
||||||
|
index 7d55e7b..72bfdeb 100644
|
||||||
|
--- a/src/main.rs
|
||||||
|
+++ b/src/main.rs
|
||||||
|
@@ -176,7 +176,7 @@ fn elf2uf2(mut input: impl Read + Seek, mut output: impl Write) -> Result<(), Bo
|
||||||
|
fn main() -> Result<(), Box<dyn Error>> {
|
||||||
|
OPTS.set(Opts::parse()).unwrap();
|
||||||
|
|
||||||
|
- let serial_ports_before = serialport::available_ports()?;
|
||||||
|
+ let serial_ports_before = Vec::new();
|
||||||
|
let mut deployed_path = None;
|
||||||
|
|
||||||
|
{
|
34
flake.nix
34
flake.nix
|
@ -43,9 +43,11 @@
|
||||||
targets = ["thumbv6m-none-eabi"];
|
targets = ["thumbv6m-none-eabi"];
|
||||||
})
|
})
|
||||||
cargo2nix.packages.${system}.cargo2nix
|
cargo2nix.packages.${system}.cargo2nix
|
||||||
|
elf2uf2-rs
|
||||||
|
cargo-embed
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
packages = {
|
packages = rec {
|
||||||
rkbfirm-source = pkgs.releaseTools.sourceTarball {
|
rkbfirm-source = pkgs.releaseTools.sourceTarball {
|
||||||
name = "rkbfirm-source";
|
name = "rkbfirm-source";
|
||||||
src = self;
|
src = self;
|
||||||
|
@ -60,8 +62,34 @@
|
||||||
(cd .. && tar -cf- $releaseName | zstd --ultra -22 > $out/tarballs/$releaseName.tar.zst) || false
|
(cd .. && tar -cf- $releaseName | zstd --ultra -22 > $out/tarballs/$releaseName.tar.zst) || false
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
rust-template = rustPkgs.workspace.rust-template { };
|
rkbfirm-crate = (rustPkgs.workspace.rkbfirm { }).overrideAttrs(old: {
|
||||||
|
configureCargo = "true";
|
||||||
|
});
|
||||||
|
rkbfirm = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
pname = "rkbfirm";
|
||||||
|
src = self;
|
||||||
|
version = self.lastModifiedDate;
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
(elf2uf2-rs.overrideAttrs (old: {
|
||||||
|
patches = [
|
||||||
|
./elf2uf2.patch
|
||||||
|
];
|
||||||
|
}))
|
||||||
|
zstd
|
||||||
|
];
|
||||||
|
buildInputs = [rkbfirm-crate];
|
||||||
|
buildPhase = ''
|
||||||
|
elf2uf2-rs ${rkbfirm-crate}/bin/rkbfirm rkbfirm.uf2 --verbose
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir $out
|
||||||
|
zstd --ultra -22 < rkbfirm.uf2 > $out/rkbfirm.uf2.zst
|
||||||
|
mkdir $out/nix-support
|
||||||
|
echo "file binary-dist $out/rkbfirm.uf2.zst" > $out/nix-support/hydra-build-products
|
||||||
|
echo "$pname-$version" > $out/nix-support/hydra-release-name
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
default = rkbfirm;
|
||||||
};
|
};
|
||||||
nixosModules.default = import ./nixos {
|
nixosModules.default = import ./nixos {
|
||||||
inherit inputs system;
|
inherit inputs system;
|
||||||
|
|
Loading…
Reference in a new issue