1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-15 21:32:43 +01:00
Commit Graph

28458 Commits

Author SHA1 Message Date
Francois Berder
0454253519 boards: pic32-clicker: Add GPIO SAUL configuration
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2020-04-02 10:07:56 +01:00
Francois Berder
e52441cf35 boards: pic32-wifire: Add GPIO SAUL configuration
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2020-04-02 10:07:56 +01:00
Leandro Lanzieri
c74544c9ec
Merge pull request #13349 from maribu/dependency-or
build system: Restructure dependency resolution
2020-04-02 10:40:44 +02:00
Cenk Gündoğan
e3d9097974 sys/uri_parser: check for uri_end instead of 0 2020-04-02 10:04:12 +02:00
Marian Buschsieweke
af21f15b02
makefiles: Minor clean ups
- Add FEATURES_REQUIRED_ANY to dependency-debug:
  Now `make dependency-debug` by default also stores the contents of
  `FEATURES_REQUIRED_ANY`.
- makefiles/features_check.inc.mk: Break long lines
- {tests/minimal,tests/unittests,bootloaders/riotboot}:
  Disable auto_init_% in addition to auto_init.

This works around weird behavior due to the USEMODULE being recursively expended
in the first iteration of dependency resolution: Modules added to DEFAULT_MODULE
get automatically added to USEMODULE during the first run, but not for
subsequent. This should be iron out later on.
2020-04-02 09:56:39 +02:00
Marian Buschsieweke
7bc15acee2
build system: Restructure dependency resolution
Goals:
- Untangle dependency resolution and feature checking for better maintainability
- Improve performance of "make info-boards-supported"

Changes:
- Makefile.dep
    - Dropped handling of default modules and recursion
    - Now only dependencies of the current set of used modules and pkgs are
      added
  ==> External recursion is needed to catch transient dependencies
- Changed Makefile.features:
    - Dropped checking of provided features
    - Dropped populating FEATURES_USED with provided features that are required
      or optional
    - Dropped populating FEATURES_MISSING with required but not provided
      features
    - Dropped adding modules implementing used features to USE_MODULE
  ==> This now only populates FEATURES_PROVIDED, nothing more
- Added makefiles/features_check.inc.mk:
    - This performs the population of FEATURES_USED and FEATURES_MISSING now
- Added makefiles/features_modules.inc.mk:
    - This performs now the addition of modules implementing used features
- Added makefiles/dependency_resolution.inc.mk:
    - This now performs the recursion required to catch transient dependencies
    - Also the feature check is performed recursively to handle also required
      and optional features of the transient dependencies
    - DEFAULT_MODULES are added repeatedly to allow it to be extended based on
      used features and modules
      ==> This allows modules to have optional dependencies, as these
          dependencies can be blacklisted
- Use simply expanded variables instead of recursively expended variables
  (`foo := $(bar)` instead `foo = $(bar)`) for internal variables during feature
  resolution. This improves performance significantly for
  `make info-boards-supported`.
- Reduce dependency resolution steps in `make info-boards-supported`
    - Globally resolve dependencies without any features (including arch)
      provided
      ==> This results in the common subset of feature requirements and modules
          used
        - But for individual boards additional modules might be used on top due
          to architecture specific dependencies or optional features
    - Boards not supporting this subset of commonly required features are not
      supported, so no additional dependency resolution is needed for them
    - For each board supporting the common set of requirements a complete
      dependency resolution is still needed to also catch architecture specific
      hacks
         - But this resolution is seeded with the common set of dependencies to
           speed this up
2020-04-02 09:55:07 +02:00
Benjamin Valentin
5ed88ecb0a drivers/at86rf215: unexport at86rf215_block_while_busy()
It's a private function that should not be used lightly.
2020-04-01 23:14:46 +02:00
Benjamin Valentin
8c6791b136 drivers/at86rf215: return error when switching state while busy
Previously the function attempted to block here and manually service
the ISR.
This lead to unexpected results, in particular messages queuing up in
the threads message queue.

The result was that the radio would not end up in the correct state.
E.g. sending SLEEP to both interfaces while a transmission was ongoing
would lead to the interfaces waking up again.

With this patch the operation will just return -ERRNO so the caller can
try again.

To reproduce, try the attached patch for the `gnrc_networking` example:

On master you will find that the radio still consumes ~2.4mA after 'shutdown'.
(It is in fact in the state TRXOFF as it woke up again)
With this change the radio should consume less than 1µA (DEEP SLEEP).

diff --git a/examples/gnrc_networking/main.c b/examples/gnrc_networking/main.c
index 6301f4291d..93b96eb939 100644
--- a/examples/gnrc_networking/main.c
+++ b/examples/gnrc_networking/main.c
@@ -23,12 +23,47 @@
 #include "shell.h"
 #include "msg.h"

+#include "periph/pm.h"
+
+#include "net/netopt.h"
+#include "net/gnrc/netif.h"
+
 #define MAIN_QUEUE_SIZE     (8)
 static msg_t _main_msg_queue[MAIN_QUEUE_SIZE];

 extern int udp_cmd(int argc, char **argv);

+extern void send(char *addr_str, char *port_str, char *data, unsigned int num,
+                 unsigned int delay);
+
+static int send_and_shutdown(int argc, char **argv)
+{
+    (void) argc;
+    (void) argv;
+
+    /* the address must not exist */
+    char addr[] = "fe80::2068:3123:59f5:d238%7";
+    char port[] = "1234";
+    char data[] = "Hello World!";
+
+    send(addr, port, data, 1, 0);
+
+    /* disable radio */
+    gnrc_netif_t* netif = NULL;
+    netopt_state_t state = NETOPT_STATE_SLEEP;
+    while ((netif = gnrc_netif_iter(netif))) {
+        /* retry while busy */
+        while (gnrc_netapi_set(netif->pid, NETOPT_STATE, 0, &state,
+               sizeof(netopt_state_t)) == -EBUSY);
+    }
+
+    pm_set(0);
+
+    return 0;
+}
+
 static const shell_command_t shell_commands[] = {
+    { "shutdown", "turn off the radio & shut down", send_and_shutdown },
     { "udp", "send data over UDP and listen on UDP ports", udp_cmd },
     { NULL, NULL, NULL }
 };
diff --git a/examples/gnrc_networking/udp.c b/examples/gnrc_networking/udp.c
index e8a559846e..cb80855b76 100644
--- a/examples/gnrc_networking/udp.c
+++ b/examples/gnrc_networking/udp.c
@@ -36,7 +36,7 @@ static gnrc_netreg_entry_t server = GNRC_NETREG_ENTRY_INIT_PID(GNRC_NETREG_DEMUX
                                                                KERNEL_PID_UNDEF);

-static void send(char *addr_str, char *port_str, char *data, unsigned int num,
+void send(char *addr_str, char *port_str, char *data, unsigned int num,
                  unsigned int delay)
 {
     gnrc_netif_t *netif = NULL;
2020-04-01 23:08:44 +02:00
cd0b765346
Merge pull request #13664 from fjmolinas/pr_samd21_bootloader_default_module
boards: set samd21-arduino-bootloader as DEFAULT_MODULE
2020-04-01 21:42:42 +02:00
Benjamin Valentin
7e156dd2e5 cpu/saml1x, saml2x: PM_NUM_MODES is a valid mode
The mode PM_NUM_MODES is the IDLE mode, so do not skip it.
2020-04-01 18:10:23 +02:00
Benjamin Valentin
5d123cbb22 cpu/sam0_common: distribute PM_NUM_MODES among siblings
Also adapt the defines to the documentation

 - CPUs define up to 4 power modes (from zero, the lowest power mode,
   to PM_NUM_MODES-1, the highest)
 - >> there is an implicit extra idle mode (which has the number PM_NUM_MODES) <<

Previously on saml21 this would always generate pm_set(3) which is an illegal state.
Now pm_layered will correctly generate pm_set(2) for IDLE modes.

Idle power consumption dropped from 750µA to 368µA and wake-up from standby is also
possible. (Before it would just enter STANDBY again as the mode register was never
written with the illegal value.)
2020-04-01 18:10:23 +02:00
Dylan Laduranty
744896b062
Merge pull request #13783 from benpicco/cpu/samd5x/reinit-dfll
cpu/samd5x: work around errata when (re-)initializing DFLL
2020-04-01 18:07:53 +02:00
Martine Lenders
76acde0984
Merge pull request #13779 from miri64/sock/enh/sock_buf_recv-iterate-chunks
sock: amend API to iterate over stack-internal buffer chunks
2020-04-01 16:59:03 +02:00
Martine Lenders
b26566cdfc
Merge pull request #13782 from leandrolanzieri/pr/gnrc/ipv6_group_kconfig
gnrc/ipv6: Group IPv6 related Kconfig files
2020-04-01 16:57:44 +02:00
Martine S. Lenders
e4c43200ba
tests/gnrc_sock_{ip,udp}: adapt tests for sock_*_recv_buf API change 2020-04-01 15:50:51 +02:00
Martine S. Lenders
d934579817
gnrc_sock: adapt for *_recv_buf() API change 2020-04-01 15:50:51 +02:00
Martine S. Lenders
58685af8a6
sock: sock_*_recv_buf: mark as experimental 2020-04-01 15:50:51 +02:00
Martine S. Lenders
f9e17ac025
sock: amend API to iterate over stack-internal chunks
With lwIP we have a chunked UDP payload, so just providing the
stack-internal buffer is not possible. To be able to iterate over such
a chunked payload, this change allows the `sock_*_recv_buf()` functions
to use the internal buffer context as an iteration state.

As the internal buffer space can be released when the function would
return 0, `sock_recv_buf_free()` becomes unnecessary.
2020-04-01 15:50:46 +02:00
Benjamin Valentin
f6139ae346 cpu/samd5x: work around errata when (re-)initializing DFLL
When a previously disabled DFLL gets enabled again, the frequency will
be incorrect. Follow the procedure outlined in the errata sheet, section 2.8.3
to work around the issue.

This fixes wake from standby.
2020-04-01 15:41:20 +02:00
Francisco Molina
1387b736b7
boards: conditionally include samd21-arduino-bootloader
samd21-arduino-bootloader and its dependencies will only be
included if no other stdio_% (other than stdio_cdc_acm) is included.
2020-04-01 15:10:32 +02:00
benpicco
660b1a9b5f
Merge pull request #10083 from gschorcht/drivers_hmc5883l
drivers: add driver for Honeywell HMC5883L magnetometer
2020-04-01 14:49:34 +02:00
Dylan Laduranty
6bba4188fc
Merge pull request #13764 from benpicco/cpu/saml11/use_buck_converter
cpu/saml1x: select buck voltage regulator when possible
2020-04-01 14:47:47 +02:00
Leandro Lanzieri
461f40949d
gnrc/ipv6: Group IPv6 related Kconfig files 2020-04-01 14:34:13 +02:00
benpicco
d1ccfe6c9a
Merge pull request #13778 from akshaim/fxos8700_CT_Config
drivers/include/fxos8700.h : Compile Configs
2020-04-01 13:43:01 +02:00
Gunar Schorcht
e9c0f76934 tests: add hmc5883l driver test 2020-04-01 13:37:22 +02:00
Gunar Schorcht
df612a3790 sys/auto_init: add hmc5883l device driver 2020-04-01 13:37:22 +02:00
Gunar Schorcht
e6090adb3f drivers: add hmc5883l device driver 2020-04-01 13:37:22 +02:00
Martine Lenders
8f20550dd6
Merge pull request #13781 from cgundogan/pr/gitignore/emacs
.gitignore: add emacs backup files
2020-04-01 13:30:20 +02:00
Leandro Lanzieri
6f30086609
Merge pull request #13775 from akshaim/ds1307_CT_Config
drivers/include/ds1307.h : Compile Configs
2020-04-01 13:28:36 +02:00
Leandro Lanzieri
bb6fa878a2
Merge pull request #13770 from akshaim/dose_CT_Config
drivers/include/dose.h : Compile Configs
2020-04-01 13:10:01 +02:00
Francisco
736837d17c
Merge pull request #13738 from leandrolanzieri/pr/cpu/cortexm/cleanup_dependencies
cpu/cortexm: cleanup dependencies
2020-04-01 13:09:31 +02:00
Cenk Gündoğan
7eaf6b37a9
Merge pull request #13777 from cgundogan/pr/uri_parser/pointer_deref
sys/uri_parser: initialize has_authority in _consume_scheme()
2020-04-01 13:06:33 +02:00
Cenk Gündoğan
b49e8d4a20 .gitignore: add backup files for emacs 2020-04-01 13:01:40 +02:00
Leandro Lanzieri
4be85c0fd5
Merge pull request #13760 from akshaim/ads101x_CT_Config
drivers/include/ads101x.h: Tagged Compile Time Parameters
2020-04-01 12:33:41 +02:00
Cenk Gündoğan
abc1cb17ca sys/uri_parser: initialize has_authority in _consume_scheme() 2020-04-01 12:32:40 +02:00
Leandro Lanzieri
fd02251ddb
Merge pull request #13776 from benpicco/tests/driver_netdev_common-fix
tests: add arduino-nano to Makefile.ci
2020-04-01 11:42:57 +02:00
Akshai M
27458701b6 drivers/include/fxos8700.h : Compile Configs 2020-04-01 14:53:44 +05:30
Akshai M
5e97feb88e drivers/include/dose.h : Compile Configs 2020-04-01 14:35:45 +05:30
Benjamin Valentin
5b74024bfe tests: add arduino-nano to Makefile.ci
Somehow this board is sometimes skipped by Murdock.
2020-04-01 11:05:37 +02:00
Akshai M
c94abb5a36 drivers/include/ds1307.h : Compile Configs 2020-04-01 13:42:45 +05:30
Martine Lenders
5e429d5697
Merge pull request #13773 from miri64/tests/enh/uri_parse-tweaks
tests/unittests/uri_parse: use less confusing assert message
2020-04-01 10:10:55 +02:00
Leandro Lanzieri
ea2f963302
cpu/cortexm: Add 'cortexm_fpu' as a DEFAULT_MODULE if possible
This adds cortexm_fpu to the DEFAULT_MODULE list when the feature
cortexm_fpu is provided by the architecture. It also moves the
dependency resolution of this module to the architecture-specific
Makefile.dep file.
2020-04-01 09:46:29 +02:00
Leandro Lanzieri
64552a3b9a
cpu/cortexm_common: Move common modules to Makefile.dep
This moves the following modules to a architecture-specific Makefile.dep
file:
- cortexm_common
- cortexm_common_periph
- newlib
- newlib_nano
- periph
2020-04-01 09:46:21 +02:00
Akshai M
9e3ea3e7b6 drivers/include/ads101x.h: Tagged Compile Time Parameters 2020-04-01 12:50:02 +05:30
Marian Buschsieweke
007ac492ff
drivers/ws281x: Use FEATURES_REQUIRED_ANY 2020-04-01 09:12:50 +02:00
Marian Buschsieweke
3628db19fd
Makefile.features: Allow "one out of" dependencies
An application/test/module that requires one feature out of a set of
alternatives (let's say either periph_uart, periph_spi, or periph_i2c) can
request this now using:

    FEATURES_REQUIRED_ANY += periph_uart|periph_spi|periph_i2c
2020-04-01 09:12:50 +02:00
Martine Lenders
004126a5e9
tests/unittests/uri_parse: generate more sophisticated error message 2020-04-01 08:42:25 +02:00
Martine Lenders
413153704a
tests/unittests/uri_parse: use less confusing assert message
Also use `strncmp()` instead of `memcmp()`
2020-04-01 00:56:08 +02:00
Martine Lenders
21399ccade
tests/unittests/uri_parse: add array index as parameter to VEC_CHECK 2020-04-01 00:55:20 +02:00
Martine Lenders
d9b9426a86
Merge pull request #13758 from cgundogan/uri_parser
sys/uri_parser: minimal and non-destructive URI parsing
2020-04-01 00:40:27 +02:00