diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2021-05-07 13:01:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-07 13:01:58 +0200 |
commit | f6899555d0526cc4600faada2bca1b2060558949 (patch) | |
tree | 60c84ed87a59d23ba099138688f16d9ec01e6da0 | |
parent | edb9e32ff1efc186d5709339b1946ee29803b86d (diff) | |
parent | 9aae499e79179060a6b6afbdaad0c118d2693503 (diff) |
Merge pull request #58600 from AerialX/msp430-mspds
MSP430 debug stack
-rw-r--r-- | pkgs/development/misc/msp430/mspds/binary.nix | 35 | ||||
-rw-r--r-- | pkgs/development/misc/msp430/mspds/bsl430.patch | 51 | ||||
-rw-r--r-- | pkgs/development/misc/msp430/mspds/default.nix | 56 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 3 |
4 files changed, 145 insertions, 0 deletions
diff --git a/pkgs/development/misc/msp430/mspds/binary.nix b/pkgs/development/misc/msp430/mspds/binary.nix new file mode 100644 index 0000000000000..690ed3e45e717 --- /dev/null +++ b/pkgs/development/misc/msp430/mspds/binary.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, fetchurl, unzip, autoPatchelfHook }: + +with lib; + +let + archPostfix = optionalString (stdenv.is64bit && !stdenv.isDarwin) "_64"; +in stdenv.mkDerivation rec { + pname = "msp-debug-stack-bin"; + version = "3.15.1.1"; + src = fetchurl { + url = "http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPDS/3_15_1_001/export/MSP430_DLL_Developer_Package_Rev_3_15_1_1.zip"; + sha256 = "1m1ssrwbhqvqwbp3m4hnjyxnz3f9d4acz9vl1av3fbnhvxr0d2hb"; + }; + sourceRoot = "."; + + libname = + if stdenv.hostPlatform.isWindows then "MSP430${archPostfix}.dll" + else "libmsp430${archPostfix}${stdenv.hostPlatform.extensions.sharedLibrary}"; + + nativeBuildInputs = [ unzip autoPatchelfHook ]; + buildInputs = [ stdenv.cc.cc ]; + + installPhase = '' + install -Dm0755 $libname $out/lib/''${libname//_64/} + install -Dm0644 -t $out/include Inc/*.h + ''; + + meta = { + description = "Unfree binary release of the TI MSP430 FET debug driver"; + homepage = https://www.ti.com/tool/MSPDS; + license = licenses.unfree; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ aerialx ]; + }; +} diff --git a/pkgs/development/misc/msp430/mspds/bsl430.patch b/pkgs/development/misc/msp430/mspds/bsl430.patch new file mode 100644 index 0000000000000..6c57fb040e267 --- /dev/null +++ b/pkgs/development/misc/msp430/mspds/bsl430.patch @@ -0,0 +1,51 @@ +diff -ruN a/Makefile b/Makefile +--- a/Makefile 2020-06-03 16:10:18.000000000 -0700 ++++ b/Makefile 2020-07-21 18:03:12.464121056 -0700 +@@ -42,7 +42,7 @@ + + PLATFORM := $(shell uname -s) + ifeq ($(PLATFORM),Linux) +- CXX:= g++ ++ CXX?= g++ + + STATICOUTPUT := linux64 + +@@ -68,7 +68,7 @@ + + HIDOBJ := $(LIBTHIRD)/hid-libusb.o + else +- CXX:= clang++ ++ CXX?= clang++ + + OUTPUT := libmsp430.dylib + STATICOUTPUT := mac64 +@@ -134,7 +134,7 @@ + $(CXX) -c -o $@ $< $(USE_PCH) $(CXXFLAGS) $(INCLUDES) $(DEFINES) + + $(BSLLIB): +- $(MAKE) -C ./ThirdParty/BSL430_DLL ++ $(MAKE) -C ./ThirdParty/BSL430_DLL OUTPUT=../../$(BSLLIB) + + install: + cp $(OUTPUT) /usr/local/lib/ +diff -ruN a/ThirdParty/BSL430_DLL/Makefile b/ThirdParty/BSL430_DLL/Makefile +--- a/ThirdParty/BSL430_DLL/Makefile 2019-11-18 13:16:00.000000000 -0800 ++++ b/ThirdParty/BSL430_DLL/Makefile 2020-07-21 18:02:55.987782494 -0700 +@@ -36,7 +36,7 @@ + + PLATFORM := $(shell uname -s) + ifeq ($(PLATFORM),Linux) +- CXX:= g++ ++ CXX?= g++ + + ifdef BIT32 + CXXFLAGS += -m32 +@@ -47,7 +47,7 @@ + INCLUDES += -I$(BOOST_DIR) + endif + else +- CXX:= clang++ ++ CXX?= clang++ + + ifdef BOOST_DIR + INCLUDES += -I$(BOOST_DIR)/include diff --git a/pkgs/development/misc/msp430/mspds/default.nix b/pkgs/development/misc/msp430/mspds/default.nix new file mode 100644 index 0000000000000..2481b50bfbef6 --- /dev/null +++ b/pkgs/development/misc/msp430/mspds/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, fetchurl, unzip +, boost, pugixml +, hidapi +, libusb1 ? null +}: + +with lib; +assert stdenv.isLinux -> libusb1 != null; + +let + hidapiDriver = optionalString stdenv.isLinux "-libusb"; + +in stdenv.mkDerivation { + pname = "msp-debug-stack"; + version = "3.15.1.1"; + + src = fetchurl { + url = "http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPDS/3_15_1_001/export/MSPDebugStack_OS_Package_3_15_1_1.zip"; + sha256 = "1j5sljqwc20zrb50mrji4mnmw5i680qc7n0lb0pakrrxqjc9m9g3"; + }; + sourceRoot = "."; + + enableParallelBuilding = true; + libName = "libmsp430${stdenv.hostPlatform.extensions.sharedLibrary}"; + makeFlags = [ "OUTPUT=$(libName)" "HIDOBJ=" ]; + NIX_LDFLAGS = [ "-lpugixml" "-lhidapi${hidapiDriver}" ]; + NIX_CFLAGS_COMPILE = [ "-I${hidapi}/include/hidapi" ]; + + patches = [ ./bsl430.patch ]; + + preBuild = '' + rm ThirdParty/src/pugixml.cpp + rm ThirdParty/include/pugi{config,xml}.hpp + '' + optionalString stdenv.isDarwin '' + makeFlagsArray+=(OUTNAME="-install_name ") + ''; + + installPhase = '' + install -Dm0755 -t $out/lib $libName + install -Dm0644 -t $out/include DLL430_v3/include/*.h + ''; + + nativeBuildInputs = [ unzip ]; + buildInputs = [ boost hidapi pugixml ] + ++ optional stdenv.isLinux libusb1; + + meta = { + description = "TI MSP430 FET debug driver"; + homepage = https://www.ti.com/tool/MSPDS; + license = licenses.bsd3; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ aerialx ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9baeb25fa16c0..01fa18d0dfa78 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12307,6 +12307,9 @@ in newlib = newlibCross; }; + mspds = callPackage ../development/misc/msp430/mspds { }; + mspds-bin = callPackage ../development/misc/msp430/mspds/binary.nix { }; + mspdebug = callPackage ../development/misc/msp430/mspdebug.nix { }; vc4-newlib = callPackage ../development/misc/vc4/newlib.nix {}; |