Skip to content
Snippets Groups Projects
Commit 0dd3ad0d authored by Astro's avatar Astro :gear:
Browse files

nix: build bootloader

parent 49d38fcc
No related branches found
No related tags found
No related merge requests found
Pipeline #279 passed
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
}: }:
with pkgs; with pkgs;
let let
firmware = subdir: firmwareBuilder = callPackage ./nix/firmware.nix {};
callPackage ./nix/firmware.nix { inherit subdir; };
openocd = callPackage ./nix/openocd.nix { }; openocd = callPackage ./nix/openocd.nix { };
in in
with firmwareBuilder;
{ {
openocd = stdenv.mkDerivation { openocd = stdenv.mkDerivation {
name = "openocd-card10"; name = "openocd-card10";
...@@ -20,12 +20,14 @@ in ...@@ -20,12 +20,14 @@ in
--add-flags "-f $out/share/openocd/scripts/target/max32665.cfg" --add-flags "-f $out/share/openocd/scripts/target/max32665.cfg"
''; '';
}; };
ble = firmware "ble";
bmatest = firmware "bmatest"; bootloader = firmware "bootloader";
bmetest = firmware "bmetest"; ble = loadable "ble";
ecgtest = firmware "ecgtest"; bmatest = loadable "bmatest";
Hello_World = firmware "Hello_World"; bmetest = loadable "bmetest";
Hello_World_FreeRTOS = firmware "Hello_World_FreeRTOS"; ecgtest = loadable "ecgtest";
imutest = firmware "imutest"; Hello_World = loadable "Hello_World";
ips = firmware "ips"; Hello_World_FreeRTOS = loadable "Hello_World_FreeRTOS";
imutest = loadable "imutest";
ips = loadable "ips";
} }
{ pkgsCross, python3, callPackage, subdir }: { pkgsCross, python3, callPackage }:
let let
crc16 = callPackage ./python-crc16.nix {}; crc16 = callPackage ./python-crc16.nix {};
in in rec {
firmware = subdir:
pkgsCross.arm-embedded.stdenv.mkDerivation { pkgsCross.arm-embedded.stdenv.mkDerivation {
name = "firmware-${subdir}"; name = "${subdir}";
src = ./..;
buildInputs = [ ];
hardeningDisable= [ "all" ];
buildPhase = ''
cd ${subdir}
make clean
make -j ''$NIX_BUILD_CORES
make -j ''$NIX_BUILD_CORES build/max32665.elf
'';
installPhase = ''
mkdir -p $out/lib
cp build/max32665.elf $out/lib/card10.elf
'';
};
loadable = subdir:
pkgsCross.arm-embedded.stdenv.mkDerivation {
name = "loadable-${subdir}";
src = ./..; src = ./..;
buildInputs = [ crc16 ]; buildInputs = [ crc16 ];
hardeningDisable= [ "all" ]; hardeningDisable= [ "all" ];
...@@ -17,6 +36,8 @@ pkgsCross.arm-embedded.stdenv.mkDerivation { ...@@ -17,6 +36,8 @@ pkgsCross.arm-embedded.stdenv.mkDerivation {
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/lib mkdir -p $out/lib
cp build/max32665.elf $out/lib/card10.elf
cp build/max32665.bin $out/lib/card10.bin cp build/max32665.bin $out/lib/card10.bin
''; '';
};
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment