mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
release-notes.txt: add 2020.04 release notes
This commit is contained in:
parent
80b300289d
commit
673144ecf4
@ -1,3 +1,771 @@
|
||||
RIOT-2020.04 - Release Notes
|
||||
============================
|
||||
RIOT is a multi-threading operating system which enables soft real-time
|
||||
capabilities and comes with support for a range of devices that are typically
|
||||
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
|
||||
light-weight 32-bit processors.
|
||||
|
||||
RIOT is based on the following design principles: energy-efficiency, soft
|
||||
real-time capabilities, small memory footprint, modularity, and uniform API
|
||||
access, independent of the underlying hardware (with partial POSIX compliance).
|
||||
|
||||
RIOT is developed by an international open-source community which is
|
||||
independent of specific vendors (e.g. similarly to the Linux community) and is
|
||||
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
|
||||
business models around the free open-source software platform provided by RIOT.
|
||||
|
||||
|
||||
About this release:
|
||||
===================
|
||||
|
||||
The 2020.04 release includes:
|
||||
|
||||
- Add support for 6LoWPAN IPv6 extension header next header compression
|
||||
- Add support for DHCPv6 prefix delegation client
|
||||
- Add support for kw41zrf and at86rf215 IEEE 802.15.4 radios
|
||||
- Improvements on power management for ESP32
|
||||
- Improvements and extensions in support of fe310 and lpc2387
|
||||
- lwIP: provide support for asynchronous sock
|
||||
- Improvements on xtimer module and testing
|
||||
- Initial addition of the new timer subsystem: ztimer
|
||||
- Migration to Kconfig - phase I: add multiple GNRC and system modules
|
||||
- +10 new boards, +11 new drivers, +7 new packages
|
||||
|
||||
|
||||
555 pull requests, composed of 1514 commits, have been merged since the
|
||||
last release, and 22 issues have been solved. 60 people contributed with
|
||||
code in 102 days. 3346 files have been touched with 358398 (+) insertions and
|
||||
184720 deletions (-).
|
||||
|
||||
Notations used below:
|
||||
=====================
|
||||
|
||||
+ means new feature/item
|
||||
* means modified feature/item
|
||||
- means removed feature/item
|
||||
|
||||
New features and changes
|
||||
========================
|
||||
|
||||
System libraries
|
||||
----------------
|
||||
* core:
|
||||
+ add optional support for executable space protections
|
||||
* sched: sched.h: remove not needed bitarithm include to avoid conflict
|
||||
+ turn kernel_init.c and panic.c into submodules of core
|
||||
+ sys/auto_init: allow delayed initialization of SAUL & gnrc_netif
|
||||
* sys/base64: implement Base 64 Encoding with URL and Filename Safe Alphabet
|
||||
* sys/crypto: define cipher using a module instead of CFLAGS
|
||||
* sys/crypto/modes/ccm: handle input_len = 0
|
||||
* sys/ecc: fix assertion in golay2412
|
||||
* sys/event:
|
||||
+ add event_wait_timeout64()
|
||||
+ add shared event threads
|
||||
* sys/newlib:
|
||||
+ enable multiple heaps in _sbrk_r()
|
||||
* syscalls_default: update heap_stats for multiple heaps
|
||||
* sys/puf_sram: counter based seed after soft reset
|
||||
* sys/phydat: improvement of phydat_dump including test application
|
||||
* sys/shell:
|
||||
+ add rtt command
|
||||
* correctly detect and handle long lines
|
||||
+ sys/shell_commands: + provide command to print version
|
||||
* sys/spp: randomize canary value on each build
|
||||
* sys/suit:
|
||||
* cleanup of TinyCBOR to NanoCBOR refactor
|
||||
* coap: make use of exposed tree handler function
|
||||
* update to draft-ietf-v3
|
||||
+ sys/uri_parser: initial import of a minimal and non-destructive URI parsing
|
||||
* sys/usb: use default VID/PID for RIOT-included peripherals
|
||||
* sys/xtimer:
|
||||
* set now pointer correctly in _update_short_timers() loop
|
||||
+ add xtimer_set_timeout_flag64()
|
||||
* xtimer_mutex_lock_timeout fix with short timeout
|
||||
+ sys/ztimer: initial import
|
||||
|
||||
Networking
|
||||
----------
|
||||
* net/coap:
|
||||
* deprecate gcoap_add_qstring() and update uses
|
||||
+ Packet API function to add Uri-Query option
|
||||
+ net/dhcpv6: initial implementation of a client (with IA_PD support)
|
||||
* net/dns: fix DNS resolution in ping6
|
||||
* net/gcoap:
|
||||
+ add canonical uri query function names
|
||||
+ allow proxied client requests
|
||||
* use sock_async and events
|
||||
+ net/gnrc_dhcpv6_client_6lbr: initial import of a 6LBR DHCPv6 client
|
||||
+ net/gnrc_ipv6_ext_frag: initial import of statistics module
|
||||
* net/gnrc_ipv6_nib:
|
||||
* do not ignore prefix list for route resolution
|
||||
* fix border router with DNS & Context Compression
|
||||
* only route to prefix list entry if on-link
|
||||
* net/gnrc_lorawan:
|
||||
* fix the handling of downlink frames without payload
|
||||
* remove netdev layer from MAC
|
||||
* net/gnrc_netif:
|
||||
+ add gnrc_netif_send and gnrc_netif_highlander functions
|
||||
* implementation of dynamic GNRC_NETIF_NUMOF approach
|
||||
* net/gnrc_nettype: deprecate IOVEC type
|
||||
* net/gnrc_pktbuf: deprecate gnrc_pktbuf_replace_snip()
|
||||
+ net/gnrc_sixlowpan_iphc: add support for IPv6 extension header compression
|
||||
+ net/gnrc_sock: provide implementation for `sock_*_recv_buf()`
|
||||
* net/gnrc_sock_udp: choose random ephemeral port
|
||||
- net/gnrc_tftp: remove module
|
||||
* net/gnrc_uhcpc:
|
||||
* ensure compression context is managed by the ABR
|
||||
* only configure 6Lo-ND features if wireless-interface is 6LN
|
||||
* update compression context with new prefix
|
||||
* net/nanocoap:
|
||||
+ add coap_opt_add_uquery2() with parameter key value length
|
||||
+ add convenience function for adding path elements
|
||||
* add uquery improvements
|
||||
* make separate tree handling function
|
||||
- remove obsolete functions for addition of Uri-Query option
|
||||
+ net/netdev: add netdev_trigger_event_isr() function
|
||||
- net/nhdp: remove module
|
||||
+ net/sock:
|
||||
* async: add optional callback argument
|
||||
+ amend with zero-copy receive functions
|
||||
+ amend API to iterate over stack-internal buffer chunks
|
||||
|
||||
Packages
|
||||
--------
|
||||
+ pkg/cmsis-nn: add support
|
||||
+ pkg/cryptoauthlib: add support
|
||||
+ pkg/libbase58: add support
|
||||
- pkg/libcose: remove monocypher crypto mode
|
||||
+ pkg/littlefs2: add support for LittleFS v2.x.y
|
||||
+ pkg/lvgl: add initial support for LittlevGL
|
||||
* pkg/lwip:
|
||||
+ add auto-init support for transceiver ENC28J60
|
||||
+ provide sock_async support
|
||||
* pkg/micropython: bump version for FreeBSD fix
|
||||
* pkg/monocypher: bump to version 3.0.0
|
||||
* pkg/nanopb: bump version to 0.4.1
|
||||
* pkg/nimble/autoconn: various improvements
|
||||
- pkg/oonf_api: remove support
|
||||
+ pkg/qcbor: add support
|
||||
* pkg/tinydtls: remove receive buffer indirection via mbox
|
||||
* pkg/wolfssl: bump version to 4.3.0
|
||||
+ pkg/yxml: add support Yxml XML parser library package
|
||||
|
||||
Boards
|
||||
------
|
||||
* boards: include common dfu logic where applicable
|
||||
+ boards/adafruit-clue: add initial support
|
||||
* boards/arduino-mkr: feather-m0: sodaq-*: provide stdio over USB and
|
||||
setup automatic flash with bossa
|
||||
+ board/arduino-nano-33-ble: add initial support
|
||||
+ boards/cc1312-launchpad: add support and documentation
|
||||
* boards/feather-nrf52840:
|
||||
* use CDC ACM as default STDIO
|
||||
* fix LED macros
|
||||
+ boards/esp32-heltec-lora32-v2: add support
|
||||
+ boards/im880b: add support
|
||||
+ boards/kw41z-mini: add support
|
||||
* boards/mega-xplained: fix ADC line definitions
|
||||
* boards/nrf51: fix UART hardware flow-control configuration
|
||||
* boards/nucleo-l152re: fix uart1 pinout config
|
||||
+ boards/nucleo-l412kb: add initial support
|
||||
* boards/sam[r/d]21-xpro: prefer XOSC32K for RTC/RTT (GCLK2)
|
||||
* boards/same54-xpro:
|
||||
* configure remaining EXT connectors
|
||||
* don't source peripheral clocks from main clock
|
||||
* boards/samr30: add helper for antenna switch
|
||||
* boards/stm32l4: add common clock configuration
|
||||
+ boards/olimexino-stm32: add support
|
||||
+ boards/openlabs-kw41z-mini-256kib: add support
|
||||
* boards/openmote-b: add SAUL configuration and note about flashing
|
||||
+ boards/p-nucleo-wb55: add initial support
|
||||
+ boards/pic32*: add GPIO SAUL configuration
|
||||
* boards/pinetime:
|
||||
* add defines for controlling the backlight pin
|
||||
* update mtd_spi_nor config
|
||||
* fix battery ADC line define
|
||||
* doc/doxygen:
|
||||
+ add 'Creating boards' section
|
||||
* improvements on various board's documentation
|
||||
|
||||
CPU
|
||||
---
|
||||
* cpu:
|
||||
* add CPU feature for stack smash protections
|
||||
+ add UART RX implementation on PIC32 devices
|
||||
* make default idle/main stacksizes configurable on all archs
|
||||
* move cpu level dependencies in dedicated Makefile.dep files
|
||||
* unify UART hardware flow control use to a generic module
|
||||
* cpu/atmega_common: fix reboot issues
|
||||
* cpu/cc13x2: rename cpu to cc26x2_cc13x2
|
||||
* cpu/cc2538:
|
||||
* fix spi_transfer_bytes()
|
||||
+ implement periph/pm
|
||||
* timer: handle power mode
|
||||
* cpu/cc26xx_cc13xx: add power common code
|
||||
* cpu/cortexm:
|
||||
+ add support for Cortex-M interrupt sub-priorities
|
||||
* cleanup dependencies
|
||||
* move CPU_ARCH/FAM to Makefile.features
|
||||
* only enable MPU during low low level init
|
||||
* cpu/efm32:
|
||||
* cleanup of makefiles
|
||||
* fix incorrect ADC status register
|
||||
* cpu/esp_common:
|
||||
* allow WiFi modem sleep mode
|
||||
+ esp-wifi: allow connecting to open networks
|
||||
* fixes in common CPU configurations
|
||||
* move dependency resolutions to Makefile.dep
|
||||
* cpu/esp32:
|
||||
* activate automatic XTAL detection
|
||||
+ add support for light/deep sleep and pm_layered
|
||||
* allow external 32 kHz crystal for the RTC hardware time
|
||||
+ esp_wifi: add WPA2 enterprise mode with IEEE 802.1x/EAP authentication
|
||||
* fix wake-up sources for sleep mode
|
||||
+ cpu/esp8266: add RTT implementation
|
||||
* cpu/fe310:
|
||||
* fix power management configuration
|
||||
+ implement driver for watchdog
|
||||
* cpu/lpc2387:
|
||||
* fix RTC leap year calculation
|
||||
+ implement periph/adc
|
||||
+ implement periph/i2c
|
||||
* make SPI configurable
|
||||
* cpu/native: fix c11_atomic sizes on FreeBSD
|
||||
* cpu/native/can/candev_linux: add check for real can
|
||||
+ cpu/nrf52/nRF802154: implement CCA
|
||||
+ cpu/nrf5x: add and enable configuration for the built-in DC/DC converter
|
||||
* cpu/sam0:
|
||||
+ add gpio_disable_mux() function
|
||||
+ add samd21j17d support
|
||||
* enhance power saving by switching EIC clock source during STANDBY mode
|
||||
* fix handling of PM_NUM_MODES
|
||||
+ provide interface to query GCLK frequency
|
||||
* use generic exti_config
|
||||
* cpu/samd21: pwm: allow to use channels > 3
|
||||
* cpu/samd5x: disable RTC on init to prevent undefined RTC state
|
||||
* cpu/[saml21/1x]: enable buck voltage regulator when possible
|
||||
* cpu/stm32_common:
|
||||
+ add USB OTG FS/HS usbdev peripheral driver
|
||||
* enable EXTI interrupt for rtt
|
||||
* eth: fix address and multicast filtering
|
||||
* cpu/stm32f1: make RTC Y2038 safe
|
||||
+ cpu/stm32wb: add initial support
|
||||
|
||||
Device Drivers
|
||||
--------------
|
||||
* doc: various fixes in driver documentation
|
||||
+ drivers/apds99xx: add support for APDS99XX ambient light and proximity sensors
|
||||
+ drivers/at24cxxx: add support for AT24Cxxx family of EEPROMs
|
||||
+ drivers/at24mac: add support for unique ID chip
|
||||
+ drivers/at25xx: add support for AT25xxx family of EEPROMs
|
||||
+ drivers/at86rf215: add basic support for AT86RF215 dual-band radio
|
||||
* drivers/at86rf2xx:
|
||||
* fix receive before send detection
|
||||
+ implement basic mode
|
||||
+ drivers/bh1900nux: add support
|
||||
+ drivers/bme680: add support
|
||||
+ drivers/can: add CAN support for nucleo-l476rg
|
||||
+ drivers/cc110x: add support for promiscuous mode
|
||||
+ drivers/disp_dev: add generic interface for display drivers
|
||||
* drivers/ds18: fix temperature conversion
|
||||
+ drivers/hmc5883l: add support for Honeywell HMC5883L magnetometer
|
||||
+ drivers/kw41zrf: add support for radio
|
||||
+ drivers/lis2dh12: add interrupt functionality
|
||||
* drivers/mtd_spi_nor: erase timings in struct
|
||||
+ drivers/periph_common/rtc: add rtc_mktime() & rtc_localtime() helper functions
|
||||
+ drivers/rtt_rtc: add RTT-based RTC implementation, enable it for cpu/cc2538,
|
||||
nrf5x_common
|
||||
* drivers/slipdev: provide stdio multiplexing over SLIP
|
||||
+ drivers/sps30: add support for particulate matter sensor
|
||||
* drivers/srf08: cleanup driver configuration scheme
|
||||
+ drivers/stmpe811: add support for touchscreen controller
|
||||
* drivers/ws281x:
|
||||
+ add support for esp32
|
||||
+ add VT100 backend for native
|
||||
|
||||
Build System / Tooling
|
||||
----------------------
|
||||
* build system: Restructure dependency resolution
|
||||
* dist:
|
||||
* cc2538-bsl: use upstream version
|
||||
+ dhcpv6-pd_ia: initial import of a DHCPv6 server bootstrapper
|
||||
* edbg: update to latest upstream version
|
||||
* factor out static tests from build_and_test
|
||||
* packer: update vagrant image to Ubuntu 18.04 + refactoring
|
||||
+ sliptty: introduce a new SLIP to TUN tool
|
||||
* sliptty/start_network.sh: configure global address for SLIP interface
|
||||
* testbed-support:
|
||||
* fix compatibility with cli-tools v3
|
||||
* use BINFILE for flashing on iotlab
|
||||
+ doc: add section on configuration to 'Getting started'
|
||||
* make:
|
||||
* disable implicit rules
|
||||
* remove support for make <4
|
||||
* native: turn on creation of debug symbols (CFLAGS += -g)
|
||||
* Makefile:
|
||||
* arch: mips: Allow CFLAGS_DBG and CFLAGS_OPT to be overridden
|
||||
* boards: move remaining uses of USEMODULE from Makefile.include to
|
||||
Makefile.dep
|
||||
* disable stdio_% modules before they are included
|
||||
* fix duplicate modules from USEMODULE
|
||||
* fix sock_udp deps for stnp
|
||||
* include package deps earlier
|
||||
* info-global.inc.mk: reset BOARDSDIR
|
||||
* Makefile.dep: remove usage of DEFAULT_MODULE += stdio%
|
||||
* mips: cleanup include makefile
|
||||
* move cpu level dependencies in dedicated Makefile.dep files
|
||||
* periph_init based on USEMODULE
|
||||
* pkg/local.mk: add FORCE target to .PHONY
|
||||
+ provide CPU as a feature
|
||||
* use simple expansion for widely used variables
|
||||
|
||||
Testing
|
||||
-------
|
||||
* tests:
|
||||
+ add check_unittests helper function
|
||||
+ add interactive_sync adapted to shell
|
||||
* fix compilation problems with NDEBUG
|
||||
* fix for `GNRC_NETIF_SINGLE`
|
||||
* fixes for evtimer_msg and bench_runtime_coreapis
|
||||
+ tests/bench_xtimer_load: initial commit
|
||||
* tests/buttons: fix build failure if BTN0_PIN is not declared
|
||||
+ tests/candev: add initial version with native support
|
||||
+ tests/driver_netdev_common: add compile-test for network drivers
|
||||
+ tests/emcute: provide tests
|
||||
+ tests/gnrc_ipv6_nib_dns: add test of RDNSS option handling
|
||||
* tests/gnrc_rpl_srh: use AsyncSniffer for sniffing
|
||||
* tests/periph_rtc: fix system locks in ISR
|
||||
+ tests/xtimer_overhead: initial commit
|
||||
|
||||
Kconfig migration
|
||||
-----------------
|
||||
Migration to Kconfig as configuration tool is currently on phase 1. Which means
|
||||
that we are moving configuration options from modules to Kconfig files, and
|
||||
leaving its use optional.
|
||||
|
||||
+ doc: add Kconfig section
|
||||
* Kconfig:
|
||||
* add CPU and Board common symbols
|
||||
* add Drivers menu
|
||||
* include application-specific symbols first
|
||||
* net/gnrc/ipv6: group IPv6 related Kconfig options
|
||||
+ Expose configurations to Kconfig of:
|
||||
+ drivers/periph/wdt
|
||||
+ drivers/mrf24j40
|
||||
+ net/gcoap
|
||||
+ net/gnrc/ipv6/ext/frag
|
||||
+ net/gnrc/ipv6/nib
|
||||
+ net/gnrc/sixlowpan
|
||||
+ net/ieee802154
|
||||
+ net/nanocoap
|
||||
+ pkg/tinydtls
|
||||
+ pkg/wakaama
|
||||
+ sys/usbus
|
||||
+ usbus/cdc/acm
|
||||
|
||||
API Changes
|
||||
===========
|
||||
- SUIT: update to draft-ietf-v3
|
||||
- Makefile.include: remove support for make <4
|
||||
- net/gnrc_netif: implementation of dynamic GNRC_NETIF_NUMOF approach
|
||||
|
||||
- net/sock: amend with zero-copy receive functions:
|
||||
|
||||
+ /**
|
||||
+ * @brief Releases the stack-internal buffer space provided by the
|
||||
+ * `sock_*_recv_buf()` functions.
|
||||
+ * @param[in] buf_ctx Stack-internal buffer context to release.
|
||||
+ */
|
||||
+ void sock_recv_buf_free(void *buf_ctx);
|
||||
|
||||
+ /**
|
||||
+ * @brief Decrypts and provides stack-internal buffer space containing a
|
||||
+ * message from a remote peer.
|
||||
+ *
|
||||
+ */
|
||||
+ ssize_t sock_dtls_recv_buf(sock_dtls_t *sock, sock_dtls_session_t *remote,
|
||||
+ void **data, void **buf_ctx, uint32_t timeout);
|
||||
|
||||
+ /**
|
||||
+ * @brief Provides stack-internal buffer space containing an IPv4/IPv6
|
||||
+ * message from remote end point
|
||||
+ */
|
||||
+ ssize_t sock_ip_recv_buf(sock_ip_t *sock, void **data, void **buf_ctx,
|
||||
+ uint32_t timeout, sock_ip_ep_t *remote);
|
||||
|
||||
+ /**
|
||||
+ * @brief Provides stack-internal buffer space containing a UDP message from
|
||||
+ * a remote end point
|
||||
+ */
|
||||
+ ssize_t sock_udp_recv_buf(sock_udp_t *sock, void **data, void **buf_ctx,
|
||||
+ uint32_t timeout, sock_udp_ep_t *remote);
|
||||
|
||||
- net/sock/async: add optional callback argument:
|
||||
|
||||
+ * @param[in] arg Argument provided when setting the callback using
|
||||
+ * @ref sock_dtls_set_cb(). May be NULL.
|
||||
*/
|
||||
- typedef void (*sock_dtls_cb_t)(sock_dtls_t *sock, sock_async_flags_t flags);
|
||||
+ typedef void (*sock_dtls_cb_t)(sock_dtls_t *sock, sock_async_flags_t flags,
|
||||
+ void *arg);
|
||||
|
||||
+ * @param[in] arg Argument provided when setting the callback using
|
||||
+ * @ref sock_ip_set_cb(). May be NULL.
|
||||
*/
|
||||
- typedef void (*sock_ip_cb_t)(sock_ip_t *sock, sock_async_flags_t flags);
|
||||
+ typedef void (*sock_ip_cb_t)(sock_ip_t *sock, sock_async_flags_t flags,
|
||||
+ void *arg);
|
||||
|
||||
+ * @param[in] arg Argument provided when setting the callback using
|
||||
+ * @ref sock_tcp_set_cb(). May be NULL.
|
||||
*/
|
||||
- typedef void (*sock_tcp_cb_t)(sock_tcp_t *sock, sock_async_flags_t flags);
|
||||
+ typedef void (*sock_tcp_cb_t)(sock_tcp_t *sock, sock_async_flags_t flags,
|
||||
+ void *arg);
|
||||
|
||||
+ * @param[in] arg Argument provided when setting the callback using
|
||||
+ * @ref sock_tcp_queue_set_cb(). May be NULL.
|
||||
*/
|
||||
typedef void (*sock_tcp_queue_cb_t)(sock_tcp_queue_t *queue,
|
||||
- sock_async_flags_t flags);
|
||||
+ sock_async_flags_t flags,
|
||||
+ void *arg);
|
||||
|
||||
+ * @param[in] arg Argument provided when setting the callback using
|
||||
+ * @ref sock_udp_set_cb(). May be NULL.
|
||||
*/
|
||||
- typedef void (*sock_udp_cb_t)(sock_udp_t *sock, sock_async_flags_t type);
|
||||
+ typedef void (*sock_udp_cb_t)(sock_udp_t *sock, sock_async_flags_t type,
|
||||
+ void *arg);
|
||||
|
||||
- net/sock/dns: make sock_dns_query() return the length of the address:
|
||||
|
||||
/**
|
||||
* @brief Get IP address for DNS name
|
||||
*
|
||||
- * @return 0 on success
|
||||
- * @return !=0 otherwise
|
||||
+ * @return the size of the resolved address on success
|
||||
+ * @return < 0 otherwise
|
||||
*/
|
||||
int sock_dns_query(const char *domain_name, void *addr_out, int family);
|
||||
|
||||
- mtd_spi_nor: move const params to separate struct:
|
||||
|
||||
+ /**
|
||||
+ * @brief Compile-time parameters for a serial flash device
|
||||
+ */
|
||||
+ typedef struct {
|
||||
+ const mtd_spi_nor_opcode_t *opcode; /**< Opcode table for the device */
|
||||
+ spi_clk_t clk; /**< SPI clock */
|
||||
+ uint16_t flag; /**< Config flags */
|
||||
+ spi_t spi; /**< SPI bus the device is connected to */
|
||||
+ spi_mode_t mode; /**< SPI mode */
|
||||
+ gpio_t cs; /**< CS pin GPIO handle */
|
||||
+ uint8_t addr_width; /**< Number of bytes in addresses, usually 3 for small devices */
|
||||
+ } mtd_spi_nor_params_t;
|
||||
+
|
||||
|
||||
typedef struct {
|
||||
mtd_dev_t base; /**< inherit from mtd_dev_t object */
|
||||
- const mtd_spi_nor_opcode_t *opcode; /**< Opcode table for the device */
|
||||
- spi_t spi; /**< SPI bus the device is connected to */
|
||||
- gpio_t cs; /**< CS pin GPIO handle */
|
||||
- spi_mode_t mode; /**< SPI mode */
|
||||
- spi_clk_t clk; /**< SPI clock */
|
||||
- uint16_t flag; /**< Config flags */
|
||||
+ const mtd_spi_nor_params_t *params; /**< SPI NOR params */
|
||||
mtd_jedec_id_t jedec_id; /**< JEDEC ID of the chip */
|
||||
uint32_t page_addr_mask;
|
||||
uint32_t sec_addr_mask;
|
||||
- uint8_t addr_width; /**< Number of bytes in addresses, usually 3 for small devices */
|
||||
uint8_t page_addr_shift;
|
||||
uint8_t sec_addr_shift;
|
||||
} mtd_spi_nor_t;
|
||||
|
||||
Deprecations
|
||||
============
|
||||
|
||||
Warnings
|
||||
--------
|
||||
- `make all-debug` target will be removed for `native` after the 2020.10 release
|
||||
- net/gcoap: `gcoap_add_qstring()` will be removed after the 2020.10 release
|
||||
- net/gnrc/nettype: `GNRC_NETTYPE_IOVEC` type will be removed after 2020.10
|
||||
release
|
||||
- net/gnrc_pktbuf: `gnrc_pktbuf_replace_snip()` will be removed after 2020.10
|
||||
release
|
||||
- net/gnrc/sixlowpan: Configuration macro
|
||||
`GNRC_SIXLOWPAN_FRAG_RBUF_AGGRESSIVE_OVERRIDE` will be removed after 2020.10
|
||||
release.
|
||||
|
||||
Removals
|
||||
--------
|
||||
- Makefile.include: remove support for GNU make <4
|
||||
- pkg/oonf_api: remove package
|
||||
- pkg/tinydtls: remove TINYDTLS_LOG configuration macro
|
||||
- sys/net/gnrc_tftp: remove module
|
||||
- sys/net/nhdp: remove module
|
||||
|
||||
Known issues (136)
|
||||
==================
|
||||
|
||||
Networking related issues (48)
|
||||
------------------------------
|
||||
#13834: DHCPv6 client ends up in busy loop after a while
|
||||
#13745: ethos: Unable to choose global source address.
|
||||
#13496: cpu/stm32/eth, board/nucleo-f767z1: ethernet buffering issue (ping >1s)
|
||||
after debug break
|
||||
#13490: cpu/stm32/eth, board/nucleo-f767z1: ethernet initialisation fails
|
||||
sometimes
|
||||
#13209: examples/gnrc_border_router is crashing after some time
|
||||
#13088: Riot-os freezes with lwip + enc28j60 + stm32L4
|
||||
#12943: driver/mrf24j40: blocks shell input with auto_init_gnrc_netif
|
||||
#12884: examples/cord_ep: Dead lock when (re-)registering in callback function
|
||||
#12858: KW2XRF: Broken network communication without netstats-l2
|
||||
#12857: examples/gnrc_networking_mac broken on ATmega
|
||||
#12565: gnrc_icmpv6_echo: flood-pinging another node leads to leaks in own
|
||||
packet buffer
|
||||
#12264: ethos: Unable to handle fragmented IPv6 packets from Linux kernel
|
||||
#12210: stale border router does not get replaced
|
||||
#11988: ethos: fails to respond to first message.
|
||||
#11860: send data with UDP at 10HZ, the program die
|
||||
#11859: examples: dtls-echo fails silently when DTLS_ECC flag enabled
|
||||
#11852: scan-build errors found during 2019.07 testing
|
||||
#11795: gnrc_tftp: string functions on non-null terminated input
|
||||
#11405: nrfmin: communication not possible after multicast ping with no interval
|
||||
#11212: POSIX sockets + lwIP: bad file descriptor
|
||||
#11033: 6lo: RIOT does not receive packets from Linux when short_addr is set
|
||||
#10969: net: netdev_driver_t::send() doc unclear
|
||||
#10861: cpu/esp8266: Tracking open problems of esp_wifi netdev driver
|
||||
#10809: openthread: does not build on current Arch
|
||||
#10410: Missing drop implementations in netdev_driver_t::recv
|
||||
#10389: gnrc_sock_udp: Possible Race condition on copy in application buffer
|
||||
#10380: netdev_ieee802154: Mismatch between radio ll address and in memory
|
||||
address
|
||||
#10370: gomach: Resetting netif with cli doesn't return
|
||||
#10338: xbee: setting PAN ID sometimes fails
|
||||
#9709: examples: failed assertion in dtls-echo example
|
||||
#9656: gnrc/netif: various problems after resetting interface a second time
|
||||
#8779: CC2538 RF overlapping PIN usage
|
||||
#8752: mrf24j40: does not link for examples/default
|
||||
#8271: app/netdev: application stops working after receiving frames with
|
||||
assertion or completely without error
|
||||
#8242: at86rf2xx: Dead lock when sending while receiving
|
||||
#8199: gcoap example request on tap I/F fails with NIB issue
|
||||
#8172: gnrc_netif, gnrc_uhcpc: Replacing prefix on border router results in no
|
||||
configured prefix
|
||||
#8086: gnrc_rpl_p2p: port to nib and fix compile errors
|
||||
#7737: pkg: libcoap is partially broken and outdated
|
||||
#7474: 6lo gnrc fragmentation expects driver to block on TX
|
||||
#7304: General 802.15.4/CC2538 RF driver dislikes fast ACKs
|
||||
#6018: nRF52: gnrc_6lowpan_ble: memory leak with nordic_softdevice_ble
|
||||
#5863: OSX + SAMR21-xpro: shell cannot handle command inputs larger than 64
|
||||
chars
|
||||
#5748: gnrc: nodes crashing with too small packet buffer
|
||||
#5486: at86rf2xx: lost interrupts
|
||||
#5230: gnrc ipv6: multicast packets are not dispatched to the upper layers
|
||||
#5051: Forwarding a packet back to its link layer source should not be allowed
|
||||
#4527: gnrc_ipv6: Multicast is not forwarded if routing node listens to the
|
||||
address
|
||||
|
||||
Timer related issues (17)
|
||||
-------------------------
|
||||
#13072: periph/timer: `timer_set()` underflow safety check (tracking issue)
|
||||
#12909: Bug: Unexpected behavior with xtimer_periodic_wakeup() for large periods
|
||||
on Nucleo-f401re
|
||||
#11523: xtimer_periodic_wakeup crashing at high frequencies on frdm-kw41z
|
||||
#11149: xtimer: hang on xtimer_spin_until (corner case)
|
||||
#10545: periph_timer: systematic proportional error in timer_set
|
||||
#10523: saml21 system time vs rtc
|
||||
#10510: xtimer_set_msg: crash when using same message for 2 timers
|
||||
#10073: xtimer_usleep wrong delay time
|
||||
#9187: sys/newlib: gettimeofday() returns time since boot, not current wall
|
||||
time.
|
||||
#9052: misc issues with tests/trickle
|
||||
#9049: xtimer mis-scaling with long sleep times
|
||||
#8746: stm32_common/periph/rtc: current implementation broken/poor accuracy
|
||||
#8251: MSP430: periph_timer clock config wrong
|
||||
#7347: xtimer_usleep stuck for small values
|
||||
#7114: xtimer: add's items to the wrong list if the timer overflows between
|
||||
_xtimer_now() and irq_disable()
|
||||
#6442: cpu/native: timer interrupt issue
|
||||
#6052: tests: xtimer_drift gets stuck on native
|
||||
|
||||
Drivers related issues (9)
|
||||
--------------------------
|
||||
#13444: Potential security and safety race conditions on attached devices
|
||||
#12445: driver/hts221: Temperature and Humidity readings incorrect
|
||||
#12371: fail to send data to can bus
|
||||
#12045: floats and doubles being used all over the place.
|
||||
#11388: SD card initialization: timeouts effectively blocking
|
||||
#11104: STM32: SPI clock not returning to idle state and generating additional
|
||||
clock cycles
|
||||
#9419: cpu/msp430: GPIO driver doesn't work properly
|
||||
#8045: stm32/periph/uart: extra byte transmitted on first transmission
|
||||
#4876: at86rf2xx: Simultaneous use of different transceiver types is not
|
||||
supported
|
||||
|
||||
Native related issues (3)
|
||||
-------------------------
|
||||
#11472: Warnings from objcopy and size (binutils 2.32)
|
||||
#5796: native: tlsf: early malloc will lead to a crash
|
||||
#495: native not float safe
|
||||
|
||||
Other platforms related issues (18)
|
||||
-----------------------------------
|
||||
#13606: gcoap/esp8266: Stack overflow with gcoap example
|
||||
#13408: Bug: PWM test crashes on Arduino Mega 2560
|
||||
#13390: Cannot use LLVM with Cortex-M boards
|
||||
#13267: Failing tests on MSP430 (z1)
|
||||
#13104: boards/hifive1: flashing issue
|
||||
#13086: Failing tests on FE310 (Hifive1b)
|
||||
#12763: [TRACKING] Fixes for automatic tests of ESP32 boards.
|
||||
#12651: Failing tests on AVR (tested with atmega256rfr2-xpro)
|
||||
#12168: pkg/libb2: blake2s doesn't work on AVR
|
||||
#12057: ESP32 + DHT + SAUL reading two endpoints causes freeze.
|
||||
#10258: Incorrect default $PORT building for esp32-wroom-32 on macOS
|
||||
#10122: Indeterministic hard fault in _mutex_lock(), with nRF52 SoftDevice
|
||||
#10076: cpu/cortexm_common: irq_enable returns the current state of interrupts
|
||||
(not previous)
|
||||
#8408: pkg/fatfs: linker error when build tests/pkg_fatfs_vfs for msb430 based
|
||||
boards
|
||||
#7753: pic32-wifire: race-condition when linking in concurrent build
|
||||
#6567: periph/spi: Switching between CPOL=0,1 problems on Kinetis with software
|
||||
CS
|
||||
#5774: cpu: cortexm_common: context switching code breaks when compiling with
|
||||
LTO
|
||||
#4954: chronos: compiling with -O0 breaks
|
||||
|
||||
Build system related issues (11)
|
||||
--------------------------------
|
||||
#13492: make -j flash broken on esp* (will always flash the previous binary)
|
||||
#13419: Can't use nimble as prefix for modules
|
||||
#12771: dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck 1.89
|
||||
#10850: Tracking: remove harmful use of `export` in make and immediate
|
||||
evaluation
|
||||
#9913: Build dependencies - processing order issues
|
||||
#9742: `buildtest` uses wrong build directory
|
||||
#9645: Different build behavior between `murdock` and `riot/riotbuild:latest`
|
||||
image
|
||||
#8913: make: use of immediate value of variables before they have their final
|
||||
value
|
||||
#8122: doxygen: riot.css modified by 'make doc'
|
||||
#6120: Windows AVR Mega development makefile Error
|
||||
#4053: macros: RIOT_FILE_RELATIVE printing wrong file name for headers
|
||||
|
||||
Other issues (30)
|
||||
-----------------
|
||||
#13918: cpu/stm32f1: CPU hangs after wake-up from STOP power mode
|
||||
#13527: examples/dtls-wolfssl not working on pba-d-01-kw2x
|
||||
#13345: sys/xtimer: segmentation fault: in function xtimer_msg_received_timeout
|
||||
#13277: Y2038 tracking issue / strategy
|
||||
#13133: tests/pkg_tensorflow-lite: tests randomly failing on nrf52dk and
|
||||
esp32-wroom-32
|
||||
#13120: tests: broken with stdio_rtt if auto_init is disabled
|
||||
#13044: _NVIC_SystemReset stuck in infinite loop when calling pm_reboot through
|
||||
shell after flashing with J-Link
|
||||
#12732: tests: some tests don't work with `newlib` lock functions.
|
||||
#12205: core: atomic: Unable to compile starting with gcc 9.1.0
|
||||
#12108: `make term` output is inconsistent between boards, `ethos` and `native`
|
||||
#12105: [TRACKING] sys/shell refactoring.
|
||||
#11885: arm7: printf() with float/double not working
|
||||
#11243: sys/riotboot: documentation issues
|
||||
#10751: Possible memset optimized out in crypto code
|
||||
#10731: nanocoap: incomplete response to /.well-known/core request
|
||||
#10639: sys/stdio_uart: dropped data when received at once
|
||||
#10121: RIOT cannot compile with the latest version of macOS (10.14) and Xcode
|
||||
10
|
||||
#9882: sys/tsrb is not thread safe on AVR
|
||||
#9518: periph/i2c: tracking bugs and untested acks
|
||||
#9371: assert: c99 static_assert macro doesn't function for multiple
|
||||
static_asserts in the same scope
|
||||
#8589: Why using -F in avrdude?
|
||||
#8436: Kinetis PhyNode: failed to flash binary > 256K
|
||||
#7220: sys/fmt: Missing tests for fmt_float, fmt_lpad
|
||||
#6533: tests/lwip target board for python test is hardcoded to native
|
||||
#5769: Possible problem in scheduler
|
||||
#5009: RIOT is saw-toothing in energy consumption (even when idling)
|
||||
#4866: periph: GPIO drivers are not thread safe
|
||||
#4488: Making the newlib thread-safe
|
||||
#3256: make: Setting constants on compile time doesn't really set them
|
||||
everywhere
|
||||
#2346: Tracker: Reduce scope on unintended COMMON variables
|
||||
|
||||
There are 137 known issues in this release
|
||||
|
||||
Fixed Issues since the last release (2020.01)
|
||||
=============================================
|
||||
|
||||
#13920: stm32: ztimer RTT backend overflow
|
||||
#13680: suit-tool runs on every build - ModuleNotFoundError: No module named
|
||||
'cbor' when building anything
|
||||
#13587: drivers/cc110x: Lost IRQs can lead to driver deadlock
|
||||
#13471: 6ctx: incorrectly removes 6ctx context when the non-zero part of the
|
||||
address matches
|
||||
#13460: Makefile.dep: DEFAULT_MODULE += stdio_rtt will always load dependencies
|
||||
- even if other stdio is selected
|
||||
#13459: cpu/cortex-m23: gcc 9 bug when compiling c11 atomics
|
||||
#13447: gnrc_sock_dns is not working
|
||||
#13442: gnrc_networking not sending packets when hardware has multiple
|
||||
interfaces
|
||||
#13369: native:in file gnrc_rpl_p2p.c function trickle_start() has extra and
|
||||
some undeclared variables.
|
||||
#13358: iotlab-m3: long HW address is in reversed order
|
||||
#13353: tests/unittests/tests-ecc: segfault with golay, when enabling asserts
|
||||
#13309: cpu/native/can: Segmentation fault when manipulating vcan's through
|
||||
socketcan
|
||||
#13287: Driver for DS18B20 returns invalid values
|
||||
#13265: tests: compilation of some test applications fail with NDEBUG
|
||||
#13015: Quickest start does not build with vagrant
|
||||
#12854: `pm_reboot()` not working on AVR when compiled with `LTO=1`
|
||||
#12370: Undocumented uint8_t assumptions in nrf52840 peripherals
|
||||
#12037: cpu/sam0_common: i2c baudrate calculation fails if CLOCK_CORECLOCK > 51
|
||||
MHz
|
||||
#11026: Recent changes effectively killed modular board designs
|
||||
#8213: at86rf2xx: Basic mode and NETOPT_AUTOACK
|
||||
#8130: gcoap: can't build with network stacks other than GNRC
|
||||
#7020: isr_rfcoreerrors while pinging between CC2538DKs
|
||||
|
||||
22 fixed issues since last release (2020.01)
|
||||
|
||||
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
We would like to thank all companies that provided us with hardware for porting
|
||||
and testing RIOT-OS. Further thanks go to companies and institutions that
|
||||
directly sponsored development time. And finally, big thanks to all of you
|
||||
contributing in so many different ways to make RIOT worthwhile!
|
||||
|
||||
More information
|
||||
================
|
||||
http://www.riot-os.org
|
||||
|
||||
Mailing lists
|
||||
-------------
|
||||
* RIOT OS kernel developers list
|
||||
devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel)
|
||||
* RIOT OS users list
|
||||
users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users)
|
||||
* RIOT commits
|
||||
commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits)
|
||||
* Github notifications
|
||||
notifications@riot-os.org (http://lists.riot-os.org/mailman/listinfo/notifications)
|
||||
|
||||
IRC
|
||||
---
|
||||
* Join the RIOT IRC channel at: irc.freenode.net, #riot-os
|
||||
|
||||
License
|
||||
=======
|
||||
* The code developed by the RIOT community is licensed under the GNU Lesser
|
||||
General Public License (LGPL) version 2.1 as published by the Free Software
|
||||
Foundation.
|
||||
* Some external sources and packages are published under a separate license.
|
||||
|
||||
All code files contain licensing information.
|
||||
|
||||
|
||||
RIOT-2020.01 - Release Notes
|
||||
============================
|
||||
RIOT is a multi-threading operating system which enables soft real-time
|
||||
|
Loading…
Reference in New Issue
Block a user