diff options
Diffstat (limited to 'gnu/packages/embedded.scm')
-rw-r--r-- | gnu/packages/embedded.scm | 221 |
1 files changed, 118 insertions, 103 deletions
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index f388c11c3d..6e951e70a0 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2020, 2021 Simon South <simon@simonsouth.net> ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; ;;; This file is part of GNU Guix. @@ -294,9 +295,9 @@ usable on embedded products.") (origin-patches (package-source gcc-7)) (search-patches "gcc-7-cross-environment-variables.patch"))))) (native-inputs - `(("flex" ,flex) - ("isl" ,isl-0.18) - ,@(alist-delete "isl" (package-native-inputs xgcc)))) + (modify-inputs (package-native-inputs xgcc) + (delete "isl") + (prepend flex isl-0.18))) (arguments (substitute-keyword-arguments (package-arguments xgcc) ((#:phases phases) @@ -516,12 +517,9 @@ languages are C and C++.") "0ndyfh51hiqyv2yscpj6qd091w7myxxjid3a6rx8f6k233vy826q")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) + (list autoconf automake libtool pkg-config)) (inputs - `(("libusb" ,libusb))) + (list libusb)) (home-page "https://repo.or.cz/w/libjaylink.git") (synopsis "Library to interface Segger J-Link devices") (description "libjaylink is a shared library written in C to access @@ -559,7 +557,7 @@ SEGGER J-Link and compatible devices.") ))) (native-inputs ;; For tests. - `(("inetutils" ,inetutils))) ; for hostname + (list inetutils)) ; for hostname (home-page "http://jim.tcl.tk/index.html") (synopsis "Small footprint Tcl implementation") (description "Jim is a small footprint implementation of the Tcl programming @@ -567,73 +565,72 @@ language.") (license license:bsd-2))) (define-public openocd - (let ((commit "9a877a83a1c8b1f105cdc0de46c5cbc4d9e8799e") - (revision "0")) - (package - (name "openocd") - (version (string-append "0.10.0-" revision "." - (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.code.sf.net/p/openocd/code") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1q536cp80v2bcy6xwk08f1r2ljyw13jchx3a1z7d3ni3vqql7rc6")))) - (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("which" ,base:which) - ("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (inputs - `(("hidapi" ,hidapi) - ("jimtcl" ,jimtcl) - ("libftdi" ,libftdi) - ("libjaylink" ,libjaylink) - ("libusb-compat" ,libusb-compat))) - (arguments - '(#:configure-flags - (append (list "LIBS=-lutil" - "--disable-werror" - "--enable-sysfsgpio" - "--disable-internal-jimtcl" - "--disable-internal-libjaylink") - (map (lambda (programmer) - (string-append "--enable-" programmer)) - '("amtjtagaccel" "armjtagew" "buspirate" "ftdi" - "gw16012" "jlink" "opendous" "osbdm" - "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi" - "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink" - "usbprog" "vsllink" "usb-blaster-2" "usb_blaster" - "presto" "openjtag"))) - #:phases - (modify-phases %standard-phases - (replace 'bootstrap - (lambda _ - (patch-shebang "bootstrap") - (invoke "./bootstrap" "nosubmodule"))) - (add-after 'autoreconf 'change-udev-group - (lambda _ - (substitute* "contrib/60-openocd.rules" - (("plugdev") "dialout")) - #t)) - (add-after 'install 'install-udev-rules - (lambda* (#:key outputs #:allow-other-keys) - (install-file "contrib/60-openocd.rules" - (string-append - (assoc-ref outputs "out") - "/lib/udev/rules.d/")) - #t))))) - (home-page "http://openocd.org") - (synopsis "On-Chip Debugger") - (description "OpenOCD provides on-chip programming and debugging support + (package + (name "openocd") + (version "0.11.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.code.sf.net/p/openocd/code") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0qi4sixwvw1i7c64sy221fsjs82qf3asmdk86g74ds2jjm3f8pzp")))) + (build-system gnu-build-system) + (native-inputs + (list autoconf + automake + libtool + base:which + pkg-config + texinfo)) + (inputs + (list hidapi jimtcl libftdi libjaylink libusb-compat)) + (arguments + '(#:configure-flags + (append (list "LIBS=-lutil" + "--disable-werror" + "--enable-sysfsgpio" + "--disable-internal-jimtcl" + "--disable-internal-libjaylink") + (map (lambda (programmer) + (string-append "--enable-" programmer)) + '("amtjtagaccel" "armjtagew" "buspirate" "ftdi" + "gw16012" "jlink" "opendous" "osbdm" + "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi" + "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink" + "usbprog" "vsllink" "usb-blaster-2" "usb_blaster" + "presto" "openjtag" "rshim" "ft232r" "xds110" + "cmsis-dap-v2" "nulink" "kitprog" "jtag_dpi" + "bcm2835gpio" "imx_gpio" "ep93xx" "at91rm9200" + "sysfsgpio" "xlnx-pcie-xvc"))) + #:phases + (modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + ;; Make build reproducible. + (substitute* "src/Makefile.am" + (("-DPKGBLDDATE=") "-DDISABLED_PKGBLDDATE=")) + (patch-shebang "bootstrap") + (invoke "./bootstrap" "nosubmodule"))) + (add-after 'autoreconf 'change-udev-group + (lambda _ + (substitute* "contrib/60-openocd.rules" + (("plugdev") "dialout")) + #t)) + (add-after 'install 'install-udev-rules + (lambda* (#:key outputs #:allow-other-keys) + (install-file "contrib/60-openocd.rules" + (string-append + (assoc-ref outputs "out") + "/lib/udev/rules.d/")) + #t))))) + (home-page "http://openocd.org") + (synopsis "On-Chip Debugger") + (description "OpenOCD provides on-chip programming and debugging support with a layered architecture of JTAG interface and TAP support.") - (license license:gpl2+)))) + (license license:gpl2+))) ;; The commits for all propeller tools are the stable versions published at ;; https://github.com/propellerinc/propgcc in the release_1_0. According to @@ -698,8 +695,8 @@ with a layered architecture of JTAG interface and TAP support.") (origin-patches (package-source gcc-6)) (search-patches "gcc-cross-environment-variables.patch"))))) (native-inputs - `(("flex" ,flex) - ,@(package-native-inputs xgcc))) + (modify-inputs (package-native-inputs xgcc) + (prepend flex))) ;; All headers and cross libraries of the propeller toolchain are ;; installed under the "propeller-elf" prefix. (native-search-paths @@ -807,9 +804,7 @@ with a layered architecture of JTAG interface and TAP support.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "install-includes" make-flags)))))) (native-inputs - `(("propeller-gcc" ,propeller-gcc) - ("propeller-binutils" ,propeller-binutils) - ("perl" ,perl))) + (list propeller-gcc propeller-binutils perl)) (home-page "https://github.com/parallaxinc/propgcc") (synopsis "C library for the Parallax Propeller") (description "This is a C library for the Parallax Propeller @@ -901,8 +896,7 @@ code.") (lambda _ (chdir "loader") #t)) (delete 'configure)))) (native-inputs - `(("openspin" ,openspin) - ("propeller-toolchain" ,propeller-toolchain))) + (list openspin propeller-toolchain)) (home-page "https://github.com/parallaxinc/propgcc") (synopsis "Loader for Parallax Propeller micro-controllers") (description "This package provides the tool @code{propeller-load} to @@ -947,9 +941,7 @@ upload binaries to a Parallax Propeller micro-controller.") '("testlex" "spin2cpp" "fastspin"))) #t))))) (native-inputs - `(("bison" ,bison) - ("propeller-load" ,propeller-load) - ("propeller-toolchain" ,propeller-toolchain))) + (list bison propeller-load propeller-toolchain)) (home-page "https://github.com/totalspectrum/spin2cpp") (synopsis "Convert Spin code to C, C++, or PASM code") (description "This is a set of tools for converting the Spin language for @@ -1089,8 +1081,8 @@ the Raspberry Pi chip.") (search-patches "gcc-6-fix-buffer-size.patch" "gcc-6-fix-isl-includes.patch")))) (native-inputs - `(("flex" ,flex) - ,@(package-native-inputs xgcc))) + (modify-inputs (package-native-inputs xgcc) + (prepend flex))) (synopsis "GCC for VC4") (description "This package provides @code{gcc} for VideoCore IV, the Raspberry Pi chip.")))) @@ -1111,12 +1103,9 @@ the Raspberry Pi chip.")))) "1rypfb96k2szqgygp3jnwg2zq9kwmfz0460dsahn3r2vkzml8wn7")))) (build-system gnu-build-system) (inputs - `(("libftdi" ,libftdi) - ("python" ,python))) + (list libftdi python)) (native-inputs - `(("pkg-config" ,pkg-config) - ("swig" ,swig) - ("which" ,base:which))) + (list pkg-config swig base:which)) (arguments `(#:tests? #f ; No tests exist. #:parallel-build? #f ; Would be buggy. @@ -1256,7 +1245,7 @@ SPI, I2C, JTAG.") #t)) (delete 'configure)))) (inputs - `(("libx11" ,libx11))) + (list libx11)) (synopsis "Freecalypso host tools") (description "This package provides some tools for debugging FreeCalypso phones and the FreeCalypso FCDEV3B dev board. @@ -1350,6 +1339,36 @@ these identified regions. (home-page "https://www.freecalypso.org/") (license license:public-domain))) +(define-public stcgal + (package + (name "stcgal") + (version "1.6") + (source (origin + ;; Neither the unit tests nor the "doc" subdirectory referred to + ;; by stcgal's setup.py is present in the source distribution on + ;; PyPI, so we fetch directly from the project's git repository + ;; instead. + (method git-fetch) + (uri (git-reference + (url "https://github.com/grigorig/stcgal") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d10qxyghz66zp7iqpm8q8rfv9jz9n609gxmfcav1lssmf1dlyk3")))) + (build-system python-build-system) + (propagated-inputs + (list python-pyserial python-pyusb python-tqdm)) + (native-inputs + ;; For tests. + (list python-pyyaml)) + (home-page "https://github.com/grigorig/stcgal") + (synopsis "Programmer for STC 8051-compatible microcontrollers") + (description "stcgal is a command-line flash-programming tool for STC +MCU's line of Intel 8051-compatible microcontrollers, including those in the +STC89, STC90, STC10, STC11, STC12, STC15 and STC8 series.") + (license license:expat))) + (define-public stlink (package (name "stlink") @@ -1375,7 +1394,7 @@ these identified regions. (list (string-append "-DSTLINK_UDEV_RULES_DIR=" udev-rules) (string-append "-DSTLINK_MODPROBED_DIR=" modprobe))))) (inputs - `(("libusb" ,libusb))) + (list libusb)) (synopsis "Programmer for STM32 Discovery boards") (description "This package provides a firmware programmer for the STM32 Discovery boards. It supports two versions of the chip: ST-LINK/V1 (on @@ -1400,10 +1419,8 @@ raw USB commands.") (base32 "0ql6ij1hrj2ir5wkxm96zgig5qwvfwa75w77wh2y13w6b9cqcr4b")))) (propagated-inputs - `(("python-colorama" ,python-colorama) - ("python-configobj" ,python-configobj) - ("python-pykwalify" ,python-pykwalify) - ("python-pyyaml" ,python-pyyaml))) + (list python-colorama python-configobj python-pykwalify + python-pyyaml)) (build-system python-build-system) (home-page "https://github.com/zephyrproject-rtos/west") (synopsis "Zephyr RTOS Project meta-tool") @@ -1443,7 +1460,7 @@ debugging them, and more.") config-destination) #t)))))) (inputs - `(("mosquitto" ,mosquitto))) + (list mosquitto)) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf) @@ -1495,8 +1512,7 @@ handling communication with eBUS devices connected to a 2-wire bus system (string-append (assoc-ref outputs "out") "/share/man")) #t))))) (native-inputs - `(("bison" ,bison) - ("flex" ,flex))) + (list bison flex)) (home-page "http://mazsola.iit.uni-miskolc.hu/ucsim/") (synopsis "Simulators for various microcontroller families") (description "μCsim is a collection of software simulators for @@ -1586,8 +1602,7 @@ families, plus many of their variants.") (("from IPython.*") "")))))) (build-system python-build-system) (propagated-inputs - `(("python-cryptography" ,python-cryptography) - ("python-prettytable" ,python-prettytable))) + (list python-cryptography python-prettytable)) (home-page "https://github.com/PSPReverse/psptool") (synopsis "Tool for dealing with AMD binary blobs") (description "PSPTool is a tool for dealing with AMD binary blobs") |