Tags: zzcello/RIOT
Tags
Merge pull request RIOT-OS#16329 from miri64/tests/fix/periph_rtt_min… …-timeout tests/periph_rtt_min: adapt for slower RTTs
RELEASE 2021.01 RIOT-2021.01 - 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 2021.01 release includes: - Device Firmware Upgrade support for USBUS - USB HID minimal implementation - IEEE 802.15.4 security initial implementation - 6LowPAN Minimal Forwarding and Selective Fragment Recovery initial implementation - Initial support for QN808x, SAMD10 STM32MP1 and STM32L5 CPUs - Initial support for Cortex-M33 - A module for selecting entropy sources - Initial support for the Decawave Impulse Radio-Ultra Wideband (UWB Core) - Capability to join or leave link layer multicast groups (GNRC) - Support for IN865 region in GNRC LoRaWAN - 83 additional modules supported by Kconfig - 14 new boards, 6 new device drivers, 8 packages updated In order to improve community interaction, during this release cycle we started to migrate from a mailing-list-based communication to forum-based communication. We are proud to present the RIOT-OS forum available at forum.riot-os.org 533 pull requests, composed of 1440 commits, have been merged since the last release, and 65 issues have been solved. 58 people contributed with code in 119 days. 3852 files have been touched with 348619 (+) insertions and 52516 deletions (-). Notations used below: ===================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- + msg_bus: allow to differ between messages form bus and from thread + mutex: Add mutex_cancel + mbox: add mbox_size(), mbox_avail() * refactor thread info - remove kernel_types.h System Libraries ---------------- + Add thread-safe Malloc + sys/tsrb: Make thread-safe + mtd_mapper: implement pagewise functions + xtimer: introduce xtimer_msleep() + usbus: Add USB peripheral serial string support + hashes: Add PBKDF2-sha256 implementation + usbus/dfu: add Device Firmware Upgrade support for USBUS + USB HID minimal implementation + Add helpers for pointer tagging + atomic_utils: Functions for atomic access + entropy_source: add new module for entropy sources + nimble_autoadv: add new module * ztimer: + add ztimer_mutex_lock_timeout() * fix xtimer_compat * increase xtimer_compat coverage * oneway-malloc: check calloc args * event: Allow single event_thread handling all queues - irq_handler: Drop module Networking ---------- + gnrc_netif: add capability to join or leave link layer multicast groups + gnrc_sixlowpan_frag: + initial import of Minimal Forwarding according to RFC 8930 + initial import of Selective Fragment Recovery (RFC 8931) + gnrc_netif_ethernet: Support RX timestamp + Initial implementation of IEEE 802.15.4 security + sock: add access to auxiliary data * gnrc_pkt: refactor to not use utlist.h * sys/net/gnrc: fix in-band signaling of no RSSI * gnrc_netif_pktq: fix pktbuf leak * Fixed a critical bug, allowing to crash the whole system with a specially crafted LoRa frame * GNRC LoRaWAN: + Support for IN865 region, Improve debugging * GNRC LoRaWAN: Bug fix for zero CFList * IEEE 802154 Radio HAL: + add `read` function + add IEEE802154_RADIO_INDICATION_CRC_ERROR + add IEEE802154_RADIO_INDICATION_TX_START + add helpers for RSSI and dBm conversion * fix wrong rssi conversions treewide * IEEE 802.15.4 SubMAC: + add retransmission reporting * enable ACK_REQ by default * unify legacy and radio HAL bootstrap * gcoap: + Process CON responses * make blocksize configurable - Remove deprecated features - gcoap: remove deprecated gcoap_add_qstring - gnrc_nettype: remove GNRC_NETTYPE_IOVEC - gnrc_pktbuf: drop gnrc_pktbuf_replace_snip() - gnrc_sixlowpan_rb: remove GNRC_SIXLOWPAN_FRAG_RBUF_AGGRESSIVE_OVERRIDE - sock/dtls: remove sock_dtls_session_create due to deprecation Packages -------- + openthread: add support for radios compatible with SubMAC + uwb_core: initial support * Updates: * littlefs2: Bump to v2.3 * jsmn: bump version * libb2: update to latest release * libhydrogen: bump version * micro-ecc: bump version * tinycrypt: bump version * fatfs: bump version to r0.14 * gecko_sdk: update to v2.7.7 * hacl: switch upstream to backup copy * lvgl: bump to v7.7.1 * openwsn: + add ieee802154_hal based radio + openwsn: add sock_udp - nordic-softdevice: remove deprecated package Boards ------ * Renode: + stm32f4discovery: Add initial renode support + firefly: add renode configuration + hifive*: add renode support * Arduino feature: + waspmote-pro: add arduino feature + remote-revb: add arduino feature + New boards: + ESP32-Ethernet-Kit + arduino-nano-33-iot + weact-f401cc / weact-f401ce / weact-f411ce + e104-bt5011a-tb + e180-zg120b-tb + feather-m0-lora + nrf52840-mdk-dongle + nucleo-l011k4 + nucleo-l552ze-q + frdm-kl43z + slstk3400a + stk3200 + SAM D10 Xplained Mini + Particle boards: Support monofirmware builds and uploads + saul_pwm: auto-init'able RGB LEDs and dimmers for: * particle-argon / particle-boron / particle-xenon * nrf52840-mdk-dongle * nrf52840dongle + native: allow to use ZEP instead of tap + ikea-tradfri: add SPI NOR Flash configuration CPU --- + Cortex-M33: add initial support + nrf5x: implement periph_timer_periodic + nrf52: Add i2c reconfigure feature + SAMD10: Add support + stm32l5: add initial support + stm32mp1: Add initial support + QN908x: Add initial support * atmega_common: Split into atmega_common and avr8_common * Improve clock configuration * stm32: * rtc: add unlock/lock to rtc_clear_alarm * uart: set flow control bits before enabling uart * cpu/stm32: enable overdrive mode on f4 and f7 for high clock speeds * cpu/stm32: Fix & cleanup periph_eth * esp: + implement ESP WiFi SoftAP mode * Fix cast alignment issues * sam3/periph_timer: fix trigger of cleared timer * native: + rtc: add rtc_set_time implementation * fix memory leak - remove unused can_linux module * cc2538: + add riotboot feature + add flashpage & flashpage_raw + add periph_uart_nonblocking * efm32: + add coretemp driver + add watchdog peripheral * sam0_common: + cpu/sam0: add initial ethernet support + flashpage: add functions to write to user config area / AUX page * flashpage: rename to sam0_flashpage_aux_write() + SPI: add support for QSPI in SPI mode Device Drivers -------------- + Add utilities for Ethernet Media-Independent Interface (MII) and use them in STM32 `periph_eth` + cst816s: Initial include of cst816s touch screen driver + gp2y10xx dust sensor + DS3231 RTC + periph_common: dac: add dac_play() + scd30: Add reset function to Sensirion scd30 sensor + si1133: New SI1133 UV/IR/Ambient light driver + sc: Add driver for Honeywell HSC series pressure and temperature sensor + ndev: add mcp2515 + driver/mcp2515: add driver + net: Add netdev_driver_t::confirm_send + PTP Clock * cpu/stm32: * periph_eth: Use auto-negotiation * Fix periph_eth link status * Fix reception bug in periph_eth * nrf802154: * change internal state to idle after rx * fix set_cca_threshold range * fix unwanted emissions at the end of ACK frame * fix state transition and `off` function * nrf802154: default to netdev_ieee802154_submac * cc2538_rf: * fix transmit function * default to netdev_ieee802154_submac * at86rf2xx: fix null pointer check * at86rf215: + add functions to configure trim & clock output at run-time + implement battery monitor, add power bus + implement MR-FSK * make use of packet queue if available * fix dependency resolution for 2.4 GHz * w5100.c: correct the pointer position when w5100's buf is full * srf04: fix overflow on AVR * periph/rtt: fix overflow in tick conversion macros * mtd_flashpage: fix erasure of multiple sectors * mtd_spi_nor: cleanup & bug fixes Documentation ------------- + README: Add merge-chance badge + riotboot: add basic porting guide + emulators: add emulators documentation in Doxygen + SECURITY.md: Add initial security policy * generate-changelog: add support for point releases * add Docker info to doxygen * drivers/netdev: Clarify documentation * README.md: move tapsetup section to documentation * native: Improve Documentation * CONTRIBUTING: cleanup and reorganize * core/msg_bus: enhance documentation * cpu/stm32: rewrite clock configuration documentation * doc: advertise forum.riot-os.org * doc: Give examples of what DEVELHELP does * gnrc/rpl: document implementation status * ieee802154/radio: indicate that FCS is ignored when reading buffer * uhcp: improve documentation * update board porting documentation page Build System / Tooling ---------------------- + testbed-support: add iotlab mapping for dwm1001 + info.inc.mk: Add info-build-json as JSON-formatted build info + makefiles/utils: add util to compare to software versions + emulator: add debug feature with qemu emulator * Makefile.include: avoid recursive expansion of USEMODULE + makefiles/pseudomodules.inc.mk: netdev_ieee802154_legacy is a pseudomodule * dist/tools/bmp: Fix flashing with pygdbmi 0.10.0 * drivers/at86rf215: fix dependency resolution for single radio * cpu/esp*: fix linker scripts * info-objsize: Restore info-objsize target * make: run static_tests.sh directly with `static-tests` target * picolibc: model as a feature * tools/esptool: add common makefile to define esptool variables * dist/tools: Use bash instead of sh where needed * tools/emulator: allow use with *term targets + introduce EMULATE=1 instead of emulate target * mips: adapt for toolchain update (2020.06-01) - remove the bootloader_% pseudo-feature, replace it with highlevel_stdio Continuous Integration ---------------------- * use Github actions for static tests instead of Travis + Add support for Github annotations. * gh-actions/release-test: bump ssh-agent to v0.4.1 Testing ------- + tests/mpu_stack_guard: add automatic test script + tests/mtd_raw: add simple test for MTD * treewide: cleanup ENABLE_DEBUG * release-tests: fix artifact naming and steps cleanup for matrix build * tests/sys_atomic_utils_unittests: spice up test * tests/unittests: split out atomic_utils unittests * sys/shell: terminate shell on Ctrl-D Kconfig ------- + Modules with support added: + drivers/{a, b, c, d, e, f, g, h, i, j}* + drivers/ili9341 + test/periph_* + cpu/stm32: add script to generate Kconfig.models and Kconfig.lines files + add modules to test on native + Clock configuration for: + stm32l4 + stm32l5 + stm32wb + stm32f0 + stm32g0g4 + stm32l0l1 + stm32f1f3 * drivers/rn2xx3 : Kconfig updates. * MQTT-SN Clients: Kconfig Updates Examples -------- + gnrc_networking: add option to enable DNS * gnrc_border_route: simplify ZEP setup on native * suit_update: use interactive sync in test * gcoap: Allow PUT/POST with empty payload * suit_update: update IETF draft reference in the README API Changes =========== * periph_flashpage: Make pagewise API optional * net/eui_provider: API cleanup * sock/dtls: add getter/setter for the remote UDP endpoint of sock_dtls_session_t * drivers/pn532: use pseudomodules to select i2c or spi * GNRC: fix in-band signaling of no RSSI Deprecations ============ Removals -------- - Remove deprecated features: - gnrc_nettype: remove GNRC_NETTYPE_IOVEC - gnrc_sixlowpan_rb: remove GNRC_SIXLOWPAN_FRAG_RBUF_AGGRESSIVE_OVERRIDE - pkg/nordic-softdevice: remove deprecated package - boards/native: remove all-debug deprecated target - gnrc_pktbuf: drop gnrc_pktbuf_replace_snip() - sys/irq_handler: Drop module - sock/dtls: remove sock_dtls_session_create due to deprecation - gcoap: remove deprecated gcoap_add_qstring - pkg/tinydtls: remove deprecation message about some CFLAGS Known issues ============ Networking related issues (43) ------------------------------ packet buffer address assertion or completely without error chars address Timer related issues (16) ------------------------- time. _xtimer_now() and irq_disable() Drivers related issues (14) --------------------------- timeout clock cycles supported Native related issues (5) ------------------------- Other platforms related issues (19) ----------------------------------- __WFI() (not previous) CS Build system related issues (14) -------------------------------- evaluation image value Other issues (41) ----------------- ports LLVM depending on code layout in flash esp32-wroom-32 shell after flashing with J-Link 10 static_asserts in the same scope everywhere There are 152 known issues in this release Fixed Issues since the last release (2020.10) ============================================= msg_try_send() session has been finished 20 fixed issues since last release (2020.10) 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, Matrix and Forum ------------ * Join the RIOT IRC channel at: irc.freenode.net, #riot-os * Join the RIOT Matrix room at: #riot-os:matrix.org * Join the RIOT Forum at: forum.riot-os.org 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.
Merge pull request RIOT-OS#15905 from benpicco/backport/2021.01/pr/st… …m32-fix-exti cpu/stm32/gpio: fix EXTI flag clearing [backport 2021.01]
Merge pull request RIOT-OS#15876 from fjmolinas/backport/2021.01/pr_f… …ix_posix_sleep tests/posix_sleep: fix for invalid RTT configurations [backport 2021.01]
Merge pull request RIOT-OS#15864 from leandrolanzieri/backport/2021.0… …1/pr/makefile/fix_default_modules_in_usemodules Makefile.include: avoid recursive expansion of USEMODULE [backport 2021.01]
Merge pull request RIOT-OS#15775 from jia200x/pr/wfs/lw_params gh/workflows/release-tests: add LoRaWAN parameters as env variables
RELEASE 2020.10 RIOT-2020.10 - 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.10 release includes: - Support for PicoLIBC as standard C library implementation - A new radio abstraction layer for ieee802.15.4 radios - Improvement to the linking of modules - An improved algorithm for generating local unique identifiers - Pagewise addressing support for MTD devices - 23 additional modules supported by Kconfig - Initial rework of the clock modelling on stm32 devices - 5 new boards, 2 new device drivers, 7 packages updated 482 pull requests, composed of 1355 commits, have been merged since the last release, and 84 issues have been solved. 64 people contributed with code in 94 days. 2426 files have been touched with 133358 (+) insertions and 756906 deletions (-). Notations used below: ===================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- + init: make boot message configurable + panic: callback app during panic + bitarithm: add bitarithm_test_and_clear() * thread: Add THREAD_NAMES make flag * kernel_defines.h: Fix container_of() * core: Add and use helper functions for internal data * treewide: Fix direct access to scheduler internals * core/bitarithm: use __builtin_clz() for bitarithm_msb() System Libraries ---------------- + architecture: New module to access architecture internals + Add support for PicoLIBC + ztimer: add ztimer_spin() + ztimer: add periodic timers API * byteorder: * Moved to sys + Add byteorder_bebuftohll() and inverse + add uint32 from/to buffer funcs + event: implement waiting on multiple queues + evtimer: add mbox support + random: add SHA256 mode to SHA1PRNG & tests * sys/luid: improve luid_base() algorithm * tsrb: Make thread-safe * pipe_dynamic: fix possible null pointer dereference Networking ---------- + ieee802154_submac: add initial support for common MAC sub layer + ieee802154/radio_hal: introduce Radio HAL for IEEE802.15.4 compatible radios + EUI: + luid: add luid_netdev_get_eui48() & luid_netdev_get_eui64() + eui64: add eui64_to_eui48() + link_layer: implement EUI provider * luid: shuffle bytes * uhcp: use LOG_xxx functions * gcoap: Insert registrations at the front * gnrc_ipv6_nib: only multicast probe UNREACHABLE neighbor if 6LR * gnrc_ipv6_nib: set NCE stale on incoming ARO * gnrc_ipv6_nib: don't add non-link-local to NC without ARSM + gnrc_netif_pktq: add packets to optional send queue when device is busy * emcute: fix buffer overflow in _willupd_msg() * SUIT: + Introduction of a payload storage API for SUIT manifest payloads * Upgrade to draft-ietf-suit-manifest-09 * fail fetch if the image size doesn't match expected * gnrc: - Remove cyclic dependencies - Remove deprecated module gnrc_nettest - netopt: remove deprecated alias NETOPT_LINK_CONNECTED Packages -------- + openwsn: add riot based openwsn scheduler + openwsn: add shell commands * openthread: migrate to event loop * nimble/netif: fix deadlock on connection loss * wolfssl: bump version to 4.5.0 * nanopb: bump version to 0.4.3 * ccn-lite: bump version * cn-cbor bump to 1.0.0 * tinycbor: bump to v0.5.3 * tinydtls: enforce the selection of a crypto secure PRNG * jerryscript: bump to version 2.3.0 * semtech-loramac: replace xtimer by ztimer * lvgl: + add logic for managing touch devices + introduce screen_dev wrapper * bump to v7 - emb6: remove deprecated package Boards ------ + nrf52: Enable PWM on the LED pins + nucleo-g071rb: add initial support + nucleo-g070rb: add board + nucleo-g431rb: add initial support + Support for YARM board + add Adafruit Itsy Bitsy * samr21-xpro: fix reading EUI-64 from EDBG on cold boot * nucleo-l452re: add i2c config * hifive1b: add support for openocd programmer - remove support for wsn430-1_3b and wsn430-1_4 CPU --- * cortexm: + Make no_thread_idle compatible with cortex-m0 + Add thread info to hard fault handler + advertise puf_sram feature * Skip context save/restore on scheduling the previous thread * use mpu stack guard if DEVELHELP is enabled * fix check for bitbanding * Flush pipeline after triggering PendSV + cc2538: add Watchdog implementation * cc26xx_cc13xx: * add & link CCFG configuration * enable periph clocks on sleep * fe310: + Add custom PLIC driver as peripheral * Merge and optimize trap_entry with irq_arch * Unify linker scripts * msp430: Update to inline-able IRQ API Area * nrf5x_common: UART: add support for 1 MBaud * stm32: + generate vectors C files and IRQ defines from CMSIS headers + stm32cmsis: retrieve STM32 CMSIS header from a package + g0: add basic support + implement periph_timer_periodic * Add support for arbitrary SPI clock rate * f0/f1/f3/l0/l1/l4/wb: rework clock initialization and configuration - disable MPU for cortex-m0+ * sam0: + GPIO: use tamper detection to wake from Deep Sleep + add support to run PWM off TC timers + ADC: add support for samd5x/same5x + Add support for Single-cycle I/O Port for GPIO * UART: implement arithmetic BAUD mode * merge RTC & RTT implementation * flashpage: clean up implementation - saml1x: Remove MPU feature Device Drivers -------------- + at86rf2xx: spi security module + at86rf2xx: support frame retry reporting on AT86RFR2 + soft_uart: add software based UART implementation + scd30 : Add driver for scd30 sensor + stm32_eth: add 'NETDEV_EVENT_LINK_UP' event + Add support for Adafruit Seesaw Soil moisture sensor + radio_hal: + introduce Radio HAL for IEEE802.15.4 compatible radios + cc2538_rf: implement Radio HAL + nrf52840: implement Radio HAL + mtd: add page addressed operation * stmpe811: fix interrupt polarity & interrupt generation * sps30: Update units of measurement * sps30: Add sleep mode - sdcard_spi: remove auto-init Build System / Tooling ---------------------- + Add libstdcpp feature + gnrc_border_router: Add USB Ethernet support + buspirate: add Bus Pirate as Debug Adapter * README: Add more badges * Convert remaining Python2 users to Python3 * openocd-adapters: select transport based on adapter * Makefile.{base,include}: Fix linking for C++ code in external modules * link object files instead of archives * tapsetup: - Add support for listing bridges - Add support to configure addresses for bridge - Add support for configuring routes and forwarding capabilities for bridge - Add TUN support Testing ------- + vagrant: add Vagrantfile to test native in FreeBSD + compile_and_test_for_board.py: add optional JUnit XML support * bench_*: Add ticks per iteration results Kconfig ------- + Finished modelling provided features + Modules with support added: + credman + cord + nrf-based + ek-lm4f120xl + lpc1768-based + lpc2387-based + native + mips32r2-based + sam3-based + sam0_common + same54-xpro + saml1x-based + saml21-based + stm32 + l2filter + dhcpv6 + hifive1(b) clock area + stm32gx clock configuration + periph/timer + netif + skald + sock_dtls + lora + add genconfig script * enable incremental compilation on config changes * include KCONFIG_OUT_CONFIG unconditionally API Changes =========== - gcoap: remove gcoap_finish * gpio: IRQs triggered after gpio_irq_disable() are discarded * sched: Refactor to return the next scheduled thread * sock: Application should pull in the pseudomodules * driver-guide.md: Drivers are expected to return negative errno values * nrf52xxxdk: configure LEDs as PWM Known issues ============ Networking related issues (42) ------------------------------ packet buffer address assertion or completely without error chars address Timer related issues (15) ------------------------- time. _xtimer_now() and irq_disable() Drivers related issues (14) --------------------------- timeout clock cycles supported Native related issues (3) ------------------------- Other platforms related issues (19) ----------------------------------- __WFI() (not previous) CS Build system related issues (14) -------------------------------- evaluation image value Other issues (41) ----------------- LLVM depending on code layout in flash esp32-wroom-32 shell after flashing with J-Link 10 static_asserts in the same scope everywhere There are 148 known issues in this release Fixed Issues since the last release (2020.07) ============================================= ASSERTION. after debug break sometimes boards 42 fixed issues since last release (2020.07) 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 & Matrix ------------ * Join the RIOT IRC channel at: irc.freenode.net, #riot-os * Join the RIOT Matrix room at: #riot-os:matrix.org 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.
Merge pull request RIOT-OS#15319 from maribu/15318-backport cpu/stm32: Fix reception bug in periph_eth [backport]
PreviousNext