From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] bare_metal: add libopencm3 support
Date: Fri, 13 Jun 2014 08:24:33 +0200 [thread overview]
Message-ID: <20140613062433.GF23595@pengutronix.de> (raw)
In-Reply-To: <1402186032-3968-1-git-send-email-m.grzeschik@pengutronix.de>
On Sun, Jun 08, 2014 at 02:07:12AM +0200, Michael Grzeschik wrote:
> This patch adds support for the libopencm3 for bare metal
> systems. With this library it is possible to build single
> applications for cortexm3 companion systems, that
> needs to be deployed with the bsp.
>
> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> ---
> rules/bare_metal.in | 7 +++++
> rules/bare_metal_cm3.in | 12 ++++++++
> rules/libopencm3.in | 11 ++++++++
> rules/libopencm3.make | 75 +++++++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 105 insertions(+)
> create mode 100644 rules/bare_metal_cm3.in
> create mode 100644 rules/libopencm3.in
> create mode 100644 rules/libopencm3.make
>
> diff --git a/rules/bare_metal.in b/rules/bare_metal.in
> index 1292a34..e5c15c5 100644
> --- a/rules/bare_metal.in
> +++ b/rules/bare_metal.in
> @@ -6,3 +6,10 @@ menuconfig STELLARIS
> if STELLARIS
> source "generated/bare_metal_stellaris.in"
> endif
> +
> +menuconfig OPENCM3
> + bool "OpenCM3 "
> +
> +if OPENCM3
> +source "generated/bare_metal_cm3.in"
> +endif
> diff --git a/rules/bare_metal_cm3.in b/rules/bare_metal_cm3.in
> new file mode 100644
> index 0000000..a912c9e
> --- /dev/null
> +++ b/rules/bare_metal_cm3.in
> @@ -0,0 +1,12 @@
> +## SECTION=bare_metal_cm3
> +
> +config CM3_GNU_TARGET
> + string
> + prompt "stellaris gnu target"
I think this should be 'cm3' not 'stellaris', right?
> + default "arm-cortexm3-eabi"
> + help
> + configure the cm3 gnu target
> +
> +config CM3_CC
> + string
> + default "${PTXCONF_CM3_GNU_TARGET}-gcc"
> diff --git a/rules/libopencm3.in b/rules/libopencm3.in
> new file mode 100644
> index 0000000..69276b7
> --- /dev/null
> +++ b/rules/libopencm3.in
> @@ -0,0 +1,11 @@
> +## SECTION=bare_metal_cm3
> +
> +config LIBOPENCM3
> + tristate
> + prompt "libopencm3"
> + help
> + The libopencm3 project (previously known as libopenstm32) aims
> + to create a free/libre/open-source (LGPL v3, or later) firmware
> + library for various ARM Cortex-M0(+)/M3/M4 microcontrollers,
> + including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx,
> + 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
> diff --git a/rules/libopencm3.make b/rules/libopencm3.make
> new file mode 100644
> index 0000000..8ceb1a1
> --- /dev/null
> +++ b/rules/libopencm3.make
> @@ -0,0 +1,75 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2013 by Michael Grzeschik <m.grzeschik@gmx.net>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +ifdef PTXCONF_LIBOPENCM3
> +ifneq ($(shell test -h $(PTXDIST_WORKSPACE)/selected_toolchain_cm3 && echo ok),ok)
> + $(warning *** selected_toolchain_cm3 must point to a valid cortexm3 toolchain)
> + $(error )
> +endif
> +ifneq ($(shell test -x $(PTXDIST_WORKSPACE)/selected_toolchain_cm3/$(PTXCONF_CM3_CC) && echo ok),ok)
> + $(warning *** $(PTXDIST_WORKSPACE)/selected_toolchain_cm3/$(PTXCONF_CM3_CC) not found)
> + $(error )
> +endif
> +endif
I don't really like this, but I have no better idea either :-/
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LIBOPENCM3) += libopencm3
> +
> +#
> +# Paths and names
> +#
> +LIBOPENCM3_VERSION := 67b538a5
> +LIBOPENCM3_MD5 := 7d40cc7bcd3a5e852d0b37572655b9b5
> +LIBOPENCM3 := libopencm3-$(LIBOPENCM3_VERSION)
> +LIBOPENCM3_SUFFIX := tar.bz2
> +LIBOPENCM3_URL := https://github.com/libopencm3/libopencm3.git;tag=67b538a5
> +LIBOPENCM3_SOURCE := $(SRCDIR)/$(LIBOPENCM3).$(LIBOPENCM3_SUFFIX)
> +LIBOPENCM3_DIR := $(BUILDDIR)/$(LIBOPENCM3)
> +LIBOPENCM3_LICENSE := LGPLv3+
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +LIBOPENCM3_MAKEVARS := \
> + PREFIX=$(PTXDIST_WORKSPACE)/selected_toolchain_cm3/$(PTXCONF_CM3_GNU_TARGET)
_MAKEVARS is deprecated. use _MAKE_OPT / _INSTALL_OPT
Also, I think you should expand PATH and then use PREFIX=$(PTXCONF_CM3_GNU_TARGET)
> +
> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libopencm3.install:
> + @$(call targetinfo)
> +
> +# # install static libraries
> + mkdir -p $(PTXDIST_PLATFORMDIR)/sysroot-cm3/lib
> + cp $(LIBOPENCM3_DIR)/lib/*.a \
> + $(PTXDIST_PLATFORMDIR)/sysroot-cm3/lib/
c$(LIBOPENCM3_DIR) && \
for i in lib/*.a; do \
install -D -m644 $$i $(PTXDIST_PLATFORMDIR)/sysroot-cm3/$$i; \
done
or something like that.
-> no need for mkdir
-> strange umasks wont cause problems
> +
> +# # install header files
> + mkdir -p $(PTXDIST_PLATFORMDIR)/sysroot-cm3/include
> + cd $(LIBOPENCM3_DIR) && \
> + for i in `find . -name "*.h"`; do \
> + mkdir -p $(PTXDIST_PLATFORMDIR)/sysroot-cm3/include/`dirname $$i`; \
> + cp $$i $(PTXDIST_PLATFORMDIR)/sysroot-cm3/include/$$i; \
> + done
same here.
> + @$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/libopencm3.targetinstall:
> + @$(call targetinfo)
> + @$(call touch)
The default targetinstall is empty, so this can be removed.
Michael
> +
> +# vim: syntax=make
> --
> 2.0.0.rc2
>
>
> --
> ptxdist mailing list
> ptxdist@pengutronix.de
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
--
ptxdist mailing list
ptxdist@pengutronix.de
next prev parent reply other threads:[~2014-06-13 6:24 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-08 0:07 Michael Grzeschik
2014-06-13 6:24 ` Michael Olbrich [this message]
2014-06-27 19:02 ` [ptxdist] [PATCH v2] " Michael Grzeschik
2014-08-06 20:39 ` Michael Grzeschik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140613062433.GF23595@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox