blackmagic init at 1.6.1
This commit is contained in:
parent
07dc20e436
commit
e33c7fa4c1
|
@ -0,0 +1,59 @@
|
||||||
|
{ stdenv, lib, fetchFromGitHub
|
||||||
|
, gcc-arm-embedded, bash, libftdi
|
||||||
|
, python, pythonPackages
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "blackmagic-${version}";
|
||||||
|
version = "1.6.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "blacksphere";
|
||||||
|
repo = "blackmagic";
|
||||||
|
rev = "d3a8f27fdbf952194e8fc5ce9b2fc9bcef7c545c";
|
||||||
|
sha256 = "0c3l7cfqag3g7zrfn4mmikkx7076hb1r856ybhhdh0f6zji2j6jx";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gcc-arm-embedded
|
||||||
|
libftdi
|
||||||
|
python
|
||||||
|
pythonPackages.intelhex
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
# Prevent calling out to `git' to generate a version number:
|
||||||
|
substituteInPlace src/Makefile \
|
||||||
|
--replace '`git describe --always --dirty`' '${version}'
|
||||||
|
|
||||||
|
# Fix scripts that generate headers:
|
||||||
|
for f in $(find scripts libopencm3/scripts -type f); do
|
||||||
|
patchShebangs "$f"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = "${stdenv.shell} ${./helper.sh}";
|
||||||
|
installPhase = ":"; # buildPhase does this.
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "In-application debugger for ARM Cortex microcontrollers";
|
||||||
|
longDescription = ''
|
||||||
|
The Black Magic Probe is a modern, in-application debugging tool
|
||||||
|
for embedded microprocessors. It allows you to see what is going
|
||||||
|
on "inside" an application running on an embedded microprocessor
|
||||||
|
while it executes.
|
||||||
|
|
||||||
|
This package builds the firmware for all supported platforms,
|
||||||
|
placing them in separate directories under the firmware
|
||||||
|
directory. It also places the FTDI version of the blackmagic
|
||||||
|
executable in the bin directory.
|
||||||
|
'';
|
||||||
|
homepage = https://github.com/blacksphere/blackmagic;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = with maintainers; [ pjones ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
################################################################################
|
||||||
|
# Build all of the platforms manually since the `all_platforms' target
|
||||||
|
# doesn't preserve all of the build outputs and overrides CFLAGS.
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Prevent a warning from shellcheck:
|
||||||
|
out=${out:-/tmp}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
export CFLAGS=$NIX_CFLAGS_COMPILE
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
PRODUCTS="blackmagic.bin blackmagic.hex blackmagic_dfu.bin blackmagic_dfu.hex"
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
make_platform() {
|
||||||
|
echo "Building for hardware platform $1"
|
||||||
|
|
||||||
|
make clean
|
||||||
|
make PROBE_HOST="$1"
|
||||||
|
|
||||||
|
if [ "$1" = libftdi ]; then
|
||||||
|
mkdir -p "$out/bin"
|
||||||
|
install -m 0555 blackmagic "$out/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for f in $PRODUCTS; do
|
||||||
|
if [ -r "$f" ]; then
|
||||||
|
mkdir -p "$out/firmware/$1"
|
||||||
|
install -m 0444 "$f" "$out/firmware/$1"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Start by building libopencm3:
|
||||||
|
make -C libopencm3
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# And now all of the platforms:
|
||||||
|
cd src
|
||||||
|
|
||||||
|
for platform in platforms/*/Makefile.inc; do
|
||||||
|
probe=$(basename "$(dirname "$platform")")
|
||||||
|
make_platform "$probe"
|
||||||
|
done
|
|
@ -6500,6 +6500,8 @@ with pkgs;
|
||||||
bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
|
bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
|
||||||
bison = bison3;
|
bison = bison3;
|
||||||
|
|
||||||
|
blackmagic = callPackage ../development/tools/misc/blackmagic { };
|
||||||
|
|
||||||
bloaty = callPackage ../development/tools/bloaty { };
|
bloaty = callPackage ../development/tools/bloaty { };
|
||||||
|
|
||||||
bossa = callPackage ../development/tools/misc/bossa {
|
bossa = callPackage ../development/tools/misc/bossa {
|
||||||
|
|
Loading…
Reference in New Issue