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

473 Commits

Author SHA1 Message Date
Hauke Petersen
a3b8c87ab5 sys/shell: add 'ble' shell cmd for nimble_netif 2019-08-28 16:48:42 +02:00
Aiman Ismail
fed72571ec sys/net/sock: add sock_dtls API 2019-08-27 16:41:39 +02:00
Marian Buschsieweke
972367432a
drivers/cc110x: Rewrite of the cc110x driver
The cc110x driver has been re-written from scratch to overcome the limitations
of the old driver. The main motivation of the rewrite was to achieve better
maintainability by a detailed documentation, reduce the complexity and the
overhead of the SPI communication with the device, and to allow to
simultaneously use transceivers with different configuration regarding the used
base band, the channel bandwidth, the modulation rate, and the channel map.

Features of this driver include:

- Support for the CC1100, CC1101, and the CC1100e sub-gigahertz transceivers.
- Detailed documentation of every aspect of this driver.
- An easy to use configuration API that allows setting the transceiver
  configuration (modulation rate, channel bandwidth, base frequency) and the
  channel map.
- Fast channel hopping by pre-calibration of the channels during device
  configuration (so that no calibration is needed during hopping).
- Simplified SPI communication: Only during start-up the MCU has to wait
  for the transceiver to be ready (for the power regulators and the crystal
  to stabilize). The old driver did this for every SPI transfer, which
  resulted in complex communication code. This driver will wait on start up
  for the transceiver to power up and then use RIOT's SPI API like every other
  driver. (Not only the data sheet states that this is fine, it also proved to
  be reliable in practise.)
- Greatly reduced latency: The RTT on the old driver (@150 kbps data rate) was
  about 16ms, the new driver (@250 kbps data rate) has as RTT of ~3ms
  (depending on SPI clock and on CPU performance) (measured with ping6).
- Increased reliability: The preamble size and the sync word size have been
  doubled compared to the old driver (preamble: 8 bytes instead of 4,
  sync word: 4 byte instead of 2). The new values are the once recommended by
  the data sheet for reliable communication.
- Basic diagnostic during driver initialization to detect common issues as
  SPI communication issues and GDO pin configuration/wiring issues.
- TX power configuration with netdev_driver_t::set() API-integration
- Calls to netdev_driver_t::send() block until the transmission has completed
  to ease the use of the API (implemented without busy waiting, so that the
  MCU can enter lower power states or other threads can be executed).
2019-08-20 16:32:11 +02:00
Gunar Schorcht
82e020fb81 sys/irq_handler: single interrupt handler thread
Single thread for handling interrupts that may trigger blocking  functions and therefore may only be called in thread context.
2019-08-13 14:49:10 +02:00
0791174c1f
Merge pull request #11769 from haukepetersen/opt_softdevice_feature
ble/softdevice: add ble_nordic_softdevice feature
2019-07-04 11:23:30 +02:00
Hauke Petersen
03153acb1a ble/softdevice: add ble_nordic_softdevice feature
The softdevice is only verified to be working on nrf52832-based
boards. This feature prevents the softdevice from being build for
other, similar targets (e.g. nrf52840-based boards).
2019-07-04 09:22:46 +02:00
Gaëtan Harter
fecc9c178d
Makefile.dep: include CPU/Makefile.dep when CPU is defined
Prepare for when boards define `CPU` in `BOARD/Makefile.features`.

Include '$(RIOTCPU)/$(CPU)/Makefile.features' directly when it is
defined. This will allow removing the file inclusion from the
`BOARD/Makefile.dep`. The board must then not include it directly.

Transitional change to allow migrating part by parts.

Part of moving CPU/CPU_MODEL definition to Makefile.features to have it
available before Makefile.include.

This can currently trigger including two times the cpu/CPU/Makefile.dep
but allows a by board complete migration.
2019-07-01 17:23:14 +02:00
Sebastian Meiling
4f5ce88ba6
Merge pull request #7421 from OTAkeys/pr/dev_urandom
devfs: add /dev/urandom and /dev/hwrng
2019-06-26 21:33:32 +02:00
df10aa3b59
make: add stdio_ethos pseudo-module, dependent to stdin 2019-06-23 22:16:03 +02:00
7d4a98a075
make: introduce stdin pseudomodule 2019-06-20 15:56:44 +02:00
Dylan Laduranty
ea36d68703
Merge pull request #11077 from bergzand/pr/usb/cdcecm
usbus: Add CDC-ECM (Ethernet Control Model) function
2019-06-14 18:44:27 +02:00
Francisco
ff317f2221
Merge pull request #11492 from cladmi/pr/features/declarative
Makefile.features: add declarative FEATURES_ variables definition
2019-06-14 18:03:24 +02:00
748cacd54b
usbus_cdc_ecm: initial CDC ECM functionality 2019-06-14 16:00:05 +02:00
2324ba31b1
Makefile.dep: let skald depends on radio_nrfble instead of radio_ble 2019-06-12 17:41:30 +02:00
74e0b5b85b
usbus: Initial work to a unified USB stack 2019-06-05 14:22:16 +02:00
smlng
2de4b3011b periph_common: add as dependency to periph drivers
Rational: the periph_common module is required by (most) other periph drivers
and also during startup of the CPU/MCU to run periph_init. The latter is only
required if other periph drivers are used, hence periph_common should be a
depency of periph_* modules and *not* of the CPU/MCU. This PR fixes that
by making periph_common a depency of periph_* and removing the explicit
include in the CPU/MCU implementation.
2019-06-03 13:44:10 +02:00
Vincent Dupont
3bbd808628 devfs: add /dev/{urandom,hwrng} with random/hwrng 2019-05-29 15:50:25 +02:00
Gaëtan Harter
9cccc30262
Makefile.features: declare FEATURES_USED and make use of it
Put the definition of `FEATURES_USED` in common and use the variable
instead of duplicating code.

This required defining 'FEATURES_OPTIONAL_ONLY|USED' to not overwrite
the value of 'FEATURES_OPTIONAL' as was done before.

Also add 'FEATURES_OPTIONAL_MISSING' to list optional features that were
not included as not provided.

This removes the need to print FEATURES_MISSING with the optional
features too.
2019-05-28 19:22:02 +02:00
Gaëtan Harter
700b5fb835
makefiles: Update FEATURES_OPTIONAL meaning
Update the FEATURES_OPTIONAL meaning to be more in line since
FEATURES_USED is defined. Handle FEATURES_OPTIONAL as a configuration from
the BSP/build that should not be changed anymore after.

`FEATURES_OPTIONAL` are by definition optional so are not supposed to
cause a build to fail.
Only the 'REQUIRED' ones that are not 'PROVIDED' are 'MISSING'.

* Do not change FEATURES_OPTIONAL to remove REQUIRED features
  * Prepare for having a different variable for the previous value
* Update dependency resolution/info-build as FEATURES_OPTIONAL cannot be missing
2019-05-28 19:21:53 +02:00
Juan I Carrano
cbc08edcd1
Merge pull request #11358 from fjmolinas/riot-cortexm-address-check
cpu/cortexm_common: function to check address validity
2019-05-13 11:50:48 +02:00
Oleg Artamonov
a5ce6deb02 cpu/cortexm_common: function to check address validity 2019-05-13 09:35:34 +02:00
a9f1a85f10
Merge pull request #11310 from OTAkeys/make_uart_stdio_rx_optional
sys: make uart_stdio RX optional (attempt #2)
2019-05-09 13:32:05 +02:00
Hauke Petersen
e1bec84f2d make.dep: fix dependencies for the arduino module 2019-05-06 09:20:30 +02:00
002057f918 sys: make uart_stdio RX optional 2019-04-11 14:26:45 +02:00
Hauke Petersen
840c8aeba2 cord/epsim: remove standalone submodule 2019-03-27 18:26:37 +01:00
Martine Lenders
301b6555aa lwip: use l2util_ipv6_iid_from_addr() instead of NETOPT_IPV6_IID 2019-03-27 11:48:49 +01:00
Hauke Petersen
f2df22ed99
Merge pull request #10589 from miri64/l2util/feat/initial
l2util: initial import of a general IPv6 over X helper module
2019-03-27 11:46:12 +01:00
Martine Lenders
29dd6958a2
Merge pull request #10962 from miri64/gnrc_sixlowpan/enh/ipv6-as-iphc-dep
gnrc_sixlowpan: move gnrc_ipv6 dependency to gnrc_sixlowpan_iphc
2019-03-27 00:09:46 +01:00
Martine Lenders
db8954fe60
Merge pull request #11267 from cladmi/pr/isrpipe/separate_read_timeout
isrpipe: split isrpipe_read_timeout to isolate xtimer dependency
2019-03-26 22:27:15 +01:00
Martine Lenders
573549c41f l2util: initial import
This module provide stack independently (just dependent on netdev's
network device types) several helper functions to get IPv6 over X
specific values.
2019-03-26 21:37:20 +01:00
Gaëtan Harter
b07eecd619
isrpipe: split isrpipe_read_timeout to isolate xtimer dependency
This defines a new 'isrpipe_read_timeout' module that should be used when using
the timeout based function of isrpipe.

This fix the implicit dependency to 'xtimer' that is only needed for the
'_timeout' functions.

It prevents 'stdio_uart' that uses 'isrpipe' to need to depend on xtimer.
This was silently solved at link time for most platforms but not for the
'esp32' for example.

'drivers/at' needed to be updated at the same time to follow the api change.
2019-03-26 21:36:24 +01:00
Hauke Petersen
81ff7ff65a ble/bluetil: add ble address helper submodule 2019-03-26 21:05:11 +01:00
Martine Lenders
4ee4625f39
Merge pull request #10357 from jcarrano/posix_headers-module
sys/posix: make posix module provide only headers.
2019-03-20 14:07:12 +01:00
Juan Carrano
6b766c3cd3 sys/posix: make posix module provide only headers.
The build system contains several instances of
 INCLUDES += -I$(RIOTBASE)/sys/posix/include

This is bypassing the module management system, by directly accesing
headers without depending on a module. The module is the posix module.

That line is also added when one of the posix_* modules is requested.

According to the docs, the posix module provides headers only, but in
reality there is also inet.c.

This patch:

- Moves `inet.c` into `posix_inet`, leaving `posix` as a headers-only
  module.
- Rename `posix` as `posix_headers` to make it clear the module only
  includes headers.
- Makes `posix_*` modules depend on `posix_headers`, thus removing the
  explicit `INCLUDES+=...` in `sys/Makefile.include`.
- Ocurrences of `INCLUDES+=...` are replaced by an explicit dependency
  on `posix_headers`.
2019-03-20 12:57:13 +01:00
ae35860510 sys/riotboot: add flashwrite submodule 2019-03-15 12:32:50 +01:00
891580aba7
sys/auto_init: add support for periph_temperature 2019-03-08 21:14:22 +01:00
Hauke Petersen
64489e8b44 sys/random: add hwrng as seed source (if available) 2019-02-19 18:09:40 +01:00
Martine Lenders
b61f139956 gnrc_sixlowpan: move gnrc_ipv6 dependency to gnrc_sixlowpan_iphc
Cenk and I put some effort into making 6LoWPAN work without IPv6; except
for when used with the IPv6 header compression of course. This is why
`gnrc_ipv6` is only really *required* by `gnrc_sixlowpan_iphc` now.

With this change the `gnrc_ipv6` dependency is moved from the
`gnrc_sixlowpan` module to the `gnrc_sixlowpan_iphc` module.
2019-02-06 17:49:48 +01:00
Martine Lenders
985d98073f gnrc_netif_ieee802154: drop duplicate broadcast packets (optionally) 2019-02-04 16:19:48 +01:00
Martine Lenders
d3f8739a1e
Merge pull request #5949 from zhuoshuguo/add_timeout_module_to_gnrc_mac
gnrc_mac: add timeout module.
2019-01-22 10:34:30 +01:00
zhuoshuguo
79e5586d0c gnrc_mac: add timeout module.
Co-Authored-By: zhuoshuguo <zhuosgzju@gmail.com>
2019-01-21 22:46:10 +08:00
Martine Lenders
2840b3825e sock_dns: fix out-of-bound errors
Fixes #10739
2019-01-10 18:07:29 +01:00
Martine Lenders
941bcc142d make: make gnrc_sixloenc dependent on gnrc_sixlowpan 2019-01-04 13:31:01 +01:00
Timo Rothenpieler
814e4ecbbe gnrc_netif: ESP-NOW talks 6Lo now 2018-12-29 13:15:44 +01:00
Francisco Acosta
2df0abfd70 sys/riotboot: add riotboot_slot module
This module adds some helper function to manage slots
created with a riotboot_hdr header.

Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2018-12-18 19:31:34 +01:00
Martine Lenders
72c5fd06b4 gnrc_netif: make link-layer specific operations proper submodules 2018-12-05 15:04:04 +01:00
90db0bf253
Merge pull request #10253 from kYc0o/pr/riot_hdr
sys: add riotboot_hdr module
2018-12-04 09:44:45 +01:00
Francisco Acosta
00adbd69f6 sys: add riotboot_hdr submodule
riotboot_hdr enables to partition the internal flash memory
into "slots", each one with a header providing information
about the partition. The concept for now is limited to
firmware partitions, which are recognised by the riotboot
bootloader. In the future the concept might be extended to
represent other content.

Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2018-12-03 23:58:45 +01:00
Emmanuel Baccelli
365d82ed09
Merge pull request #9829 from OTAkeys/pr/uuid_string
uuid: add uuid_to_string() and uuid_from_string()
2018-10-30 14:30:47 +01:00
Martine Lenders
c54ba49e82 gnrc_ipv6_ext: move ipv6_ext_rh (partly) to GNRC 2018-10-25 11:10:25 +02:00