1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

1582 Commits

Author SHA1 Message Date
Marian Buschsieweke
3e1dcf31cb
tools/openocd: Allow specifying a custom halt command
Typically, OpenOCD is already performing a reset on connect. A
`reset halt` to bring the target to a `halt` state for flashing will
result in the device going through a second reset cycle. This can be
problematic with some device, such as the CC26xx MCUs. For these
devices, an `OPENOCD_CMD_RESET_HALT := -c 'halt'` will avoid the second
reset that is causing the issues.
2023-01-10 21:59:56 +01:00
Marian Buschsieweke
7bb5232792
makefiles/tools/openocd-adapters: add XDS110 support
This adds the configuration to allow choosing the XDS110 used in
cc13xx-launchpad and cc26xx-launchpad boards via the
`OPENOCD_DEBUG_ADAPTER` variable.
2023-01-10 21:58:19 +01:00
Marian Buschsieweke
4a00835415
makefiles/cargo-targets.inc.mk: Fix RISC-V target
Update the list of target triples to match
`makefiles/arch/riscv.inc.mk`. This fixes compilation with toolchains
other than the obsolete toolchain that uses the incorrect
`riscv-none-embed` triple.
2023-01-09 20:36:52 +01:00
Benjamin Valentin
55b5c47bc8 cpu/esp32: add stdio_usb_serial_jtag 2023-01-09 00:51:27 +01:00
bors[bot]
21af24729e
Merge #19030 #19085
19030: tests/periph_timer_short_relative_set: improve test r=benpicco a=maribu

### Contribution description

Reduce the number lines to output by only testing for intervals 0..15 to speed up the test.

In addition, run each test case 128 repetitions (it is still faster than before) to give some confidence the short relative set actually succeeded.

### Testing procedure

The test application should consistently fail or succeed, rather than occasionally passing.

### Issues/PRs references

None

19085: makefiles/tests/tests.inc.mk: fix test/available target r=benpicco a=maribu

### Contribution description

`dist/tools/compile_and_test_for_board/compile_and_test_for_board.py` relies on `make test/available` to check if a test if available. However, this so far did not take `TEST_ON_CI_BLACKLIST` and `TEST_ON_CI_WHITELIST` into account, resulting in tests being executed for boards which they are not available. This should fix the issue.

### Testing procedure


#### Expected to fail

```
$ make BOARD=nrf52840dk -C tests/gcoap_fileserver test/available
$ make BOARD=microbit -C tests/log_color test/available
```

(On `master`, they succeed, but fail in this PR.)

#### Expected to succeed

```
$ make BOARD=native -C tests/gcoap_fileserver test/available
$ make BOARD=nrf52840dk -C tests/pkg_edhoc_c test/available
$ make BOARD=nrf52840dk -C tests/log_color test/available
```

(Succeed in both `master` and this PR.)

### Issues/PRs references

None

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2023-01-04 01:20:19 +00:00
Marian Buschsieweke
6352e4cec0
makefiles/tests/tests.inc.mk: fix test/available target
dist/tools/compile_and_test_for_board/compile_and_test_for_board.py
relies on `make test/available` to check if a test if available.
However, this so far did not take `TEST_ON_CI_BLACKLIST` and
`TEST_ON_CI_WHITELIST` into account, resulting in tests being executed
for boards which they are not available. This should fix the issue.
2023-01-03 12:53:35 +01:00
bors[bot]
f7ef90d213
Merge #19074
19074: cpu/esp8266: build the SDK bootloader from source r=benpicco a=gschorcht

### Contribution description

This PR is a takeover of PR #17043, which is rebased to the current master and includes some corrections that became necessary after rebasing.

**Copied from description of PR #17043:**

We had four versions of pre-built bootloaders for the esp8266 with different settings of logging and color logging. These bootloaders were manually built from the SDK and shipped with RIOT-OS source code. However there are more settings that affect the bootloader build that are relevant to the app or final board that uses this bootloader. In particular, flash size and flash speed is important for the bootloader to be able to load an app from a large partition table at the fastest speed supported by the board layout and flash chip.

Another example is the UART baudrate of the logging output from the bootloader. The boot ROM will normally start at a baud rate of 74880 (depending on the crystal installed), so it might make sense to keep the UART output at the same speed so we can debug boot modes and bootloader with the same terminal.

This patch builds the `bootloader.bin` file from the ESP8266 SDK source code. The code is built as a module (`esp8266_bootloader`) which at the moment doesn't generate any object code for the application and only produces a `bootloader.bin` file set to the `BOOTLOADER_BIN` make variable for the `esptool.inc.mk` to flash.

The code needs to be compiled and linked with custom rules defined in the module's Makefile since the `bootloader.bin` is its own separate application.

The `BOOTLOADER_BIN` variable is changed from a path relative to the `$(RIOTCPU)/$(CPU)/bin/` directory to be full path. This makes it easier for applications or board to provide their own bootloader binary if needed.

As a result of building the bootloader from source we fixed the issue of having a large partition table.

### Testing procedure

Use following command to flash the application with STDIO UART baudrate of 115200 baud.
```
BAUD=74880 USEMODULE=esp_log_startup make -C tests/shell BOARD=esp8266-esp-12x flash
```
Connect with a terminal programm of your choice (unfortunatly `picocom` and `socat` don't support a baudrate close to 74880), for example:
```
python -m serial.tools.miniterm /dev/ttyUSB0 74880
```
On reset, the `esp8266-esp-12x` node shows the ROM bootloader log output
```
 ets Jan  8 2013,rst cause:2, boot mode:(3,7) 

load 0x40100000, len 6152, room 16 
tail 8
chksum 0x6f
load 0x3ffe8008, len 24, room 0 
tail 8
chksum 0x86
load 0x3ffe8020, len 3408, room 0 
tail 0
chksum 0x79
```
as well as the second-stage bootloader built by this PR (`ESP-IDF v3.1-51-g913a06a9ac3`) at 74880 baudrate.
```
I (42) boot: ESP-IDF v3.1-51-g913a06a9ac3 2nd stage bootloader
I (42) boot: compile time 11:25:03
I (42) boot: SPI Speed      : 26.7MHz
...
I (151) boot: Loaded app from partition at offset 0x10000
```
The application output is seen as garbage since the `esp8266-esp-12x` uses 115200 as baurate by default.

To see all output at a baudrate of 74880 baud, you can use the following command:
```
CFLAGS='-DSTDIO_UART_BAUDRATE=74880' BAUD=74880 USEMODULE=esp_log_startup make -C tests/shell BOARD=esp8266-esp-12x flash
```

If the application is built without options, the ROOM bootloader output will be 74880 baud and the second stage bootloader and application output will be 115200 baud.

### Issues/PRs references

Fixes issue #16402

Co-authored-by: iosabi <iosabi@protonmail.com>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-01-03 00:44:24 +00:00
Gunar Schorcht
a71f457f23 makefile/tools/esptool.inc.mk: fix esp-qemu dependency 2022-12-31 14:10:57 +01:00
Gunar Schorcht
f23b20f91f cpu/esp: use FLASHFILE_POS for image position in flash
Instead of using a fixed position of the image file in the flash, the variable `FLASHFILE_POS` is used which allows to override the default position of the image in the flash at 0x10000.
2022-12-31 14:10:57 +01:00
iosabi
073b2209da cpu/esp8266: Build the SDK bootloader from source.
We had four versions of pre-built bootloaders for the esp8266 with
different settings of logging and color logging. These bootloaders were
manually built from the SDK and shipped with RIOT-OS source code.
However there are more settings that affect the bootloader build that
are relevant to the app or final board that uses this bootloader. In
particular, flash size and flash speed is important for the bootloader
to be able to load an app from a large partition table at the fastest
speed supported by the board layout and flash chip.

Another example is the UART baudrate of the logging output from the
bootloader. The boot ROM will normally start at a baud rate of 74880
(depending on the crystal installed), so it might make sense to keep
the UART output at the same speed so we can debug boot modes and
bootloader with the same terminal.

This patch builds the bootloader.bin file from the ESP8266 SDK source
code. The code is built as a module (esp8266_bootloader) which at the
moment doesn't generate any object code for the application and only
produces a bootloader.bin file set to the BOOTLOADER_BIN make variable
for the esptool.inc.mk to flash.

The code needs to be compiled and linked with custom rules defined in
the module's Makefile since the bootloader.bin is its own separate
application.

The `BOOTLOADER_BIN` variable is changed from a path relative to the
`$(RIOTCPU)/$(CPU)/bin/` directory to be full path. This makes it easier
for applications or board to provide their own bootloader binary if
needed.

As a result of building the bootloader from source we fixed the issue of
having a large partition table. Fixes #16402.
2022-12-22 12:18:34 +01:00
Teufelchen1
5c51686178 fuzzing: Add generic input reader 2022-12-15 15:13:18 +01:00
Teufelchen1
f7f9eddd9e fuzzing: Rename AFL flag to prevent spelling warning from AFL 2022-12-15 13:10:19 +01:00
Marian Buschsieweke
208bf7eef3
build system: improve MOST_RECENT_PORT=1 handling
Allow overriding the shell command used to auto-detect the TTY of a
board with `MOST_RECENT_PORT=1` via the `TTY_SELECT_CMD` variable.
The use case is to also detect Arduino Mega 2560 clones with cheap
USB UART bridges (for which the filter command may yield false
positives) while preferring genuine Arduino Mega 2560 boards (if
found) over the clones (as the filter for genuine boards does not yield
false positives).
2022-12-11 18:58:18 +01:00
Gunar Schorcht
3100345214 makefiles: add riotboot_dfu-util.mk to override board's dfu-util config
Boards that are shipped with a DFU bootloader define the `dfu-util` configuration in their `Makefile.include`. However, when `riotboot_dfu` is used as the DFU bootloader, the board's `dfu-util` configuration must be overridden by the configuration as required by `riotboot_dfu` to use it to flash applications. Therefore, all `dfu-util` configurations are defined as overridable in the board's `Makefile.include` and the configuration as required by `riotboot_dfu` is included before the board's `Makefile.include`.
2022-11-30 19:28:14 +01:00
Benjamin Valentin
826b2ae232 makefiles/gnu.inc.mk: fix "extraneous text after 'ifneq' directive"
When trying to compile `examples/hello-world` on my 465 MHz Mendocino
I got

/home/benpicco/dev/RIOT/makefiles/toolchain/gnu.inc.mk:29: extraneous text after 'ifneq' directive

Turns out the version of `make` on Archlinux32 is newer than that in
Ubuntu 22.04, which somehow ignored the extra parenthesis.

Turns out this (t)rusty old machine is still good for writing patches :D
2022-11-20 14:53:34 +01:00
Benjamin Valentin
b30efeeb65 makefiles/gnu.inc.mk: set flags based on compiler version 2022-11-19 23:14:54 +01:00
benpicco
e1aa925c35
Merge pull request #18913 from benpicco/macro-prefix-map
makefiles/cflags.inc.mk: don't include absolute path in __FILE__ macro
2022-11-18 16:43:35 +01:00
Benjamin Valentin
71b1689407 makefiles/cflags.inc.mk: don't include absolute path in __FILE__ macro 2022-11-15 15:28:54 +01:00
Marian Buschsieweke
7ce641f110
sys/malloc_tracing: add module to trace dyn memory management
Hooking into the existing wrappers for `malloc()`, `calloc()`,
`realloc()`, and `free()`, the new (pseudo) module `malloc_tracing`
prints out the calls to the given functions, the program counter of
the caller, as well as the return result.

The intent is to aid debugging double-frees, invalid frees, or memory
leaks.
2022-11-15 12:59:46 +01:00
Marian Buschsieweke
643aeda471
Merge pull request #18893 from maribu/makefiles/libc/picolibc.mk
makefiles/libc/picolibc.mk: fix compilation with modern binutils
2022-11-15 08:52:45 +01:00
chrysn
971a023a4c
Merge pull request #18904 from chrysn-pull-requests/posixly-correct-grep
makefiles: Use `grep -q` rather than `--quiet`
2022-11-14 12:54:54 +01:00
chrysn
269b33f01a makefiles: Use grep -q rather than --quiet
`--quiet` is a GNUism; Alpine's busybox grep only supports the minimal
-q option required by POSIX.
2022-11-14 09:51:19 +01:00
Marian Buschsieweke
c0e997a8e7
makefiles/libc/picolibc.mk: fix compilation with modern binutils
Modern binutils complain about segments with RWX permissions. While
this is indeed a bad habit, RIOT ignores segments permissions anyway.
(We do have a `mpu_noexec_ram` module to disable execution of all of
RAM, which would do so regardless of the segment permission.) So for
now, we can safely just disable the warning.

This fixes:

    /usr/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/bin/ld: warning: /home/maribu/Repos/software/RIOT/examples/default/bin/nucleo-f767zi/default.elf has a LOAD segment with RWX permissions
    collect2: error: ld returned 1 exit status
2022-11-12 17:09:11 +01:00
Marian Buschsieweke
8448aa33ae
makefiles/arch/cortexm.inc.mk: fix ASMFLAGS
Drop `CFLAGS_DBG` from `ASFLAGS` to fix

    make RIOT_CI_BUILD=1 CC_NOCOLOR=1 --no-print-directory -C /home/maribu/Repos/software/RIOT/tests/pkg_qdsa clean all
    rm -rf /home/maribu/Repos/software/RIOT/tests/pkg_qdsa/bin/samr21-xpro/pkg-build/qdsa
    Building application "tests_pkg_qdsa" for "samr21-xpro" with MCU "samd21".

    Assembler messages:
    Fatal error: unknown option `-ggdb'
    make[3]: *** [/home/maribu/Repos/software/RIOT/Makefile.base:176: /home/maribu/Repos/software/RIOT/tests/pkg_qdsa/bin/samr21-xpro/qdsa_asm/bigint_red.o] Error 1
    make[2]: *** [/home/maribu/Repos/software/RIOT/Makefile.base:31: ALL--/home/maribu/Repos/software/RIOT/build/pkg/qdsa/arm/asm] Error 2
    make[1]: *** [Makefile:11: all] Error 2
    make: *** [/home/maribu/Repos/software/RIOT/tests/pkg_qdsa/../../Makefile.include:803: pkg-build] Error 2

    Return value: 2
2022-11-11 23:11:07 +01:00
Benjamin Valentin
03bbd6badf pkg/tinyusb: implement stdio via CDC ACM 2022-11-09 12:06:36 +01:00
Benjamin Valentin
0bd67d98d9 cpu: always rely on stdio.inc.mk for default stdio selection 2022-11-09 10:42:47 +01:00
Marian Buschsieweke
0077e9ad70
makefiles/libc: fix wchar_t size warnings on LLVM
The test for the requirement of disabling wchar_t size warnings assumed
that $(CC) is used for linking, instead of $(LINK). With GCC $(LINK)
and $(CC) happen to be (in most cases) identical, but with LLVM they
are not. This results in issues with compiling with LLVM.
2022-11-07 15:02:03 +01:00
Marian Buschsieweke
67ba1a0cb7
makefiles/cflags.inc.mk: add -z noexecstack to link flags
GCC on some platforms does need an executable stack to generate
trampoline code, but use of nested functions is not allowed in
RIOT's code base anyway.
2022-11-07 15:02:03 +01:00
benpicco
ed1d8e0a3d
Merge pull request #18785 from maribu/boards/blxxxpill/periph_conf
boards/common/blxxxpill: Fix pin conflicts in periph_conf
2022-10-27 21:22:10 +02:00
Martine Lenders
9ae66beedf
Merge pull request #16156 from miri64/gnrc_sixlowpan_frag_sfr/feat/congure
gnrc_sixlowpan_frag_sfr: provide CongURE support
2022-10-27 15:01:07 +02:00
Marian Buschsieweke
16df27c51d
makefiles/cflags.inc.mk: Add -Wno-missing-field-initializers to CXXFLAGS
This allows including C headers from C++. It sadly reduced the
diagnostics on C++ code as well, were there warning may make sense as
unintended side effect. We may be able to drop that later on, when more
C APIs are properly wrapped in native C++ APIs, so that C headers do no
longer need to be compatible with C++ compilers.
2022-10-27 14:28:06 +02:00
Martine Lenders
30f990f789
gnrc_sixlowpan_frag_sfr: provide CongURE support 2022-10-25 18:38:36 +02:00
Marian Buschsieweke
b9b63da984
makefiles/tools/gdb.inc.mk: prefer $(target)-gdb over gdb-multiarch
In an ideal world everyone would just install `gdb-multiarch` and be
happy. However, some MCUs need magic GDB versions sprinkled with
unicorn-stardust-Espressif-patches...

Since there is little reason to have `$(target)-gdb` installed in
addition to `gdb-multiarch` if `gdb-multiarch` would work fine, let's
assume the user wants to use `$(target)-gdb` when present over
`gdb-multiarch`.

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2022-10-24 09:24:24 +02:00
Martine Lenders
a535e44cc3
Merge pull request #18770 from miri64/makefiles/enh/test-executor
build-system: add capability to execute scripts with custom executor
2022-10-20 07:52:03 +02:00
Martine Lenders
14b7abda95
build-system: add capability to execute scripts with custom executor 2022-10-19 13:58:19 +02:00
Benjamin Valentin
8553c8ff55 sys/tiny_strerror: add tiny_strerror_minimal 2022-10-18 23:30:15 +02:00
benpicco
0b2fbce906
Merge pull request #18299 from fabian18/preprocessor_successor
sys: preprocessor successor module
2022-10-17 22:42:27 +02:00
Fabian Hüßler
b4dcbba26d sys/preprocessor: add preprocessor module 2022-10-17 10:38:14 +02:00
benpicco
5c9715ae74
Merge pull request #18731 from maribu/sys/stdio_uart/onlcr
sys/stdio_uart: add stdio_uart_onlcr (pseudo-) module
2022-10-15 23:36:48 +02:00
Marian Buschsieweke
2c4d6bf160
Merge pull request #18749 from benpicco/bootterm
makefiles/tools/serial.inc.mk: add support for bootterm
2022-10-15 14:02:04 +02:00
Martine Lenders
53ed211fc9
Merge pull request #16175 from miri64/gnrc_sixlowpan_frag_sfr/enh/mark-ecn
gnrc_sixlowpan_frag_sfr: add support for queue-based ECN
2022-10-15 14:01:44 +02:00
Benjamin Valentin
2625f58774 makefiles/tools/serial.inc.mk: add support for bootterm 2022-10-15 00:20:09 +02:00
Martine Lenders
c94c32dce4
Merge pull request #18727 from miri64/gnrc/enh/explicit-pseudomodules
gnrc: make pseudo-modules explicit + documentation improvements
2022-10-14 17:39:39 +02:00
Benjamin Valentin
9eb3741dee makefiles/arch/avr8.inc.mk: fix detection of GCC 12 2022-10-13 12:48:44 +02:00
Jim Paris
d797c990d6
sys/stdio_uart: add stdio_uart_onlcr (pseudo-) module
Add USE_MODULE += "stdio_uart_onlcr" to enable it.
This is named after the "onlcr" stty flag, which does the same thing.

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2022-10-13 12:08:34 +02:00
Martine Lenders
653d08281b
gnrc_sixlowpan_frag_sfr: add support for queue-based ECN 2022-10-12 18:02:18 +02:00
Karl Fessel
514325b8b3 sys/log: modularize log into log_color and log_printfnoformat
- log_color: make log_write nonstatic
 - log_printfnoformat
 - apply module split to Kconfig
2022-10-12 12:21:29 +02:00
Martine Lenders
f7510cfb9d
gnrc_nettype: improve documentation on modules made explicit 2022-10-12 11:27:27 +02:00
Martine Lenders
153f42d524
gnrc_dhcpv6: improve documentation on modules made explicit 2022-10-12 11:27:15 +02:00
Martine Lenders
c005566f35
gnrc: make all pseudomodules explicit 2022-10-12 11:26:19 +02:00
Martine Lenders
30e7891a6b
Merge pull request #18706 from miri64/pseudomodules/depr/gnrc_netif_cmd_lora
pseudomodules: document gnrc_netif_cmd_lora as deprecated
2022-10-07 19:16:06 +02:00
benpicco
24f7d2011a
Merge pull request #18701 from benpicco/sys/checksum-crc16_fast
sys/checksum: add CRC-16 implementation without lookup table
2022-10-07 12:31:23 +02:00
Marian Buschsieweke
213c35bb71
Merge pull request #18649 from maribu/sys/shell/cmds
sys/shell/cmds: fix shell_cmd_netif LoRaWAN integration
2022-10-07 12:19:57 +02:00
Martine Lenders
485c94c0a8
pseudomodules: document gnrc_netif_cmd_lora as deprecated 2022-10-07 12:17:38 +02:00
Benjamin Valentin
e313c56e94 sys/checksum: add CRC-16 implementation without lookup table 2022-10-06 17:43:20 +02:00
Martine Lenders
bb92b2b281
doc: add deprecation notice on deprecated pseudo-modules 2022-10-06 10:53:10 +02:00
benpicco
2b088f3910
Merge pull request #18671 from keestux/add-podman-support
Add podman support
2022-10-06 00:38:25 +02:00
Marian Buschsieweke
f02bc5791a
Merge pull request #18571 from maribu/sys/tiny_strerror
sys/tiny_strerror: add tiny `strerror()` implementation
2022-10-05 09:24:40 +02:00
Marian Buschsieweke
fd80c53a35
sys/shell/cmds: fix shell_cmd_netif LoRaWAN integration
Model the LoRaWAN integration to GNRC's netif command (ifconfig) as
submodule of it, namely `shell_cmd_gnrc_netif_lorawan`.

This should fix a regression introduced by
https://github.com/RIOT-OS/RIOT/pull/18355
2022-10-04 23:06:03 +02:00
Benjamin Valentin
49a85f4633 sys/checksum: add CRC-32 checksum
based on https://github.com/aeldidi/crc32
2022-10-04 15:40:53 +02:00
José Alamos
f022ac3e23
Merge pull request #17884 from Ollrogge/gnrc_lorawan1.1
gnrc/lorawan: add basic LoRaWAN 1.1 features
2022-09-30 11:29:55 +02:00
3ee3d1b9ac
Merge pull request #18562 from MrKevinWeiss/pr/removemips
cpu/mips: Remove all mips
2022-09-30 10:47:09 +02:00
Kees Bakker
83902ccce0 makefiles/docker.inc.mk: add support for podman
If podman is used for a docker build then use "--userns keep-id" instead
of "--user $(id -u)".
2022-09-29 20:59:42 +02:00
Ollrogge
12a4e1c1ec gnrc/lorawan: add support for GNRC LoRaWAN 1.1 2022-09-29 11:25:56 +02:00
Kees Bakker
234a6df95a makefiles/docker.inc.mk: use registry docker.io explicitly
When using podman instead of docker the registry is not set by default.
Docker has a builtin registry default "docker.io". Podman does not have a
default. By specifying the registry explicitly both tools can be used.
2022-09-28 22:49:07 +02:00
benpicco
c35a4ba577
Merge pull request #18621 from benpicco/strscpy
sys/string_utils: add strscpy()
2022-09-28 19:11:42 +02:00
MrKevinWeiss
6cad5d2477
cpu/mips: Remove all mips 2022-09-27 13:42:37 +02:00
Marian Buschsieweke
e0a81fe945
makefiles/arch/riscv.inc.mk: Fix with BUILD_IN_DOCKER
With RISC-V being a relatively young toolchain, a lot of inconsistencies
between different toolchains are to be found that differ in the target
triple and the flags supported. This build system performs run-time
tests to detect the toolchain and supported flags.

With `BUILD_IN_DOCKER=1` issues arise, as this checks are performed
outside of the docker container. However, the host may have no RISC-V
toolchain installed or a different toolchain, so there is little reason
in performing this detection then. Instead, a hard coded target triple
and supported flags are provided when using `BUILD_IN_DOCKER=1`.
2022-09-27 10:43:39 +02:00
Benjamin Valentin
8870158609 libc: add to default modules 2022-09-26 19:06:46 +02:00
Marian Buschsieweke
d6a9e5b590
Merge pull request #18628 from benpicco/openocd-adapters-ftdi
tools/openocd: add generic FTDI adapter
2022-09-23 23:58:30 +02:00
Marian Buschsieweke
f03e71a509
Merge pull request #18631 from maribu/tools/avarice
tools/avarice: deduce debugger from AVRDUDE_PROGRAMMER
2022-09-23 20:36:00 +02:00
Marian Buschsieweke
7df2bc2072
tools/avarice: deduce debugger from AVRDUDE_PROGRAMMER
If `AVRDUDE_PROGRAMMER` is already set to a programmer that is also
capable of debugging, we can assume that typically the user will want
to use the same hardware for debugging. Thus, let `AVR_DEBUGDEVICE`
default to the matching hardware.
2022-09-23 13:41:27 +02:00
chrysn
ec5d75f965 makefiles: Remove duplicate cargo invocation
Back in 36a029c0, rather than being line wrapped, this was duplicated.
2022-09-23 02:05:32 +02:00
chrysn
babccfa947 makefiles: Add make info-rust target 2022-09-23 02:03:50 +02:00
chrysn
5f41839b3d build-info: Output CARGO_CHANNEL etc. 2022-09-23 02:03:23 +02:00
chrysn
9d7fd993aa make/info-build: Protect shell from parentheses in CFLAGS
As for why the `-e` is being removed, observe that the `-e` would
otherwise be printed; there is an [elaborate treatise] on what happens
there.

[elaborate treatise]: https://unix.stackexchange.com/questions/700675/why-is-echo-e-behaving-weird-in-a-makefile
2022-09-23 01:53:42 +02:00
Benjamin Valentin
f80b4557fd tools/openocd: add generic FTDI adapter 2022-09-22 17:49:34 +02:00
Marian Buschsieweke
1bdc1a5967
sys/tiny_strerror: add tiny strerror() implementation
`tiny_strerror()` is a drop-in replacement for `strerror()`, but
instead of a long help message it returns the much shorter macro name
matching the given number.

The (pseudo-)module `tiny_strerror_as_strerror` can be used to
replace all calls to `strerror()` with calls to `tiny_strerror()`.
2022-09-20 15:51:11 +02:00
benpicco
f03f5384c1
Merge pull request #18355 from maribu/sys/shell/cmds
sys/shell: make cmds submodules and add KConfig modeling
2022-09-19 21:07:23 +02:00
Marian Buschsieweke
e402f1d885
Merge pull request #18418 from maribu/cpu/stm32/periph/stm32_eth_tracing
cpu/stm32/periph_eth: Add stm32_eth_tracing
2022-09-18 22:19:34 +02:00
Marian Buschsieweke
c06335b71b
sys/shell: make cmds submodules
Previously `shell_commands` was a "catch-all" module that included
shell commands for each and every used module that has a shell
companion. Instead, the new `shell_cmds` module is now used to provide
shell commands as individually selectable submodules, e.g.
`cmd_gnrc_icmpv6_echo` now provides the ICMPv6 echo command (a.k.a.
ping).

To still have a "catch all" module to pull in shell commands of modules
already used, `shell_cmds_default` was introduced. `shell_commands`
depends now on `shell_cmds_default` for backward compatibility, but
has been deprecated. New apps should use `shell_cmds_default`
instead.

For a handful of shell commands individual selection was already
possible. Those modules now depend on the corresponding `cmd_%` module
and they have been deprecated.
2022-09-16 13:15:45 +02:00
Marian Buschsieweke
b2bcfabcfb
Merge pull request #18452 from maribu/makefiles/boards/stm32.inc.mk
makefiles/boards/stm32.inc.mk: improve stm32flash support
2022-09-15 00:29:33 +02:00
Marian Buschsieweke
44b62e879d
cpu/stm32/periph_eth: add stm32_eth_tracing
Add tracing support via GPIOs to trace the basic state of the Ethernet
peripheral. The following signals are provided:

- One GPIO pin is toggled on entry of the Ethernet ISR
- On TX start an GPIO is set, on TX completion it is cleared
- On RX complete an GPIO is set, once this is passed to the upper layer
  the GPIO is cleared again

In order to reduce the overhead, GPIO LL is used. By default the
on-board LEDs are used as tracing GPIOs. This makes it easy to debug
when the state machine gets stuck without the need to attach a scope or
logic analyzer.
2022-09-14 14:00:27 +02:00
benpicco
2917c0f51e
Merge pull request #18506 from gschorcht/cpu/esp32/add_esp32s2_cpu_support
cpu/esp32: add support for ESP32-S2
2022-08-30 21:24:36 +02:00
Marian Buschsieweke
0f13178085
Merge pull request #18533 from maribu/makefiles/arch/avr8.inc.mk
makefiles/arch/avr8.inc.mk: Fix compilation with GCC 12.2.0
2022-08-30 19:06:55 +02:00
Gunar Schorcht
ad9cdeb855 makefiles: undefine BOARD_VERSION in info-global.inc.mk 2022-08-30 15:08:39 +02:00
Marian Buschsieweke
7bd23069dc
makefiles/arch/avr8.inc.mk: Fix compilation with GCC 12.2.0
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105523 for details
2022-08-30 14:26:40 +02:00
chrysn
6cfe240812 makefiles: Select suitable terminal when stdio_rtt is used
Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2022-08-30 10:51:59 +02:00
chrysn
2c9e853aae
Merge pull request #18526 from chrysn-pull-requests/openocd-rtt
makefiles: Add openocd-rtt
2022-08-30 09:44:50 +02:00
chrysn
62a6d3c128 makefiles: Add openocd-rtt
JLink presumably has information about the device's RAM available
internally. Not passing the precise symbol area (which would be
available in the ELF file) because a) that'd make the terminal break
when the flashed firmware does not equal the built one, and b) that
would introduce a dependency from `term` to the ELF file that other
terminals don't have.
2022-08-30 09:34:22 +02:00
Marian Buschsieweke
78de9a3f53
makefiles/tools/serial.inc.mk: Improve PORT selection
When `stdio_cdc_acm` is used, assume `"RIOT-os\.org"` as vendor string
and `$(BOARD)` being used as model string. This is the default
behavior in RIOT since eaace28804
2022-08-29 16:39:25 +02:00
Dylan Laduranty
8dac70db69 makefiles/tools/dfu-util: add option to pass DFU_SERIAL
Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
2022-08-29 09:39:15 +02:00
MrKevinWeiss
0489630aa7
makefiles: quiet messages on CI
After introducing #18423 there are occasional messages that still happen.
These messages cause a diff output when testing with TEST_KCONFIG=1.
This then causes a failure when comparing make/kconfig modules and packages.
2022-08-22 11:35:56 +02:00
Leandro Lanzieri
2dd59236c8
Merge pull request #18423 from MrKevinWeiss/pr/disable/hashchecks
.murdock: disable hash checks of kconfig/make
2022-08-17 18:30:36 +02:00
MrKevinWeiss
29c6fecab3
makefiles/features_modules: ignore non-init periphs 2022-08-17 14:37:24 +02:00
Marian Buschsieweke
276ad5716a
sys/net/gnrc/netif: allow checking if a netdev is legacy or new API
A if `netdev_driver_t::confirm_send()` is provided, it provides the
new netdev API. However, detecting the API at runtime and handling
both API styles comes at a cost. This can be optimized in case only
new or only old style netdevs are in use.

To do so, this adds the pseudo modules `netdev_legacy_api` and
`netdev_new_api`. As right now no netdev actually implements the new
API, all netdevs pull in `netdev_legacy_api`. If `netdev_legacy_api` is
in used but `netdev_new_api` is not, we can safely assume at compile
time that only legacy netdevs are in use. Similar, if only
`netdev_new_api` is used, only support for the new API is needed. Only
when both are in use, run time checks are needed.

This provides two helper function to check for a netif if the
corresponding netdev implements the old or the new API. (With one
being the inverse of the other.) They are suitable for constant folding
when only new or only legacy devices are in use. Consequently, dead
branches should be eliminated by the optimizer.
2022-08-17 12:56:07 +02:00
Benjamin Valentin
2a3c8bf8e3 makefiles/suit: allow multiple SUIT_SECs 2022-08-16 22:30:27 +02:00
Marian Buschsieweke
08d88ee557
makefiles/boards/stm32.inc.mk: improve stm32flash support
Allow issuing a reset to bootloader sequence by abusing the RTS and
the DTR pins of a TTL adapter. This makes flashing via UART much
more convenient, as no jumpers need to be placed to select booting to
the bootloader / flash and no reset buttons need to be pressed.
2022-08-16 22:00:06 +02:00
MrKevinWeiss
99f4fd633e
makefiles: Prevent periph_init_mcg_lite module 2022-08-16 10:57:26 +02:00
Marian Buschsieweke
9efd6a3e52
Merge pull request #18298 from maribu/makefiles/info.inc.mk
build system: add info-kconfig-variables
2022-08-08 19:13:23 +02:00