1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-24 22:13:52 +01:00

279 Commits

Author SHA1 Message Date
Alexandre Abadie
891580aba7
sys/auto_init: add support for periph_temperature 2019-03-08 21:14:22 +01:00
Kevin "Bear Puncher" Weiss
e33e7bf159
Merge pull request #9646 from cladmi/pr/make/docker/fix_relative_build_directory
makefiles/docker.inc.mk: Use directories in RIOT when possible
2019-03-08 09:48:13 +01:00
Gaëtan Harter
0514de233d
makefiles/mcuboot: prepare for when FLASHFILE is used
Prepare to keep working when `FLASHFILE` is used for the FLASHER.
2019-03-06 17:07:35 +01:00
Gaëtan Harter
411e98e55e
Merge pull request #11110 from jcarrano/flash_canned_recipe_conversion
riotboot,mcuboot: Use canned recipe for flashing.
2019-03-06 16:50:43 +01:00
Juan Carrano
420b2c9220 makefiles/mcuboot: use canned recipe for flashing.
The canned recipe is preferred to using $(FLASHER) $(FFLAGS) as it
allows to specify additional action actions (like what preflash is
currently doing.)
2019-03-05 14:45:48 +01:00
Juan Carrano
748bc6deee makefiles/riotboot: use canned recipe for flashing.
A canned recipe had previously been defined to perform the flashing
procedure. The canned recipe is preferred to calling $(FLASHER) $(FFLAGS)
as there might be additional steps involved in flashing (this is handled by
preflash currently but with the canned recipe we will be able to fix it.)
2019-03-05 14:39:57 +01:00
Benjamin Valentin
6e7414e220 makefiles/tools: Automatically detect gdb-multiarch
Modern versions of GDB support multiple targets with the same gdb binary.
At least Ubuntu and Debian have dropped the gdb-arm-none-eabi package in favour
of gdb-multiarch.
Here, no $(PREFIX)-gdb binary is availiable, instead gdb-multiarch should be used.

This patch tries to automatically detect the presense of gdb-multiarch and uses it
instead of arm-none-eabi-gdb.
2019-03-05 14:31:22 +01:00
Gaëtan Harter
7a88bb4c1f
riotboot: prepare for when FLASHFILE is used
This currently does nothing but setting FLASHFILE when flashing.
This will allow passing the variable when flasher will use the FLASHFILE
variable.
2019-03-05 12:04:15 +01:00
Gaëtan Harter
240e4a3fe2
makefiles/riotboot.mk: slots only need to depend on BASELIBS
Using 'link' was working too but will introduce a circular dependency
when FLASHFILE is one of the slot files.

This trims down to the minimal required dependency to work. It is now
the same as `ELFFILE` dependencies.
2019-03-05 11:22:11 +01:00
5355f6a7be
Merge pull request #11062 from jcarrano/picocom-no-echo
serial.inc.mk: disable local echo in picocom.
2019-03-05 09:58:59 +01:00
Gaëtan Harter
7467d1be75
makefiles/murdock.inc.mk: do not overwrite FLASHFILE if set
If FLASHFILE is set keep the original value.

It changes the variable from an immediate to a deferred variable but if
murdocks keeps working there is no issue.
2019-03-04 15:52:35 +01:00
Kevin "Bear Puncher" Weiss
e3e2b6df15
Merge pull request #11084 from cladmi/pr/make/introduce_flashfile
Makefile.include: introduce FLASHFILE
2019-03-01 14:44:31 +01:00
Sebastian Meiling
d29d336894
Merge pull request #11039 from maribu/avrdude
makefiles/tools: Improved avrdude integration
2019-02-28 22:15:30 +02:00
Marian Buschsieweke
4abc41a227
makefiles/tools: Automatically set avrdude target
The CPU variable in the boards Makefile.include file already contains the target
CPU, so there is no reason to provide it in each board again as avrdude flag.

This commit automatically sets the avrdude target from the CPU variable and
removes the unneeded flags.
2019-02-28 20:55:04 +01:00
Marian Buschsieweke
93cd8a1b04
makefiles/tools: fix avrdude with ICSP programmers
Currently the flag "-P ${PORT}" is added to avrdude regardless of the programmer
used. But this flag should only be set for programmers that operate over a
serial port - e.g. like the various Arduino bootloaders. This commit changes
the behaviour so that the "-P flag" is only set for only of the default
programmers of the various AVR boards supported by RIOT. This allows to use
ICSP programmers (e.g. like the usbtiny) like this:

    make BOARD=arduino-uno PROGRAMMER=usbtiny
2019-02-28 20:55:00 +01:00
Gaëtan Harter
1d268c4cdb
Makefile.include: introduce FLASHFILE
Introduce FLASHFILE variable to start migrating boards to use it.

This is the file that will be used for flashing.
Boards do not currently use it but will migrated in upcoming PRs.
2019-02-28 18:11:49 +01:00
cladmi
3a17ddc43c
makefiles/docker.inc.mk: add support for EXTERNAL_MODULE_DIRS
They are remapped to `$(DOCKER_BUILD_ROOT)/external` if they are not
inside RIOT (usually the case but not for `tests/external_modul_dirs`).

If they are inside 'riotproject' they are currently also remapped to
'external'.

The value of `EXTERNAL_MODULE_DIRS` is then enforced by configuring it on
the command line as the application should not try to set it anymore.

The remapping is done in `external/directory_name` so cannot handle
multiple external directories with the same name.
2019-02-28 15:13:35 +01:00
cladmi
8b54f87fc4
makefiles:docker.inc.mk: add a global documentation on directory mapping 2019-02-28 14:46:43 +01:00
cladmi
3c0ecebb2c
makefiles/docker.inc.mk: use more directories in RIOT
Use the directories from in RIOT if possible for RIOTCPU/RIOTBOARD/RIOTMAKE.
2019-02-28 14:46:43 +01:00
Gaëtan Harter
8687d53c82
makefiles/docker.inc.mk: use BUILD_DIR in RIOT if possible
Use BUILD_DIR from within the riot repository if it is inside.
2019-02-28 14:46:43 +01:00
Gaëtan Harter
a57f141cf6
makefiles/docker.inc.mk: use RIOTPROJECT in the RIOT if possible
Use RIOTPROJECT from within the riot repository if it is inside.

This means when it is the case to use:

 * Not mounting the directory to `riotproject`
 * Use `APPDIR` relative to inside RIOT

If it is not inside, do the same as before:

 * Mount the RIOTPROJECT to `riotproject`
 * Use `APPDIR` relative to RIOTPROJECT
2019-02-28 14:46:43 +01:00
cladmi
e59b77988d
makefiles/docker.inc.mk: add docker_volume_and_env
Add functions to get volume and env arguments for a given directory environment
variable.

It handles:

 * variables with multiple directories like EXTERNAL_MODULE_DIRS
 * relative path
 * if the 'directories' variable is empty, it will not be exported to docker
2019-02-28 14:46:43 +01:00
cladmi
8351b13cc3
makefiles/docker.inc.mk: add path_in_docker function
Return to which directory in the container this directory should be mapped.
2019-02-28 14:46:43 +01:00
cladmi
a462c4aeb9
makefiles/docker.inc.mk: change definition order
Update definition order for DOCKER_VOLUMES_AND_ENV.

* Localtime
* Mapping and env related to `RIOTBASE`
* Build directories
* Project
* CPU/BOARD/make
2019-02-28 14:46:43 +01:00
cladmi
e5871d9deb
makefiles/docker.inc.mk: use a variable for all volumes and environment 2019-02-28 14:46:27 +01:00
cladmi
378f9fd144
makefiles/docker.inc.mk: add DOCKER_APPDIR variable
Prepare for when it can have a different value.
2019-02-28 14:44:53 +01:00
cladmi
a0f25ed47b
makefiles/docker.inc.mk: add DOCKER_RIOTBASE variable
It represents the path of RIOTBASE inside the docker container.
2019-02-28 14:44:49 +01:00
Juan Carrano
77f3c2d136 serial.inc.mk: disable local echo in picocom.
Due to a recent fix in shell.c, remote echo is now working as originally
intended. Local echo must be disabled or otherwise it will add up to the
remote one, causing a character-by-character double echoing.
2019-02-25 18:08:20 +01:00
Gaëtan Harter
20ce4db753
makefiles/tools/serial.inc.mk: unexport TERM* variables
TERMPROG and TERMFLAGS variables do not need to be exported as they are
used directly by a make receipe.

Exporting them prevents overwriting 'RIOT_TERMINAL' in the test.
2019-02-25 17:15:41 +01:00
Gaëtan Harter
d0cb6d26e1
makefiles/vars.inc.mk: unexport TERM* variables
TERMPROG and TERMFLAGS variables do not need to be exported as they are
used directly by a make receipe.

Exporting them prevents overwriting 'RIOT_TERMINAL' in the test.
2019-02-25 17:15:41 +01:00
Alexandre Abadie
5ad3fd4e5b
tools/serial: add support for socat as riot terminal 2019-02-20 12:05:19 +01:00
Alexandre Abadie
ea8672ca9c
makefiles/serial: fix indent 2019-02-20 08:40:54 +01:00
Peter Kietzmann
63fd8bc89b
Merge pull request #7577 from miri64/gnrc_netif2/feat/ieee802154-dup-bcast
gnrc_netif_ieee802154: drop duplicate broadcast packets (optionally)
2019-02-11 09:42:06 +01:00
ZetaR60
1f9e1857f7
Merge pull request #9130 from kYc0o/cpu/atmega/unify_stacks
atmega: refactor cpu/board code and build/flash variables
2019-02-08 18:07:22 -05:00
Francisco Acosta
6bbf372d7d makefiles: factor out avrdude configuration
Allows to use avrdude as a flashing tool in any context
(e.g. not dependent on arduino or atmega) though it only
works (AFAIK) on atmega, but I thought it's better to
have it here as we have other flashing tools.
2019-02-05 17:12:02 +01:00
Francisco Acosta
c897773daf makefiles: add atmega arch generic makefile 2019-02-05 17:12:01 +01:00
Martine Lenders
985d98073f gnrc_netif_ieee802154: drop duplicate broadcast packets (optionally) 2019-02-04 16:19:48 +01:00
Gaëtan Harter
566c990eba
makefiles/toolchain: fix command -v multiple commands
`command -v first second third` only works in `bash` and not in `sh`.
So replace with multiple calls to `command`.

This fixes using `objcopy` when the toolchain `objcopy` is not available.
2019-01-28 13:48:20 +01:00
Gaëtan Harter
be75f734d1
makefiles/vars.inc.mk: do not export LINKFLAGS
It is only used by `Makefile.include` and should not be used by sub-make
instances.

This is required to prevent evaluating `LINKFLAGS` when not needed and a
required step to not evaluate it on the host with for example `avr-ld`
when building in docker.

I checked usage with:

    git grep -e '(LINKFLAGS)' -e '{LINKFLAGS}'

Packages may be using it but `LINKFLAGS` is a RIOT way of naming
things and even if `generate-xcompile-toolchain` uses `LINK` it does not
use `LINKFLAGS`.
2019-01-23 18:31:24 +01:00
Dylan Laduranty
6d3fda7260 cpu/cortexm: add cortex-m23 support 2019-01-21 17:04:20 +01:00
Gaëtan Harter
61452669b9
Merge pull request #10038 from smlng/pr/make/buildoutdir
make: introduce common BUILD_DIR
2019-01-16 14:18:48 +01:00
Emmanuel Baccelli
209d90bc00
Merge pull request #10215 from kYc0o/pr/riotboot_multislot
riotboot: add multislot support
2019-01-15 19:04:28 +01:00
Gaëtan Harter
89d7e2ec33
cortexm.inc.mk: detect 'arm-none-eabi-gcc' from ubuntu bionic
arm-gcc version from ubuntu bionic repository is not supported in RIOT.
Both when building with `gnu` and `llvm`.

    arm-none-eabi-gcc --version
    arm-none-eabi-gcc (15:6.3.1+svn253039-1build1) 6.3.1 20170620

So detect this version and print an error if found.

The check is done on the building machine and not on the host when building in
docker.

The error can be disabled when building with WERROR=0.
2019-01-10 13:27:22 +01:00
cladmi
ed1798634b makefiles/docker.inc.mk: handle 'build' directory
The 'build' directory should be created before starting docker.
If not it will be created as root.

Also add mapping for the directory in docker.

Currently create the directory in the target until there is a directory
creation target.
2019-01-07 21:16:36 +01:00
smlng
5b3d26453a make: introduce BUILDOUT_DIR
This introduces a new environment variable for a common directory
that holds all output of the build process, such as application or
package binaries. This would also allow to easily redirect output
to any other location, e.g. for out-of-source builds.
2019-01-07 21:16:36 +01:00
Martine Lenders
fcc57ddd04 gnrc_sixloenc: introduce pseudo-module 2019-01-04 13:29:47 +01:00
Vincent Dupont
06f0c14460 cortexm_common: enable FPU on cortex-m4f 2019-01-03 15:24:20 +01:00
Francisco Acosta
8a0a0be426 riotboot: allow to overwrite slot 1
By erasing slot 1 header the slot gets invalidated.
This is very useful while debugging, since we can
force the bootloader to ignore anything on that
slot.
2019-01-02 17:56:11 +01:00
Francisco Acosta
ec24ea49b1 riotboot: add support for multislot
riotboot looks for valid, available slots and compares its
version. The slot with the highest version is booted, otherwise
if no valid slot is found it loops on `while(1);`
2019-01-02 17:56:11 +01:00
Alexandre Abadie
f5170bb82c dist/tools/pyocd: provide support for PyOCD programmer 2018-12-21 14:56:26 +01:00