Compare commits

...

2 commits

Author SHA1 Message Date
3e30545a55
add binary info 2022-07-09 13:25:27 +01:00
51300ffea4
add some more code 2022-07-09 12:16:28 +01:00
9 changed files with 773 additions and 361 deletions

35
Cargo.lock generated
View file

@ -197,6 +197,28 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "git-version"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899"
dependencies = [
"git-version-macro",
"proc-macro-hack",
]
[[package]]
name = "git-version-macro"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f"
dependencies = [
"proc-macro-hack",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "itertools"
version = "0.10.3"
@ -367,6 +389,12 @@ dependencies = [
"version_check",
]
[[package]]
name = "proc-macro-hack"
version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro2"
version = "1.0.40"
@ -439,10 +467,17 @@ dependencies = [
"defmt-rtt",
"embedded-hal",
"embedded-time",
"git-version",
"panic-probe",
"rp-binary-info",
"rp-pico",
]
[[package]]
name = "rp-binary-info"
version = "0.1.0"
source = "git+https://github.com/rp-rs/rp-binary-info#a9397d433b1bea5cedd17192db10c40e5008ab88"
[[package]]
name = "rp-pico"
version = "0.4.1"

450
Cargo.nix
View file

@ -1,6 +1,5 @@
# This file was @generated by cargo2nix 0.11.0.
# It is not intended to be manually edited.
args @ {
release ? true,
rootFeatures ? [
@ -22,9 +21,11 @@ args@{
rustLib,
lib,
workspaceSrc,
}:
let
workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc;
}: let
workspaceSrc =
if args.workspaceSrc == null
then ./.
else args.workspaceSrc;
in let
inherit (rustLib) fetchCratesIo fetchCrateLocal fetchCrateGit fetchCrateAlternativeRegistry expandFeatures decideProfile genDrvsByProfile;
profilesByName = {
@ -34,13 +35,23 @@ in let
test = builtins.fromTOML "codegen-units = 1\ndebug = 2\ndebug-assertions = true\nincremental = false\nopt-level = 3\noverflow-checks = true\n";
};
rootFeatures' = expandFeatures rootFeatures;
overridableMkRustCrate = f:
let
drvs = genDrvsByProfile profilesByName ({ profile, profileName }: mkRustCrate ({ inherit release profile hostPlatformCpu hostPlatformFeatures target profileOpts codegenOpts rustcLinkFlags rustcBuildFlags; } // (f profileName)));
in { compileMode ? null, profileName ? decideProfile compileMode release }:
let drv = drvs.${profileName}; in if compileMode == null then drv else drv.override { inherit compileMode; };
overridableMkRustCrate = f: let
drvs = genDrvsByProfile profilesByName ({
profile,
profileName,
}:
mkRustCrate ({inherit release profile hostPlatformCpu hostPlatformFeatures target profileOpts codegenOpts rustcLinkFlags rustcBuildFlags;} // (f profileName)));
in
{
compileMode ? null,
profileName ? decideProfile compileMode release,
}: let
drv = drvs.${profileName};
in
if compileMode == null
then drv
else drv.override {inherit compileMode;};
in {
cargo2nixVersion = "0.11.0";
workspace = {
tinyptr = rustPackages.unknown.tinyptr."0.1.0";
@ -51,7 +62,10 @@ in
name = "aho-corasick";
version = "0.7.18";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"; };
src = fetchCratesIo {
inherit name version;
sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f";
};
features = builtins.concatLists [
["default"]
["std"]
@ -65,21 +79,30 @@ in
name = "arrayvec";
version = "0.7.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"; };
src = fetchCratesIo {
inherit name version;
sha256 = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6";
};
});
"registry+https://github.com/rust-lang/crates.io-index".autocfg."1.1.0" = overridableMkRustCrate (profileName: rec {
name = "autocfg";
version = "1.1.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"; };
src = fetchCratesIo {
inherit name version;
sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa";
};
});
"registry+https://github.com/rust-lang/crates.io-index".bare-metal."0.2.5" = overridableMkRustCrate (profileName: rec {
name = "bare-metal";
version = "0.2.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3"; };
src = fetchCratesIo {
inherit name version;
sha256 = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3";
};
features = builtins.concatLists [
["const-fn"]
];
@ -92,28 +115,40 @@ in
name = "bare-metal";
version = "1.0.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603"; };
src = fetchCratesIo {
inherit name version;
sha256 = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603";
};
});
"registry+https://github.com/rust-lang/crates.io-index".bit_field."0.10.1" = overridableMkRustCrate (profileName: rec {
name = "bit_field";
version = "0.10.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"; };
src = fetchCratesIo {
inherit name version;
sha256 = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4";
};
});
"registry+https://github.com/rust-lang/crates.io-index".bitfield."0.13.2" = overridableMkRustCrate (profileName: rec {
name = "bitfield";
version = "0.13.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719"; };
src = fetchCratesIo {
inherit name version;
sha256 = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719";
};
});
"registry+https://github.com/rust-lang/crates.io-index".bitflags."1.3.2" = overridableMkRustCrate (profileName: rec {
name = "bitflags";
version = "1.3.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"; };
src = fetchCratesIo {
inherit name version;
sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a";
};
features = builtins.concatLists [
["default"]
];
@ -123,21 +158,30 @@ in
name = "byteorder";
version = "1.3.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"; };
src = fetchCratesIo {
inherit name version;
sha256 = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de";
};
});
"registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" = overridableMkRustCrate (profileName: rec {
name = "cfg-if";
version = "1.0.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"; };
src = fetchCratesIo {
inherit name version;
sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd";
};
});
"registry+https://github.com/rust-lang/crates.io-index".cortex-m."0.7.5" = overridableMkRustCrate (profileName: rec {
name = "cortex-m";
version = "0.7.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "cd20d4ac4aa86f4f75f239d59e542ef67de87cce2c282818dc6e84155d3ea126"; };
src = fetchCratesIo {
inherit name version;
sha256 = "cd20d4ac4aa86f4f75f239d59e542ef67de87cce2c282818dc6e84155d3ea126";
};
dependencies = {
bare_metal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bare-metal."0.2.5" {inherit profileName;};
bitfield = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitfield."0.13.2" {inherit profileName;};
@ -150,7 +194,10 @@ in
name = "cortex-m-rt";
version = "0.7.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3c433da385b720d5bb9f52362fa2782420798e68d40d67bfe4b0d992aba5dfe7"; };
src = fetchCratesIo {
inherit name version;
sha256 = "3c433da385b720d5bb9f52362fa2782420798e68d40d67bfe4b0d992aba5dfe7";
};
features = builtins.concatLists [
["device"]
];
@ -163,7 +210,10 @@ in
name = "cortex-m-rt-macros";
version = "0.7.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7"; };
src = fetchCratesIo {
inherit name version;
sha256 = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7";
};
dependencies = {
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" {inherit profileName;};
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.20" {inherit profileName;};
@ -175,7 +225,10 @@ in
name = "crc-any";
version = "2.4.3";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "774646b687f63643eb0f4bf13dc263cb581c8c9e57973b6ddf78bda3994d88df"; };
src = fetchCratesIo {
inherit name version;
sha256 = "774646b687f63643eb0f4bf13dc263cb581c8c9e57973b6ddf78bda3994d88df";
};
features = builtins.concatLists [
["alloc"]
["debug-helper"]
@ -190,15 +243,28 @@ in
name = "critical-section";
version = "0.2.7";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "95da181745b56d4bd339530ec393508910c909c784e8962d15d722bacf0bcbcd"; };
src = fetchCratesIo {
inherit name version;
sha256 = "95da181745b56d4bd339530ec393508910c909c784e8962d15d722bacf0bcbcd";
};
features = builtins.concatLists [
["custom-impl"]
];
dependencies = {
bare_metal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bare-metal."1.0.0" {inherit profileName;};
cfg_if = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" {inherit profileName;};
${ if hostPlatform.config == "thumbv6m-none-eabi" || hostPlatform.config == "thumbv7em-none-eabi" || hostPlatform.config == "thumbv7em-none-eabihf" || hostPlatform.config == "thumbv7m-none-eabi" || hostPlatform.config == "thumbv8m.base-none-eabi" || hostPlatform.config == "thumbv8m.main-none-eabi" || hostPlatform.config == "thumbv8m.main-none-eabihf" then "cortex_m" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m."0.7.5" { inherit profileName; };
${ if hostPlatform.parsed.cpu.name == "riscv32" then "riscv" else null } = rustPackages."registry+https://github.com/rust-lang/crates.io-index".riscv."0.7.0" { inherit profileName; };
${
if hostPlatform.config == "thumbv6m-none-eabi" || hostPlatform.config == "thumbv7em-none-eabi" || hostPlatform.config == "thumbv7em-none-eabihf" || hostPlatform.config == "thumbv7m-none-eabi" || hostPlatform.config == "thumbv8m.base-none-eabi" || hostPlatform.config == "thumbv8m.main-none-eabi" || hostPlatform.config == "thumbv8m.main-none-eabihf"
then "cortex_m"
else null
} =
rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m."0.7.5" {inherit profileName;};
${
if hostPlatform.parsed.cpu.name == "riscv32"
then "riscv"
else null
} =
rustPackages."registry+https://github.com/rust-lang/crates.io-index".riscv."0.7.0" {inherit profileName;};
};
});
@ -206,14 +272,20 @@ in
name = "debug-helper";
version = "0.3.13";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e"; };
src = fetchCratesIo {
inherit name version;
sha256 = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e";
};
});
"registry+https://github.com/rust-lang/crates.io-index".defmt."0.3.2" = overridableMkRustCrate (profileName: rec {
name = "defmt";
version = "0.3.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "d3a0ae7494d9bff013d7b89471f4c424356a71e9752e0c78abe7e6c608a16bb3"; };
src = fetchCratesIo {
inherit name version;
sha256 = "d3a0ae7494d9bff013d7b89471f4c424356a71e9752e0c78abe7e6c608a16bb3";
};
dependencies = {
bitflags = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."1.3.2" {inherit profileName;};
defmt_macros = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt-macros."0.3.2" {profileName = "__noProfile";};
@ -224,7 +296,10 @@ in
name = "defmt-macros";
version = "0.3.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "6d944432e281084511691b36e5e9c794c19c33675822c9019e3b64f5b89e10da"; };
src = fetchCratesIo {
inherit name version;
sha256 = "6d944432e281084511691b36e5e9c794c19c33675822c9019e3b64f5b89e10da";
};
dependencies = {
defmt_parser = rustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt-parser."0.3.1" {inherit profileName;};
proc_macro_error = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-error."1.0.4" {inherit profileName;};
@ -238,7 +313,10 @@ in
name = "defmt-parser";
version = "0.3.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "0db23d29972d99baa3de2ee2ae3f104c10564a6d05a346eb3f4c4f2c0525a06e"; };
src = fetchCratesIo {
inherit name version;
sha256 = "0db23d29972d99baa3de2ee2ae3f104c10564a6d05a346eb3f4c4f2c0525a06e";
};
features = builtins.concatLists [
["unstable"]
];
@ -248,7 +326,10 @@ in
name = "defmt-rtt";
version = "0.3.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "1d2cbbbd58847d508d97629b32cd9730a2d28532f71e219714614406029f18b1"; };
src = fetchCratesIo {
inherit name version;
sha256 = "1d2cbbbd58847d508d97629b32cd9730a2d28532f71e219714614406029f18b1";
};
dependencies = {
critical_section = rustPackages."registry+https://github.com/rust-lang/crates.io-index".critical-section."0.2.7" {inherit profileName;};
defmt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".defmt."0.3.2" {inherit profileName;};
@ -259,14 +340,20 @@ in
name = "either";
version = "1.7.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"; };
src = fetchCratesIo {
inherit name version;
sha256 = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be";
};
});
"registry+https://github.com/rust-lang/crates.io-index".embedded-hal."0.2.7" = overridableMkRustCrate (profileName: rec {
name = "embedded-hal";
version = "0.2.7";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff"; };
src = fetchCratesIo {
inherit name version;
sha256 = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff";
};
features = builtins.concatLists [
["unproven"]
];
@ -280,7 +367,10 @@ in
name = "embedded-time";
version = "0.12.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "d7a4b4d10ac48d08bfe3db7688c402baadb244721f30a77ce360bd24c3dffe58"; };
src = fetchCratesIo {
inherit name version;
sha256 = "d7a4b4d10ac48d08bfe3db7688c402baadb244721f30a77ce360bd24c3dffe58";
};
dependencies = {
num = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num."0.3.1" {inherit profileName;};
};
@ -290,14 +380,50 @@ in
name = "encode_unicode";
version = "0.3.6";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"; };
src = fetchCratesIo {
inherit name version;
sha256 = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f";
};
});
"registry+https://github.com/rust-lang/crates.io-index".git-version."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "git-version";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899";
};
dependencies = {
git_version_macro = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".git-version-macro."0.3.5" {profileName = "__noProfile";};
proc_macro_hack = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-hack."0.5.19" {profileName = "__noProfile";};
};
});
"registry+https://github.com/rust-lang/crates.io-index".git-version-macro."0.3.5" = overridableMkRustCrate (profileName: rec {
name = "git-version-macro";
version = "0.3.5";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f";
};
dependencies = {
proc_macro_hack = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro-hack."0.5.19" {profileName = "__noProfile";};
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" {inherit profileName;};
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.20" {inherit profileName;};
syn = rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."1.0.98" {inherit profileName;};
};
});
"registry+https://github.com/rust-lang/crates.io-index".itertools."0.10.3" = overridableMkRustCrate (profileName: rec {
name = "itertools";
version = "0.10.3";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"; };
src = fetchCratesIo {
inherit name version;
sha256 = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3";
};
dependencies = {
either = rustPackages."registry+https://github.com/rust-lang/crates.io-index".either."1.7.0" {inherit profileName;};
};
@ -307,14 +433,20 @@ in
name = "lazy_static";
version = "1.4.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"; };
src = fetchCratesIo {
inherit name version;
sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646";
};
});
"registry+https://github.com/rust-lang/crates.io-index".memchr."2.5.0" = overridableMkRustCrate (profileName: rec {
name = "memchr";
version = "2.5.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"; };
src = fetchCratesIo {
inherit name version;
sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d";
};
features = builtins.concatLists [
["default"]
["std"]
@ -325,7 +457,10 @@ in
name = "nb";
version = "0.1.3";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f"; };
src = fetchCratesIo {
inherit name version;
sha256 = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f";
};
features = builtins.concatLists [
["unstable"]
];
@ -338,14 +473,20 @@ in
name = "nb";
version = "1.0.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae"; };
src = fetchCratesIo {
inherit name version;
sha256 = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae";
};
});
"registry+https://github.com/rust-lang/crates.io-index".num."0.3.1" = overridableMkRustCrate (profileName: rec {
name = "num";
version = "0.3.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"; };
src = fetchCratesIo {
inherit name version;
sha256 = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f";
};
dependencies = {
num_complex = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-complex."0.3.1" {inherit profileName;};
num_integer = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-integer."0.1.45" {inherit profileName;};
@ -359,7 +500,10 @@ in
name = "num-complex";
version = "0.3.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"; };
src = fetchCratesIo {
inherit name version;
sha256 = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5";
};
dependencies = {
num_traits = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-traits."0.2.15" {inherit profileName;};
};
@ -369,7 +513,10 @@ in
name = "num-integer";
version = "0.1.45";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"; };
src = fetchCratesIo {
inherit name version;
sha256 = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9";
};
features = builtins.concatLists [
["i128"]
];
@ -385,7 +532,10 @@ in
name = "num-iter";
version = "0.1.43";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"; };
src = fetchCratesIo {
inherit name version;
sha256 = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252";
};
features = builtins.concatLists [
["i128"]
];
@ -402,7 +552,10 @@ in
name = "num-rational";
version = "0.3.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"; };
src = fetchCratesIo {
inherit name version;
sha256 = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07";
};
dependencies = {
num_integer = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-integer."0.1.45" {inherit profileName;};
num_traits = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-traits."0.2.15" {inherit profileName;};
@ -416,7 +569,10 @@ in
name = "num-traits";
version = "0.2.15";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"; };
src = fetchCratesIo {
inherit name version;
sha256 = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd";
};
features = builtins.concatLists [
["i128"]
];
@ -429,7 +585,10 @@ in
name = "num_enum";
version = "0.5.7";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"; };
src = fetchCratesIo {
inherit name version;
sha256 = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9";
};
dependencies = {
num_enum_derive = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".num_enum_derive."0.5.7" {profileName = "__noProfile";};
};
@ -439,7 +598,10 @@ in
name = "num_enum_derive";
version = "0.5.7";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"; };
src = fetchCratesIo {
inherit name version;
sha256 = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce";
};
dependencies = {
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" {inherit profileName;};
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.20" {inherit profileName;};
@ -451,7 +613,10 @@ in
name = "panic-probe";
version = "0.3.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3ab1f00eac22bd18f8e5cae9555f2820b3a0c166b5b556ee3e203746ea6dcf3a"; };
src = fetchCratesIo {
inherit name version;
sha256 = "3ab1f00eac22bd18f8e5cae9555f2820b3a0c166b5b556ee3e203746ea6dcf3a";
};
features = builtins.concatLists [
["defmt"]
["defmt-error"]
@ -467,14 +632,20 @@ in
name = "paste";
version = "1.0.7";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"; };
src = fetchCratesIo {
inherit name version;
sha256 = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc";
};
});
"registry+https://github.com/rust-lang/crates.io-index".pio."0.2.0" = overridableMkRustCrate (profileName: rec {
name = "pio";
version = "0.2.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "0fd642eada42517e6589cd7f5e830630324aec628fb4aa719000f8801e40c0a2"; };
src = fetchCratesIo {
inherit name version;
sha256 = "0fd642eada42517e6589cd7f5e830630324aec628fb4aa719000f8801e40c0a2";
};
dependencies = {
arrayvec = rustPackages."registry+https://github.com/rust-lang/crates.io-index".arrayvec."0.7.2" {inherit profileName;};
num_enum = rustPackages."registry+https://github.com/rust-lang/crates.io-index".num_enum."0.5.7" {inherit profileName;};
@ -486,7 +657,10 @@ in
name = "proc-macro-error";
version = "1.0.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"; };
src = fetchCratesIo {
inherit name version;
sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c";
};
features = builtins.concatLists [
["default"]
["syn"]
@ -507,7 +681,10 @@ in
name = "proc-macro-error-attr";
version = "1.0.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"; };
src = fetchCratesIo {
inherit name version;
sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869";
};
dependencies = {
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" {inherit profileName;};
quote = rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.20" {inherit profileName;};
@ -517,11 +694,24 @@ in
};
});
"registry+https://github.com/rust-lang/crates.io-index".proc-macro-hack."0.5.19" = overridableMkRustCrate (profileName: rec {
name = "proc-macro-hack";
version = "0.5.19";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo {
inherit name version;
sha256 = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5";
};
});
"registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" = overridableMkRustCrate (profileName: rec {
name = "proc-macro2";
version = "1.0.40";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"; };
src = fetchCratesIo {
inherit name version;
sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7";
};
features = builtins.concatLists [
["default"]
["proc-macro"]
@ -535,7 +725,10 @@ in
name = "quote";
version = "1.0.20";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"; };
src = fetchCratesIo {
inherit name version;
sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804";
};
features = builtins.concatLists [
["default"]
["proc-macro"]
@ -549,14 +742,20 @@ in
name = "rand_core";
version = "0.6.3";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"; };
src = fetchCratesIo {
inherit name version;
sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7";
};
});
"registry+https://github.com/rust-lang/crates.io-index".regex."1.6.0" = overridableMkRustCrate (profileName: rec {
name = "regex";
version = "1.6.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"; };
src = fetchCratesIo {
inherit name version;
sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b";
};
features = builtins.concatLists [
["aho-corasick"]
["default"]
@ -587,7 +786,10 @@ in
name = "regex-syntax";
version = "0.6.27";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"; };
src = fetchCratesIo {
inherit name version;
sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244";
};
features = builtins.concatLists [
["default"]
["unicode"]
@ -605,7 +807,10 @@ in
name = "riscv";
version = "0.7.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "6907ccdd7a31012b70faf2af85cd9e5ba97657cc3987c4f13f8e4d2c2a088aba"; };
src = fetchCratesIo {
inherit name version;
sha256 = "6907ccdd7a31012b70faf2af85cd9e5ba97657cc3987c4f13f8e4d2c2a088aba";
};
dependencies = {
bare_metal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bare-metal."1.0.0" {inherit profileName;};
bit_field = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bit_field."0.10.1" {inherit profileName;};
@ -619,7 +824,10 @@ in
name = "riscv-target";
version = "0.1.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "88aa938cda42a0cf62a20cfe8d139ff1af20c2e681212b5b34adb5a58333f222"; };
src = fetchCratesIo {
inherit name version;
sha256 = "88aa938cda42a0cf62a20cfe8d139ff1af20c2e681212b5b34adb5a58333f222";
};
dependencies = {
lazy_static = rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.4.0" {inherit profileName;};
regex = rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex."1.6.0" {inherit profileName;};
@ -639,15 +847,34 @@ in
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_binary_info = rustPackages."git+https://github.com/rp-rs/rp-binary-info".rp-binary-info."0.1.0" {inherit profileName;};
rp_pico = rustPackages."registry+https://github.com/rust-lang/crates.io-index".rp-pico."0.4.1" {inherit profileName;};
};
buildDependencies = {
git_version = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".git-version."0.3.5" {profileName = "__noProfile";};
};
});
"git+https://github.com/rp-rs/rp-binary-info".rp-binary-info."0.1.0" = overridableMkRustCrate (profileName: rec {
name = "rp-binary-info";
version = "0.1.0";
registry = "git+https://github.com/rp-rs/rp-binary-info";
src = fetchCrateGit {
url = https://github.com/rp-rs/rp-binary-info;
name = "rp-binary-info";
version = "0.1.0";
rev = "a9397d433b1bea5cedd17192db10c40e5008ab88";
};
});
"registry+https://github.com/rust-lang/crates.io-index".rp-pico."0.4.1" = overridableMkRustCrate (profileName: rec {
name = "rp-pico";
version = "0.4.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "6b83448890aab5f6e35aa64d6a2441d69b768e7a22aaf943a84b7459340028ec"; };
src = fetchCratesIo {
inherit name version;
sha256 = "6b83448890aab5f6e35aa64d6a2441d69b768e7a22aaf943a84b7459340028ec";
};
features = builtins.concatLists [
["boot2"]
["cortex-m-rt"]
@ -671,7 +898,10 @@ in
name = "rp2040-boot2";
version = "0.2.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "8b480fe63133f0d639f82ce5a027fee7cac7ac92f67ef1896ee036a6f9737128"; };
src = fetchCratesIo {
inherit name version;
sha256 = "8b480fe63133f0d639f82ce5a027fee7cac7ac92f67ef1896ee036a6f9737128";
};
buildDependencies = {
crc_any = buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".crc-any."2.4.3" {profileName = "__noProfile";};
};
@ -681,7 +911,10 @@ in
name = "rp2040-hal";
version = "0.5.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "0de1bc8bf092f5da649a417ad9f18c9705b6226afe3521a469f15d1d2bcb7f66"; };
src = fetchCratesIo {
inherit name version;
sha256 = "0de1bc8bf092f5da649a417ad9f18c9705b6226afe3521a469f15d1d2bcb7f66";
};
features = builtins.concatLists [
["rt"]
];
@ -708,7 +941,10 @@ in
name = "rp2040-hal-macros";
version = "0.1.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "86479063e497efe1ae81995ef9071f54fd1c7427e04d6c5b84cde545ff672a5e"; };
src = fetchCratesIo {
inherit name version;
sha256 = "86479063e497efe1ae81995ef9071f54fd1c7427e04d6c5b84cde545ff672a5e";
};
dependencies = {
cortex_m_rt = rustPackages."registry+https://github.com/rust-lang/crates.io-index".cortex-m-rt."0.7.1" {inherit profileName;};
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" {inherit profileName;};
@ -721,7 +957,10 @@ in
name = "rp2040-pac";
version = "0.3.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "13a6106d5db01c7171a39c1f7696780912db9b42fe7ac722db60069c8904ea7c"; };
src = fetchCratesIo {
inherit name version;
sha256 = "13a6106d5db01c7171a39c1f7696780912db9b42fe7ac722db60069c8904ea7c";
};
features = builtins.concatLists [
["cortex-m-rt"]
["rt"]
@ -737,7 +976,10 @@ in
name = "rustc_version";
version = "0.2.3";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"; };
src = fetchCratesIo {
inherit name version;
sha256 = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a";
};
dependencies = {
semver = rustPackages."registry+https://github.com/rust-lang/crates.io-index".semver."0.9.0" {inherit profileName;};
};
@ -747,7 +989,10 @@ in
name = "semver";
version = "0.9.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"; };
src = fetchCratesIo {
inherit name version;
sha256 = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403";
};
features = builtins.concatLists [
["default"]
];
@ -760,21 +1005,30 @@ in
name = "semver-parser";
version = "0.7.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"; };
src = fetchCratesIo {
inherit name version;
sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3";
};
});
"registry+https://github.com/rust-lang/crates.io-index".serde."1.0.138" = overridableMkRustCrate (profileName: rec {
name = "serde";
version = "1.0.138";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"; };
src = fetchCratesIo {
inherit name version;
sha256 = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47";
};
});
"registry+https://github.com/rust-lang/crates.io-index".ssmarshal."1.0.0" = overridableMkRustCrate (profileName: rec {
name = "ssmarshal";
version = "1.0.0";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "f3e6ad23b128192ed337dfa4f1b8099ced0c2bf30d61e551b65fda5916dbb850"; };
src = fetchCratesIo {
inherit name version;
sha256 = "f3e6ad23b128192ed337dfa4f1b8099ced0c2bf30d61e551b65fda5916dbb850";
};
dependencies = {
encode_unicode = rustPackages."registry+https://github.com/rust-lang/crates.io-index".encode_unicode."0.3.6" {inherit profileName;};
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.138" {inherit profileName;};
@ -785,7 +1039,10 @@ in
name = "syn";
version = "1.0.98";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"; };
src = fetchCratesIo {
inherit name version;
sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd";
};
features = builtins.concatLists [
["clone-impls"]
["default"]
@ -826,21 +1083,30 @@ in
name = "unicode-ident";
version = "1.0.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"; };
src = fetchCratesIo {
inherit name version;
sha256 = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c";
};
});
"registry+https://github.com/rust-lang/crates.io-index".usb-device."0.2.8" = overridableMkRustCrate (profileName: rec {
name = "usb-device";
version = "0.2.8";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "6be90410d4772074ea49525e2e753b65920b94b57eee21a6ef7b6a6fe6296245"; };
src = fetchCratesIo {
inherit name version;
sha256 = "6be90410d4772074ea49525e2e753b65920b94b57eee21a6ef7b6a6fe6296245";
};
});
"registry+https://github.com/rust-lang/crates.io-index".usbd-hid."0.5.2" = overridableMkRustCrate (profileName: rec {
name = "usbd-hid";
version = "0.5.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "183b7e65bbd75512aedf250deda89394c74ae3118b79fe41f159e8503e1d5d7f"; };
src = fetchCratesIo {
inherit name version;
sha256 = "183b7e65bbd75512aedf250deda89394c74ae3118b79fe41f159e8503e1d5d7f";
};
dependencies = {
serde = rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.138" {inherit profileName;};
ssmarshal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".ssmarshal."1.0.0" {inherit profileName;};
@ -853,7 +1119,10 @@ in
name = "usbd-hid-descriptors";
version = "0.1.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "9e00430c0b39caf3957aba6c2b2824f8e70e1ac0278941418bf1fe35f9566d64"; };
src = fetchCratesIo {
inherit name version;
sha256 = "9e00430c0b39caf3957aba6c2b2824f8e70e1ac0278941418bf1fe35f9566d64";
};
dependencies = {
bitfield = rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitfield."0.13.2" {inherit profileName;};
};
@ -863,7 +1132,10 @@ in
name = "usbd-hid-macros";
version = "0.5.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "78bd005b3aa54e62905d99df49a75d11888bb958eb780adb5e8f2029733077df"; };
src = fetchCratesIo {
inherit name version;
sha256 = "78bd005b3aa54e62905d99df49a75d11888bb958eb780adb5e8f2029733077df";
};
dependencies = {
byteorder = rustPackages."registry+https://github.com/rust-lang/crates.io-index".byteorder."1.3.4" {inherit profileName;};
proc_macro2 = rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.40" {inherit profileName;};
@ -878,7 +1150,10 @@ in
name = "usbd-serial";
version = "0.1.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "db75519b86287f12dcf0d171c7cf4ecc839149fe9f3b720ac4cfce52959e1dfe"; };
src = fetchCratesIo {
inherit name version;
sha256 = "db75519b86287f12dcf0d171c7cf4ecc839149fe9f3b720ac4cfce52959e1dfe";
};
dependencies = {
embedded_hal = rustPackages."registry+https://github.com/rust-lang/crates.io-index".embedded-hal."0.2.7" {inherit profileName;};
nb = rustPackages."registry+https://github.com/rust-lang/crates.io-index".nb."0.1.3" {inherit profileName;};
@ -890,31 +1165,42 @@ in
name = "vcell";
version = "0.1.3";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002"; };
src = fetchCratesIo {
inherit name version;
sha256 = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002";
};
});
"registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.4" = overridableMkRustCrate (profileName: rec {
name = "version_check";
version = "0.9.4";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"; };
src = fetchCratesIo {
inherit name version;
sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f";
};
});
"registry+https://github.com/rust-lang/crates.io-index".void."1.0.2" = overridableMkRustCrate (profileName: rec {
name = "void";
version = "1.0.2";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"; };
src = fetchCratesIo {
inherit name version;
sha256 = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d";
};
});
"registry+https://github.com/rust-lang/crates.io-index".volatile-register."0.2.1" = overridableMkRustCrate (profileName: rec {
name = "volatile-register";
version = "0.2.1";
registry = "registry+https://github.com/rust-lang/crates.io-index";
src = fetchCratesIo { inherit name version; sha256 = "9ee8f19f9d74293faf70901bc20ad067dc1ad390d2cbf1e3f75f721ffee908b6"; };
src = fetchCratesIo {
inherit name version;
sha256 = "9ee8f19f9d74293faf70901bc20ad067dc1ad390d2cbf1e3f75f721ffee908b6";
};
dependencies = {
vcell = rustPackages."registry+https://github.com/rust-lang/crates.io-index".vcell."0.1.3" {inherit profileName;};
};
});
}

View file

@ -21,6 +21,12 @@ defmt-rtt = "0.3"
panic-probe = { version = "0.3", features = ["print-defmt"] }
rp-pico = "0.4"
[dependencies.rp-binary-info]
git = "https://github.com/rp-rs/rp-binary-info"
[build-dependencies]
git-version = "0.3.5"
# cargo build/run
[profile.dev]
codegen-units = 1

View file

@ -28,4 +28,5 @@ fn main() {
// here, we ensure the build script is only re-run when
// `memory.x` is changed.
println!("cargo:rerun-if-changed=memory.x");
println!("cargo:rustc-env=GIT_VERSION={}", git_version::git_version!());
}

View file

@ -54,6 +54,7 @@
elf2uf2-rs
cargo-embed
llvmPackages_latest.bintools
picotool
];
};
packages = rec {
@ -73,6 +74,9 @@
};
rkbfirm-crate = (rustPkgs.workspace.rkbfirm {}).overrideAttrs (old: {
configureCargo = "true";
postPatch = ''
sed -i 's/git_version::git_version!()/"${self.lastModifiedDate}"/' build.rs
'';
});
tinyptr-crate = rustPkgs.workspace.tinyptr {};
tinyptr-alloc-crate = rustPkgs.workspace.tinyptr-alloc {};

View file

@ -1,6 +1,6 @@
#![no_std]
use tinyptr::ptr::MutPtr;
use tinyptr::ptr::{MutPtr, NonNull};
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct ListNode<const BASE: usize> {
@ -8,3 +8,22 @@ pub struct ListNode<const BASE: usize> {
pub size: u16
}
impl<const BASE: usize> ListNode<BASE> {
pub unsafe fn next(&mut self) -> Option<&mut Self> {
if self.next.is_null() {
None
} else {
Some(&mut *(self.next.wide()))
}
}
pub unsafe fn link_next(&mut self, block: NonNull<Self, BASE>) {
(*block.as_ptr().wide()).next = self.next;
self.next = block.as_ptr();
}
pub unsafe fn unlink_next(&mut self) {
if self.next.is_null() {
return;
}
self.next = (*self.next.wide()).next;
}
}

View file

@ -13,3 +13,21 @@ SECTIONS {
KEEP(*(.boot2));
} > BOOT2
} INSERT BEFORE .text;
SECTIONS {
/* ### Picotool 'Binary Info' Entries
*
* Picotool looks through this block (as we have pointers to it in our header) to find interesting information.
*/
.bi_entries : ALIGN(4)
{
/* We put this in the header */
__bi_entries_start = .;
/* Here are the entries */
KEEP(*(.bi_entries));
/* Keep this block a nice round size */
. = ALIGN(4);
/* We put this in the header */
__bi_entries_end = .;
} > FLASH
} INSERT AFTER .text;

42
src/binary_info.rs Normal file
View file

@ -0,0 +1,42 @@
extern "C" {
static __bi_entries_start: rp_binary_info::entry::Addr;
static __bi_entries_end: rp_binary_info::entry::Addr;
static __sdata: u32;
static __edata: u32;
static __sidata: u32;
}
/// Picotool can find this block in our ELF file and report interesting metadata.
#[link_section = ".bi_header"]
#[used]
pub static PICOTOOL_META: rp_binary_info::Header =
unsafe { rp_binary_info::Header::new(&__bi_entries_start, &__bi_entries_end, &MAPPING_TABLE) };
/// This tells picotool how to convert RAM addresses back into Flash addresses
static MAPPING_TABLE: [rp_binary_info::MappingTableEntry; 2] = [
// This is the entry for .data
rp_binary_info::MappingTableEntry {
source_addr_start: unsafe { &__sidata },
dest_addr_start: unsafe { &__sdata },
dest_addr_end: unsafe { &__edata },
},
// This is the terminating marker
rp_binary_info::MappingTableEntry {
source_addr_start: core::ptr::null(),
dest_addr_start: core::ptr::null(),
dest_addr_end: core::ptr::null(),
},
];
/// This is a list of references to our table entries
#[link_section = ".bi_entries"]
#[used]
pub static PICOTOOL_ENTRIES: [rp_binary_info::entry::Addr; 2] = [
PROGRAM_NAME.addr(),
PROGRAM_VERSION.addr(),
];
static PROGRAM_NAME: rp_binary_info::entry::IdAndString =
rp_binary_info::program_name(concat!("RKB1 firmware", "\0"));
static PROGRAM_VERSION: rp_binary_info::entry::IdAndString =
rp_binary_info::version(concat!(env!("GIT_VERSION"), "\0"));

View file

@ -10,6 +10,7 @@ use defmt_rtt as _;
use embedded_hal::digital::v2::OutputPin;
use embedded_time::fixed_point::FixedPoint;
use panic_probe as _;
mod binary_info;
// Provide an alias for our BSP so we can switch targets quickly.
// Uncomment the BSP you included in Cargo.toml, the rest of the code does not need to change.