mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
release-notes.txt: add 2022.01 release notes
This commit is contained in:
parent
fca7ed3943
commit
56d343de6e
@ -1,3 +1,801 @@
|
||||
RIOT-2022.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 2022.01 release brings support for new packages, new boards and drivers,
|
||||
as well as several package upgrades and bug fixes. Among others, this release
|
||||
improves the RIOT codebase with:
|
||||
|
||||
Rust support
|
||||
------------
|
||||
|
||||
RIOT now offers convenient integration of Rust application programming, with
|
||||
wrappers interfacing to RIOT modules such as timers, network stack.
|
||||
|
||||
|
||||
Improved timers
|
||||
---------------
|
||||
|
||||
Many modules have migrated from using xtimer to our more power-efficient
|
||||
alternative ztimer. Also, ztimer64 was introduced, which enables
|
||||
a drop-in replacement for all of xtimer features.
|
||||
|
||||
|
||||
Kconfig support
|
||||
---------------
|
||||
|
||||
Kconfig modeling coverage is significantly extended. Nearly all supported
|
||||
boards are now modeled with Kconfig.
|
||||
|
||||
|
||||
Summary:
|
||||
--------
|
||||
|
||||
436 pull requests, composed of 1159 commits, have been merged since the
|
||||
last release, and 11 issues have been solved. 43 people contributed with
|
||||
code in 88 days. 2475 files have been touched with 44925 (+) insertions and
|
||||
14687 deletions (-).
|
||||
|
||||
|
||||
Notations used below
|
||||
====================
|
||||
|
||||
+ means new feature/item
|
||||
* means modified feature/item
|
||||
- means removed feature/item
|
||||
|
||||
|
||||
New features and changes
|
||||
========================
|
||||
|
||||
Full list available at https://github.com/RIOT-OS/RIOT/milestone/37?closed=1
|
||||
|
||||
Core
|
||||
----
|
||||
|
||||
+ core/include/kernel_defines.h: add index_of() macro (#17142)
|
||||
+ core: Add IS_CT_CONSTANT() (#17273)
|
||||
+ core: add WITHOUT_PEDANTIC() and DECLARE_CONSTANT() (#17176)
|
||||
* core: Warn about using irq_enable (#17433)
|
||||
* core: make SCHED_TEST_STACK boolean and default to 1 with DEVELHELP (#17132)
|
||||
|
||||
System Libraries
|
||||
----------------
|
||||
|
||||
+ sys/architecture: add HAS_ALIGNMENT_OF() helper (#17177)
|
||||
+ sys/arduino: add assertion to gpio handling (#17443)
|
||||
+ sys/atomic_utils: add atomic_{load,store}_ptr() (#17256)
|
||||
+ sys/include/event/periodic: add count (#17276)
|
||||
+ sys/isrpipe: add isrpipe_write (#17336)
|
||||
+ sys/sched_rr: Add a round robin scheduler module (#16126)
|
||||
+ sys/stdio: add optional function stdio_available (#17446)
|
||||
+ sys/test_utils/result_output: add sort to multiple output check (#17269)
|
||||
+ sys/tsrb: add peek functions (#17266)
|
||||
+ sys/tsrb: add tsrb_clear (#17337)
|
||||
+ sys/ztimer: add 'ztimer_no_periph_rtt' (#17284)
|
||||
+ sys/ztimer: add some best practices (#17370)
|
||||
+ sys/ztimer: ztimer_now() add warning regarding comparing now() values (#17404)
|
||||
+ usb/hid: Add HID report descriptor defines (#17242)
|
||||
+ sys/arduino: add Serial over stdio support (#17447)
|
||||
+ sys: introduce sysclk function to retrieve core clock frequency (#17342)
|
||||
+ sys/new_delete: add malloc/free based new/delete implementation (#17464)
|
||||
* event/timeout: remove forced ZTIMER_USEC dependency (#16958)
|
||||
* riotboot_dfu: use ztimer instead of xtimer (#17051)
|
||||
* riotboot_serial: enter bootloader mode by pin (#17248)
|
||||
* schedstatistics: Convert to ztimer (#17216)
|
||||
* stdio_rtt: Convert to ztimer (#17122)
|
||||
* stdio_semihosting: Convert to ztimer (#17123)
|
||||
* sys/can: migrate to ztimer (#17366)
|
||||
* sys/cpp11-compat: use new/delete operators from sys/cpp_new_delete (#17475)
|
||||
* sys/evtimer: use now returned by set (#17394)
|
||||
* sys/fmt: make fmt_s32_dfp() string based (#17106)
|
||||
* sys/Makefile.dep: fix event periodic dependency (#17318)
|
||||
* sys/picolibc_syscalls_default: support new picolibc stdio globals (#17001)
|
||||
* sys/random: default to musl LCG instead of TinyMT (#17188)
|
||||
* sys/suit: adjust dependencies for CoAP transport (#17182)
|
||||
* sys/test_utils/result_output/json: optional space after symbol (#17034)
|
||||
* sys/turo: Allow default selection of json (#17039)
|
||||
* sys/ztimer/xtimer2ztimer.cocci: extend and fix api replacements (#17234)
|
||||
* sys/ztimer64: default select ztimer64_init (#17414)
|
||||
* sys/ztimer64: make _del_entry_from_list() safe for uninit ztimer64_t (#17368)
|
||||
* sys/ztimer: remove double ztimer indirection (#17272)
|
||||
* sys/ztimer: ztimer_remove report success (#17408)
|
||||
* usbus/cdc_acm: Return stall on line coding not supported (#17085)
|
||||
* usbus/hid: fix ep_out readiness (#17230)
|
||||
* usbus/hid: fix ep_out readiness (#17245)
|
||||
* usbus: Bind extra USB config (#17380)
|
||||
* usbus: check received setup request data amount (#17203)
|
||||
* sys/ztimer64: initial PR (#16928)
|
||||
|
||||
Networking
|
||||
----------
|
||||
|
||||
+ gnrc_pktbuf_cmd: add od dependency with gnrc_pktbuf_static (#17228)
|
||||
+ sys/net/dhcpv6: Add stateless DHCPv6 (#16731)
|
||||
+ sys/net: Add ipv4/ipv6 pseudomodules (#16966)
|
||||
+ sys/shell/sc_nimble_netif: add ping subcommand (#16539)
|
||||
* dsm: rename DTLS_PEER_MAX and make it dependent on
|
||||
CONFIG_DTLS_PEER_MAX (#16967)
|
||||
* gcoap_dtls: destroy session in _tl_send only on connection errors (#16963)
|
||||
* gnrc_dhcpv6_client / uhcp: delay router advertisements until prefix
|
||||
was received (#16755)
|
||||
* gnrc_gomach: adapt duty recording parameters' namings. (#8954)
|
||||
* gnrc_netif: move netdev initialization to ops->init (#16918)
|
||||
* lwip: bump to v2.1.3 (#16774)
|
||||
* net/gcoap: port to ztimer (#17141)
|
||||
* nimble/statconn: use errno return values (#17344)
|
||||
* pkg/lwip: Don't control IPv6 via IPv4 flag (#17175)
|
||||
* pkg/lwip: Fix dualstack build when only using 6lowpan (#17174)
|
||||
* pkg/openthread: bump version to 20200818 + adapt to use CMake to
|
||||
configure the build (#16948)
|
||||
* pkg/openthread: migrate to ztimer (#17120)
|
||||
* pkg/paho-mqtt: migrate to ztimer (#17143)
|
||||
* pkg/semtech-loramac: fix get/set dr command (#17117)
|
||||
* sys/evtimer,ztimer: do not depend on ztimer_now64 (#17357)
|
||||
* sys/net/gnrc: fix compilation with -Wcast-align (#17157)
|
||||
* sys/shell/gnrc_netif: Allow 'ifconfig help' (#17006)
|
||||
* test/ieee802154_hal: general cleanup and cosmetic fixes (#16913)
|
||||
* tests/lwip_sock: Take lock before calling etharp (#17145)
|
||||
* socket_zep: port to radio HAL (#16932)
|
||||
* ieee802154/hal: adapt to latest changes of #13943 (#16946)
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
+ pkg/lz4: add support for LZ4 compression/decompression (#17178)
|
||||
+ pkg/uzlib: add support for zlib compression/decompression (#17179)
|
||||
+ pkg: add support for Elk Tiny Javascript engine (#16887)
|
||||
+ pkg: add support for FreeRTOS coreJSON library (#16997)
|
||||
+ pkg/arduino_sdi_12: add SDI-12 for Arduino as package (#16587)
|
||||
* hacl: Switch git address to RIOT-OS-pkgmirror (#16941)
|
||||
* make: support package mirrors (#16927)
|
||||
* pkg/emlearn: bump to 0.12 (#16937)
|
||||
* pkg/jerryscript: bump to 2.4.0 (#16938)
|
||||
* pkg/mynewt-core/patches: silence cast-align (#17397)
|
||||
* pkg/qr-code-generator: bump to 1.7.0 (#16939)
|
||||
* pkg/uwb-core: fix wrong header include (#17345)
|
||||
* pkg/uwb-core: enable frame filtering, allow usage of common event thread (#17264)
|
||||
* pkg/wakaama: use ztimer (#17103)
|
||||
* pkg/arduino_sdi_12: support the remote-revb board (#17119)
|
||||
* pkg/fatfs: bump version to r0.14b (#16412)
|
||||
* Update tiny-asn1 package (#16936)
|
||||
* pkg/lvgl: use ztimer instead of xtimer (#17031)
|
||||
* pkg: migrate some packages to ztimer (#17309)
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
+ boards/feather-m0: add arduino feature (#17401)
|
||||
+ boards/iotlab-m3: add MTD definition (#17339)
|
||||
+ boards/nrf9160dk: add riotboot support (#17226)
|
||||
+ boards/nucleo-g431rb: added PWM configuration (#17030)
|
||||
+ boards/p-l496g-cell02: add riotboot feature (#17463)
|
||||
+ boards/stm32f469i-disco: Add DAC (#17214)
|
||||
+ boards/stm32g031-disco,examples,tests: Added STM32G031-DISCO board (#16959)
|
||||
+ boards: add board support for Alientek Pandora (#17259)
|
||||
+ boards: add support for stm32f746g-disco (#17198)
|
||||
* boards/common/microbit: fix doxygen grouping (#17440)
|
||||
* boards/esp* and cpu/esp: feature definition cleanup (#17438)
|
||||
* boards/lora-e5-dev: enable 3.3V and 5V output by default (#17158)
|
||||
* boards/lora-e5-dev: fix default DARWIN port (#17373)
|
||||
* boards/stm32f469i-disco: Create board (#16898)
|
||||
* boards/{calliope-mini,microbit*}: factorize common microbit module,
|
||||
use ztimer (#17124)
|
||||
* boards: cpu: replace GPIO_UNDEF by SPI_CS_UNDEF in SPI configuration (#17468)
|
||||
* boards: model nrf52 boards (#17299)
|
||||
* boards: unify user button defines (#17428)
|
||||
* tools/elf2uf2: addition of new PROGRAMMER for RPi-pico (#17348)
|
||||
|
||||
CPU
|
||||
---
|
||||
|
||||
+ Add some Rust building infrastructure and example (#16274)
|
||||
+ cpu/esp32: add clear bus during init to the I2C software
|
||||
implementation (#17346)
|
||||
+ cpu/nrf9160: add periph_flashpage support (#17225)
|
||||
+ cpu/stm32: Add hardening changes to stm32 (#16979)
|
||||
+ nimble_scanner: rework to enable scanning BLE5 PHYs and extended
|
||||
advertisements (#16843)
|
||||
+ nrf5x_common: Add qdec peripheral implementation (#17201)
|
||||
+ cpu/esp32: Add openocd programming support (#16911)
|
||||
+ cpu/stm32: add driver for the LTDC peripheral (#17437)
|
||||
+ cpu/stm32: add new usbdev FS support (#17281)
|
||||
+ cpu/stm32: add support for U5 family (#17410)
|
||||
* boards/common/esp8266: Set RTS and DTR to 0 on pyterm. (#16305)
|
||||
* cc2538_rf: remove RX Busy detection in request_set_trx_state (#16821)
|
||||
* cpu/arm7_common: suppress false positives of cppcheck (#17218)
|
||||
* cpu/atmega_common: make cppcheck happy (#17219)
|
||||
* cpu/atmega_common: Remember CTC mode with timer_periodic (#17387)
|
||||
* cpu/atxmega/include/cpu_conf: ztimer64 arithmetic idle stack fix (#17362)
|
||||
* cpu/cortexm_common: make CI happy (#17220)
|
||||
* cpu/esp32: make CI happy (#17221)
|
||||
* cpu/esp32: place freertos and periph in IRAM (#17087)
|
||||
* cpu/esp32: support CPU clocks 2 MHz and 40 MHz (#17413)
|
||||
* cpu/esp: change dynamic SSID option handling (#17415)
|
||||
* cpu/esp: migrate to ztimer (#17386)
|
||||
* cpu/kinetis/include: fix xtimer backend timer selection (#17393)
|
||||
* cpu/native/include: other stacksizes based on default (#16956)
|
||||
* cpu/native: migrate periph_rtc to ztimer (#17125)
|
||||
* cpu/qn908x: migrate ADC periph to ztimer (#17321)
|
||||
* cpu/sam0_common: SPI: don't perform DMA transfer for small buffers (#16926)
|
||||
* cpu/sam0_common: uart: set oversampling based on baud rate (#17186)
|
||||
* cpu/stm32/include/cpu_conf_stm32_common.h: fix typo in macro (#17187)
|
||||
* cpu/stm32: bump cmsis repositories to latest releases + extend CPU
|
||||
models kconfig (#17293)
|
||||
* cpu/stm32: duplicated ADC devices definitions (#16968)
|
||||
* cpu/stm32: migrate adc and eth periphs to ztimer (#17320)
|
||||
* cpu/stm32: split periph_cpu.h in sub headers (#17441)
|
||||
* cpu: do not auto-select ztimer_periph_rtt for sam0, fe310 (#17395)
|
||||
* drivers/periph: use uint_fast8_t as default type (#17191)
|
||||
* esp8266: Download Espressif RTOS SDK as a new RIOT PKG (#16425)
|
||||
* periph/flashpage: extend API (#16972)
|
||||
* periph/flashpage: fix wrong doxygen group (#17202)
|
||||
* stm32/usbdev: Use ztimer instead of xtimer (#17047)
|
||||
* cpu/esp: compile optional modules in CI (#17314)
|
||||
* cpu/stm32/wl: initial periph_adc implementation (#17183)
|
||||
* cpu/stm32: enable USB OTG FS on high end L4 (#17302)
|
||||
|
||||
|
||||
Device Drivers
|
||||
--------------
|
||||
|
||||
+ drivers/dose: enable standby pin (#16752)
|
||||
+ drivers/hm330x: initial commit (#16333)
|
||||
+ drivers: add PCF857X I2C I/O expander driver (#10430)
|
||||
+ drivers: only build saul interface if saul module is used + add
|
||||
saul_drivers test application (#17470)
|
||||
+ netdev: add netdev_register_signal (#16922)
|
||||
+ drivers/ft5x06: add support for touch panel controller (#17448)
|
||||
+ drivers/stmpe811: add spi mode (#17088)
|
||||
+ drivers/dose: make use of UART collision detection feature (#16681)
|
||||
* driver/at30tse75x: port to ztimer_usec (#17137)
|
||||
* drivers/ads101x: migrate to ztimer (#17102)
|
||||
* drivers/ata8520e: migrate to ztimer (#17105)
|
||||
* drivers/atwinc15x0: migrate to ztimer (#17381)
|
||||
* drivers/bmp180: migrate to ztimer (#17101)
|
||||
* drivers/dose: calculate timeout based on symbol rate (#16768)
|
||||
* drivers/dsp0401: migrate to ztimer (#17110)
|
||||
* drivers/mhz19: migrate to ztimer (#17308)
|
||||
* drivers/rn2xx3: migrate to ztimer (#17112)
|
||||
* drivers/sdcard_spi: convert to ztimer_usec (#17361)
|
||||
* drivers/stmpe811: improve interrupt callback management (#17487)
|
||||
* drivers/xbee: migrate to ztimer_msec (#17114)
|
||||
* drivers: migrate mpu9x50 and si70xx to ztimer (#17358)
|
||||
* drivers: migrate some drivers to ztimer (#17315)
|
||||
* drivers: remove some useless xtimer includes (#17303)
|
||||
* drivers: several cleanups related to xtimer + some ztimer migration (#17375)
|
||||
* makefiles: remove PCF857x pseudomodule definitions (#17343)
|
||||
* drivers/periph_common: build periph module selectively (#17418)
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
+ boards/lora-e5-dev: add warning in doc (#17185)
|
||||
+ doc/getting-started.md: added beginner friendly instructions (#17050)
|
||||
+ doc/rust: Add maintenance guidance (#17505)
|
||||
* boards/lora-e5-dev: extended documentation (#17244)
|
||||
* boards/stm32f746g-disco: extend documentation (#17310)
|
||||
* doc/.../getting-started.md: update software requirements (#17002)
|
||||
* doc/boards/rpi-pico: Addition of section concerning shell access (#17454)
|
||||
* doc: fix libcoap removal commit (#17378)
|
||||
* pkg/openwsn: update doc (#17131)
|
||||
* tools/zep_dispatch: document foren6 usage (#17326)
|
||||
* doc: fix missing or non matching arguments in Doxygen documentation (#17461)
|
||||
|
||||
Build System / Tooling
|
||||
----------------------
|
||||
|
||||
+ dist/tools/ci: add can_fast_ci_run.py (#17239)
|
||||
+ dist/tools/doccheck/exclude_patterns: add new warnings (#17104)
|
||||
+ dist/tools/doccheck: add create_pattern.sh (#17082)
|
||||
+ make: add info-emulated-boards helper target (#16975)
|
||||
+ Makefile.base: add SUBMODULES_NO_SRC to excluded a selected SUBMODULE
|
||||
*.c (#17222)
|
||||
+ tools/compile_and_test_for_board: apply black automatic code
|
||||
formatter + add format checker in tox (#16905)
|
||||
+ tools/insufficient_memory: add create_makefile.ci.sh and Makefile.ci
|
||||
make target (#16109)
|
||||
+ tools/pythonlibs/riotctrl_*: add code format check with black (#16915)
|
||||
+ tools/zep_dispatch: add support for foren6 sniffer (#16879)
|
||||
+ tools/zep_dispatch: add topology generator (#16889)
|
||||
+ makefiles/cflags.inc.mk: Add -Wcast-align (#14955)
|
||||
* cppcheck: output all annotations as error (#17134)
|
||||
* dist/tools/coccinelle/force: remove static.cocci (#17139)
|
||||
* Makefile.include: remove warning about EXTERNAL_MODULE_DIRS API
|
||||
change (#16984)
|
||||
* Makefile.include: rename Makefile.ci target to create-Makefile.ci (#17205)
|
||||
* makefiles/docker.inc.mk: pass TEST_KCONFIG (#17398)
|
||||
* murdock: make use of can_fast_ci_run.py (#17325)
|
||||
* static-tests: disable cppcheck (#17282)
|
||||
* tools/backport_pr: check code format with black (#16907)
|
||||
* tools: can_fast_ci_run.py: ignore comment changes for `\.[ch]$` (#17405)
|
||||
|
||||
Kconfig
|
||||
-------
|
||||
|
||||
+ cpu/avr8: model kconfig (#16929)
|
||||
+ cpu/efm32: model kconfig (#16912)
|
||||
+ cpu/esp: integrate CPU clock frequency selection in Kconfig (#17424)
|
||||
+ cpu/msp430: add Kconfig (#17290)
|
||||
+ cpu/nrf52: initial kconfig modeling (no netif) (#16837)
|
||||
+ cpu/nrf9160: add Kconfig dependencies (#17291)
|
||||
+ cpu/riscv: model Kconfig (#16909)
|
||||
+ makefiles/kconfig: add board & CPU config variables (#17376)
|
||||
+ pkg/uwb*: add Kconfig dependency modelling (#16780)
|
||||
+ sys/trace: migrate to ztimer and add Kconfig support (#17319)
|
||||
+ .murdock: Add modules/pkgs diff of make/kconfig (#17094)
|
||||
+ .murdock: Add nucleo boards to kconfig test (#16845)
|
||||
+ .murdock: Add same54-xpro to kconfig tests (#17255)
|
||||
* .murdock: Kconfig test apps for all boards (#17402)
|
||||
* boards/adafruit-itsybitsy-m4: Model kconfig (#17331)
|
||||
* boards/feather-m0*: base board definition in Kconfig (#17445)
|
||||
* boards/samd21-based: model Kconfig (#17355)
|
||||
* boards/saml21-based: model kconfig (#17270)
|
||||
* boards/stm32-based: model Kconfig (#17374)
|
||||
* cpu/esp{32,8266}: model kconfig (#17232)
|
||||
* cpu/kinetis: model kconfig (#17235)
|
||||
* cpu/lpc23xx: model kconfig (#17279)
|
||||
* cpu/nrf51: model kconfig (#17274)
|
||||
* cpu/qn908x: model kconfig (#17277)
|
||||
* cpu/{cc26xx, cc13xx}: model kconfig (#17236)
|
||||
* drivers/sx126x/Kconfig: rework model selection (#17289)
|
||||
* sys/benchmark/kconfig: cleanup ztimer dependency (#17317)
|
||||
* sys/log: model Kconfig (#17286)
|
||||
* sys/vfs: model Kconfig (#17287)
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
+ example/gcoap: add LWIP make option (#17130)
|
||||
* examples/gcoap: split client and server implementation (#17471)
|
||||
* examples/gnrc_networking_subnets: remove broken symlink (#17389)
|
||||
* examples/lorawan: use ztimer_msec if not rtc (#17181)
|
||||
* examples/gnrc_networking: cleanup and static function declarations in
|
||||
udp.c (#17384)
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
+ pkg/fff: Add fake functions framework package (#17076)
|
||||
+ murdock: add some doc on how to efficiently limit builds (#17312)
|
||||
+ tests/bench_ztimer: add port of bench_xtimer (#17391)
|
||||
+ tests/pkg_ucglib: add missing function declaration (#17347)
|
||||
* gh/workflows/release-tests: update LoRaWAN parameters to ttnv3 (#17009)
|
||||
* gha/workflows/release-test: set python version to 3.8 (#17038)
|
||||
* tests/*: Fix nightly failures due to f-string (#17283)
|
||||
* tests/malloc: fix counting bugs (#17323)
|
||||
* tests/periph_adc: migrate to ztimer (#17322)
|
||||
* tests/periph_timer_periodic: spice up test (#17388)
|
||||
* tests/unittests/tests-base64: enlarge test buffer for worst case (#17292)
|
||||
* test/pkg_u8g2: increase main stacksize for SDL (#16954)
|
||||
* tests/pkg_fatfs{_vfs}: drop whitelist (#17478)
|
||||
* Fix some cppcheck errors (#17271)
|
||||
|
||||
API Changes
|
||||
-----------
|
||||
|
||||
* core/kernel_defines.h: drop ALIGN_OF() (#17267)
|
||||
* core/kernel_defines: drop BUILD_BUG_ON() (#17268)
|
||||
* core/msg: make msg_avail() return 0 on no queue (#17262)
|
||||
* cpu: call cpu_init() from startup code, not from board (#16055)
|
||||
* drivers/periph_i2c: let i2c_acquire return void (#17275)
|
||||
* sys/ztimer: ztimer_set() return the now value (#17385)
|
||||
* USB: refactor to xmit-based API (#17064)
|
||||
|
||||
Deprecations
|
||||
============
|
||||
|
||||
Deprecations (2)
|
||||
----------------
|
||||
|
||||
* cpu/mips: deprecate mips cpu (#17304)
|
||||
* sys/include/xtimer.h: deprecate nanosleep (#17296)
|
||||
* sys/include/evtimer.h: deprecate evtimer_now_min (#17357)
|
||||
* usbdev/USBUS: deprecate transfer failure reporting report (#17046)
|
||||
|
||||
Removals (9)
|
||||
------------
|
||||
|
||||
- boards/fox: remove BOARD (#17021)
|
||||
- dist/iotlab: remove deprecated auto-ssh backward compatibility (#17476)
|
||||
- drivers/ethos: remove deprecated USE_ETHOS_FOR_STDIO define (#17499)
|
||||
- make: remove deprecation warnings raised with flasher tools old vars (#17490)
|
||||
- pkg/libcoap: remove (#17163)
|
||||
- sys/asymcute: remove deprecated CONFIG_ASYMCUTE_BUFSIZE_EXP (#17481)
|
||||
- sys/crypto: remove deprecated CIPHER_AES_128 (#17480)
|
||||
- sys/saul_reg: remove deprecated saul_reg_rm function (#17489)
|
||||
- sys/shell: remove deprecated SHELL_NO_{ECHO,PROMPT} defines (#17484)
|
||||
|
||||
Bug fixes (66)
|
||||
==============
|
||||
|
||||
* cpu/native: add `-no-pie` to LINKFLAGS (#16186)
|
||||
* boards/adafruit-clue: use internal RC oscillator (#17069)
|
||||
* boards/feather-m0-*: fix Arduino feature in Kconfig (#17444)
|
||||
* boards/nrf9160dk: fix LED macros (#17328)
|
||||
* boards/nucleo-g07xrb: fix or exclude some doxygen warnings (#17079)
|
||||
* boards/nucleo-g07xrb: fix or exclude some doxygen warnings [backport
|
||||
2021.10] (#17084)
|
||||
* boards/stm32f723e-disco: use connect_assert_srst with openocd (#17462)
|
||||
* boards/stm32f746g-disco: use connect_assert_srst with openocd (#17449)
|
||||
* boards/stm32f769i-disco: fix and cleanup default configuration (#17199)
|
||||
* cdc_ecm: Truncate frames at max ethernet size (#17200)
|
||||
* cpu/atmega1281: fix pcint (#17227)
|
||||
* cpu/esp*: small documentation fixes (#17456)
|
||||
* cpu/esp32: fix esp_wifi_enterprise compilation problem (#17306)
|
||||
* cpu/esp8266: fix problems with ESP WiFi and migration to ztimer (#17427)
|
||||
* cpu/esp8266: place freertos functions in IRAM (#17080)
|
||||
* cpu/esp: revert the change for default definition of ESP_WIFI_PASS (#17420)
|
||||
* cpu/esp_common: fix unaligned access in periph_flashpage (#17150)
|
||||
* cpu/native: align stack in thread_stack_init() (#17155)
|
||||
* cpu/sam0: prevent disabled irq from being called (#17007)
|
||||
* cpu/stm32/periph/usbdev: fix alignment issues (#17154)
|
||||
* cpu/stm32: clone cmsis header in build/stm32 (#17212)
|
||||
* dhcpv6_client: keep integers in retransmission calculations signed (#16992)
|
||||
* doc: fix the reference to libcoap removal commit in LOSTANDFOUND.md (#17371)
|
||||
* driver/css811: fix read status (#17340)
|
||||
* drivers/ccs811: fix of documentation (#17169)
|
||||
* drivers/dht: correct interpreting raw values (#16934)
|
||||
* drivers/dose: fix standby mode (#17184)
|
||||
* drivers/encx24j600: fix unaligned memory access (#17156)
|
||||
* drivers/lis3dh: fix unaligned memory access (#17149)
|
||||
* drivers/sx126x: fix sync word and TX PA configuration (#17138)
|
||||
* ethos: move bulk of state machine out of ISR context (#17265)
|
||||
* Fix NDEBUG compilation problems (#14364)
|
||||
* gnrc_ipv6_nib: queue packets that trigger probing on border router (#16947)
|
||||
* ieee802154 / tests/unittests: fix all-asan reported errors (#17329)
|
||||
* Makefile.base: cleanup non selected source object files (#16945)
|
||||
* Makefile.base: do not clean objects of bindist modules (#16981)
|
||||
* makefile.dep: require `arch_%` `cpu_core_%` features first (#17224)
|
||||
* murdock: don't run can_fast_ci_run if `FULL_BUILD==1` (#17495)
|
||||
* nimble: fix nimble_scanner regression bugs (#17334)
|
||||
* pkg/arduino_sdi_12: fix for the feather-m0 board (#17501)
|
||||
* pkg/ccn-ndn: migrate to ztimer (#17377)
|
||||
* pkg/littlefs{,2}: fix compilation with -Wcast-align (#17151)
|
||||
* pkg/nimble: version bump to fix broken scanning (#16960)
|
||||
* pkg/paho-mqtt: fix memory corruption (#17503)
|
||||
* pkg/relic: bump to current master (#17161)
|
||||
* pycrypto: use pycryptodome instead (#17107)
|
||||
* SECURITY.md: fix broken email reference (#17118)
|
||||
* shell/gnrc_icmpv6_echo: Fix hang with no msg queue (#17261)
|
||||
* sys/fido2: fix CBOR parsing (#17192)
|
||||
* sys/fido2: fix CBOR parsing [backport 2021.10] (#17193)
|
||||
* sys/net/dns: mark dns_hdr_t as packed (#17153)
|
||||
* sys/net/fib: fix compilation with -Wcast-align (#17194)
|
||||
* sys/net/gcoap: Use socket _buf API to recognize truncated requests (#16378)
|
||||
* sys/posix/socket: align struct sockaddr{,_storage} (#17152)
|
||||
* sys/posix/socket: use explicit bind (#16852)
|
||||
* sys/test_utils/result_output: fix turo_float() precision value (#17036)
|
||||
* sys/ztimer/kconfig: enable xtimer compat only with timer backend (#17307)
|
||||
* sys/ztimer: don't access non-existent timer (#17409)
|
||||
* sys/ztimer: don't default to rtc for ztimer_sec (#17113)
|
||||
* sys/ztimer: fix backend selection (#17372)
|
||||
* tests/socket_zep: fix automatic test (#17432)
|
||||
* tests/unittests: fix unaligned access (#17195)
|
||||
* tools/openocd: check OPENOCD_VERIFY after IMAGE_OFFSET is computed (#17251)
|
||||
* tools/zep_dispatch: forward based on source addr, not MAC addr (#16957)
|
||||
* turo: some json fixes (#17027)
|
||||
* usbus/dfu: fix underflow condition while updating firmware (#17128)
|
||||
|
||||
|
||||
Known issues
|
||||
============
|
||||
|
||||
Network related issues (53)
|
||||
---------------------------
|
||||
|
||||
* 6lo gnrc fragmentation expects driver to block on TX (#7474)
|
||||
* 6lo: RIOT does not receive packets from Linux when short_addr is set (#11033)
|
||||
* Address registration handling inappropriate (#15867)
|
||||
* app/netdev: application stops working after receiving frames with
|
||||
assertion or completely without error (#8271)
|
||||
* at86rf2xx: Dead lock when sending while receiving (#8242)
|
||||
* at86rf2xx: lost interrupts (#5486)
|
||||
* CC2538 RF overlapping PIN usage (#8779)
|
||||
* core: "Invalid read of size 4" (#7199)
|
||||
* cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861)
|
||||
* dist/tools/sliptty/start_network.sh: IPv6 connectivity is broken on
|
||||
PC (#14689)
|
||||
* driver/mrf24j40: blocks shell input with auto_init_gnrc_netif (#12943)
|
||||
* drivers/at86rf215: Incorrect channel number set for subGHz (#15906)
|
||||
* DTLS examples cannot send message to localhost (#14315)
|
||||
* Emcute cannot create a double-byte name (#12642)
|
||||
* ethernet: Missing multicast addr assignment (#13493)
|
||||
* ethos: fails to respond to first message. (#11988)
|
||||
* ethos: Unable to choose global source address. (#13745)
|
||||
* ethos: Unable to handle fragmented IPv6 packets from Linux kernel (#12264)
|
||||
* examples/cord_ep: Dead lock when (re-)registering in callback
|
||||
function (#12884)
|
||||
* examples/gnrc_border_router: esp_wifi crashes on disconnect (#14679)
|
||||
* Forwarding a packet back to its link layer source should not be
|
||||
allowed (#5051)
|
||||
* gcoap example request on tap I/F fails with NIB issue (#8199)
|
||||
* gcoap: Suspected crosstalk between requests (possible NULL call) (#14390)
|
||||
* General 802.15.4/CC2538 RF driver dislikes fast ACKs (#7304)
|
||||
* gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230)
|
||||
* gnrc_border_router stops routing after a while (#16398)
|
||||
* gnrc_icmpv6_echo: flood-pinging another node leads to leaks in own
|
||||
packet buffer (#12565)
|
||||
* gnrc_ipv6: Multicast is not forwarded if routing node listens to the
|
||||
address (#4527)
|
||||
* gnrc_rpl: missing bounds checks in _parse_options (#16085)
|
||||
* gnrc_rpl: nib route not updated when topology / DODAG changes (#17327)
|
||||
* gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389)
|
||||
* gomach: Resetting netif with cli doesn't return (#10370)
|
||||
* ieee802154_submac: IPv6 fragmentation broken (#16998)
|
||||
* LoRaWan node ISR stack overflowed (#14962)
|
||||
* lwip_sock_tcp / sock_async: received events before calling
|
||||
sock_accept() are lost due to race condition. (#16303)
|
||||
* Missing drop implementations in netdev_driver_t::recv (#10410)
|
||||
* net: netdev_driver_t::send() doc unclear (#10969)
|
||||
* netdev_ieee802154: Mismatch between radio ll address and in memory
|
||||
address (#10380)
|
||||
* nrf52: Not able to add global or ULA address to interface (#13280)
|
||||
* nrfmin: communication not possible after multicast ping with no
|
||||
interval (#11405)
|
||||
* openthread: does not build on current Arch (#10809)
|
||||
* ping6 is failing when testing with cc2538dk (#13997)
|
||||
* pkg/tinydtls: auxiliary data API does not work for async sockets (#16054)
|
||||
* Possible memory leak in RIOT/build/pkg/ndn-riot/app.c (#15638)
|
||||
* Riot-os freezes with lwip + enc28j60 + stm32L4 (#13088)
|
||||
* samr30 xpro doesn't seem to use its radio ok (#12761)
|
||||
* scan-build errors found during 2019.07 testing (#11852)
|
||||
* send data with UDP at 10HZ, the program die (#11860)
|
||||
* stale border router does not get replaced (#12210)
|
||||
* tests/lwip: does not compile for IPv4 on 6LoWPAN-based boards. (#17162)
|
||||
* two nodes livelock sending neighbor solicitations back and forth
|
||||
between each other (#16670)
|
||||
* Unclear how Router Solicitations are (or should be) handled (#15926)
|
||||
* xbee: setting PAN ID sometimes fails (#10338)
|
||||
|
||||
Timer related issues (15)
|
||||
-------------------------
|
||||
|
||||
* cpu/native: timer interrupt issue (#6442)
|
||||
* misc issues with tests/trickle (#9052)
|
||||
* MSP430: periph_timer clock config wrong (#8251)
|
||||
* periph/timer: `timer_set()` underflow safety check (tracking issue) (#13072)
|
||||
* periph_timer: systematic proportional error in timer_set (#10545)
|
||||
* saml21 system time vs rtc (#10523)
|
||||
* Sleep mode for Arduino (#13321)
|
||||
* stm32_common/periph/rtc: current implementation broken/poor accuracy (#8746)
|
||||
* sys/newlib: gettimeofday() returns time since boot, not current wall
|
||||
time. (#9187)
|
||||
* tests: xtimer_drift gets stuck on native (#6052)
|
||||
* xtimer mis-scaling with long sleep times (#9049)
|
||||
* xtimer: add's items to the wrong list if the timer overflows between
|
||||
_xtimer_now() and irq_disable() (#7114)
|
||||
* xtimer_set_msg: crash when using same message for 2 timers (#10510)
|
||||
* xtimer_usleep stuck for small values (#7347)
|
||||
* xtimer_usleep wrong delay time (#10073)
|
||||
|
||||
Drivers related issues (17)
|
||||
---------------------------
|
||||
|
||||
* (almost solved) SPI SD-Card driver: SPI initialisation freeze until
|
||||
timeout (#14439)
|
||||
* adc is not a ADC-Driver but a analog pin abstraction (#14424)
|
||||
* at86rf2xx: Simultaneous use of different transceiver types is not
|
||||
supported (#4876)
|
||||
* cpu/msp430: GPIO driver doesn't work properly (#9419)
|
||||
* driver/hts221: Temperature and Humidity readings incorrect (#12445)
|
||||
* ESP32 + DHT + SAUL reading two endpoints causes freeze. (#12057)
|
||||
* examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527)
|
||||
* fail to send data to can bus (#12371)
|
||||
* floats and doubles being used all over the place. (#12045)
|
||||
* mdt_erase success, but vfs_format resets board (esp32-heltec-
|
||||
lora32-v2) (#14506)
|
||||
* periph/spi: Switching between CPOL=0,1 problems on Kinetis with
|
||||
software CS (#6567)
|
||||
* periph: GPIO drivers are not thread safe (#4866)
|
||||
* Potential security and safety race conditions on attached devices (#13444)
|
||||
* PWM: Single-phase initialization creates flicker (#15121)
|
||||
* STM32: SPI clock not returning to idle state and generating
|
||||
additional clock cycles (#11104)
|
||||
* TCP client cannot send read only data (#16541)
|
||||
* Two bugs may lead to NULL dereference. (#15006)
|
||||
|
||||
Native related issues (6)
|
||||
-------------------------
|
||||
|
||||
* examples/ccn-lite: floating point exception while testing on native (#15878)
|
||||
* examples/micropython: floating point exception while testing on
|
||||
native (#15870)
|
||||
* native getchar is blocking RIOT (#16834)
|
||||
* native not float safe (#495)
|
||||
* native: tlsf: early malloc will lead to a crash (#5796)
|
||||
* SIGFPE on native architecture when printing double floats on Ubuntu
|
||||
21.04 (#16282)
|
||||
|
||||
Other platforms related issues (21)
|
||||
-----------------------------------
|
||||
|
||||
* Failing tests on FE310 (Hifive1b) (#13086)
|
||||
* [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763)
|
||||
* arm7: printf() with float/double not working (#11885)
|
||||
* boards/hifive1: flashing issue (#13104)
|
||||
* Cannot use LLVM with Cortex-M boards (#13390)
|
||||
* cpu/cortexm_common: irq_enable returns the current state of
|
||||
interrupts (not previous) (#10076)
|
||||
* cpu/sam0: flashpage write / read cycle produces different results
|
||||
depending on code layout in flash (#14929)
|
||||
* cpu/stm32f1: CPU hangs after wake-up from STOP power mode (#13918)
|
||||
* esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237)
|
||||
* esp8266 precompiled bootloaders don't support partitions past 1MB (#16402)
|
||||
* gcoap/esp8266: Stack overflow with gcoap example (#13606)
|
||||
* I found stm32 DMA periph driver bugs! when I tested stm32l431rc
|
||||
board. (#16242)
|
||||
* Incorrect default $PORT building for esp32-wroom-32 on macOS (#10258)
|
||||
* MIPS: toolchain objcopy doesn't work and no .bin can be generated (#14410)
|
||||
* MPU doesn't work on cortex-m0+ (#14822)
|
||||
* newlib-nano: Printf formatting does not work properly for some
|
||||
numeric types (#1891)
|
||||
* periph_timer: Test coverage & broken on STM32F767ZI (#15072)
|
||||
* riscv: ISR stack is too small for ENABLE_DEBUG in core files (#16395)
|
||||
* stm32152re: hardfault when DBGMCU_CR_DBG* bits are set and branch
|
||||
after __WFI() (#14015)
|
||||
* stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728)
|
||||
* sys/riotboot/flashwrite: unaligned write when skipping
|
||||
`RIOTBOOT_MAGIC` on stm32wb (#15917)
|
||||
|
||||
Build system related issues (14)
|
||||
--------------------------------
|
||||
|
||||
* `buildtest` uses wrong build directory (#9742)
|
||||
* `make -j flash` fails due to missing make dependencies or `make
|
||||
flash-only` rebuilds the .elf (#16385)
|
||||
* Build dependencies - processing order issues (#9913)
|
||||
* build: info-build doesn't work with boards without port set (#15185)
|
||||
* BUILD_IN_DOCKER ignores USEMODULE (#14504)
|
||||
* dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck
|
||||
1.89 (#12771)
|
||||
* doxygen: riot.css modified by 'make doc' (#8122)
|
||||
* LTO broken (binaries too large) (#16202)
|
||||
* macros: RIOT_FILE_RELATIVE printing wrong file name for headers (#4053)
|
||||
* make: ccache leads to differing binaries (#14264)
|
||||
* make: Setting constants on compile time doesn't really set them
|
||||
everywhere (#3256)
|
||||
* make: use of immediate value of variables before they have their
|
||||
final value (#8913)
|
||||
* Tracking: remove harmful use of `export` in make and immediate
|
||||
evaluation (#10850)
|
||||
* Windows AVR Mega development makefile Error (#6120)
|
||||
|
||||
Other issues (53)
|
||||
-----------------
|
||||
|
||||
* [TRACKING] sys/shell refactoring. (#12105)
|
||||
* _NVIC_SystemReset stuck in infinite loop when calling pm_reboot
|
||||
through shell after flashing with J-Link (#13044)
|
||||
* `make term` no longer works with JLinkExe v6.94 (#16022)
|
||||
* `make term` output is inconsistent between boards, `ethos` and
|
||||
`native` (#12108)
|
||||
* assert: c99 static_assert macro doesn't function for multiple
|
||||
static_asserts in the same scope (#9371)
|
||||
* Basic test for periph/rtt introduced in #15431 is incorrect (#15940)
|
||||
* boards/esp32-wroom-32: tests/mtd_raw flakey (#16130)
|
||||
* boards/saml11-xpro: second UART is broken (#17206)
|
||||
* Bug: openocd 0.10.0-6 Ubuntu dies while debugging with -rtos auto (#13285)
|
||||
* C++11 extensions in header files (#5561)
|
||||
* Can't build relic with benchmarks or tests (#12897)
|
||||
* CC2538DK board docs: broken links (#12889)
|
||||
* cpu/stm32/periph/rtc overflow error (#16574)
|
||||
* cpu/stm32: some tests are failing on CM33 (l5, u5) (#17439)
|
||||
* doc/LOSTANDFOUND: not rendered as expected (#17063)
|
||||
* edbg: long lines flooded over serial become garbled (#14548)
|
||||
* examples / tests: LoRa tests fail on platforms that don't support
|
||||
LoRa (#14520)
|
||||
* File systems report names with leading slashes (#14635)
|
||||
* flashing issue on frdm-k64f (#15903)
|
||||
* frdm-k22f failing tests/periph_flashpage (#17057)
|
||||
* gcoap_dtls: Selecting transport at run time is not possible (#16674)
|
||||
* I2C not working under RIOT with U8G2 pkg (#16381)
|
||||
* ieee802154_security: Nonce is reused after reboot (#16844)
|
||||
* lwip: drivers/at86rf2xx/at86rf2xx_netdev.c invalid state during TCP
|
||||
disconnect (#17209)
|
||||
* lwip: invalid state transition on ieee802154_submac users (#17208)
|
||||
* Making the newlib thread-safe (#4488)
|
||||
* mcuboot: flashes but no output (#17524)
|
||||
* nanocoap: incomplete response to /.well-known/core request (#10731)
|
||||
* newlib-nano: Printf formatting does not work properly with `"PRIu8"` (#17083)
|
||||
* Order of auto_init functions (#13541)
|
||||
* pkg/tinydtls: Multiple issues (#16108)
|
||||
* Possible memset optimized out in crypto code (#10751)
|
||||
* Potential race condition in compile_and_test_for_board.py (#12621)
|
||||
* pyterm on stdio_cdc_acm stops working after a few seconds (#16077)
|
||||
* RIOT cannot compile with the latest version of macOS (10.14) and
|
||||
Xcode 10 (#10121)
|
||||
* RIOT is saw-toothing in energy consumption (even when idling) (#5009)
|
||||
* riotboot/nrf52840dk: flashing slot1 with JLINK fails (#14576)
|
||||
* scheduler: priority inversion problem (#7365)
|
||||
* sys/fmt: Missing tests for fmt_float, fmt_lpad (#7220)
|
||||
* sys/riotboot: documentation issues (#11243)
|
||||
* sys/stdio_uart: dropped data when received at once (#10639)
|
||||
* tests/cpp11_*: failing on i-nucleo-lrwan1 (#14578)
|
||||
* tests/lwip target board for python test is hardcoded to native (#6533)
|
||||
* tests/periph_flashpage: failing on stm32l475ve (#17280)
|
||||
* tests/pkg_libhydrogen: test fails on master for the samr21-xpro with
|
||||
LLVM (#15066)
|
||||
* tests/pkg_tensorflow-lite: tests randomly failing on nrf52dk and
|
||||
esp32-wroom-32 (#13133)
|
||||
* tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888)
|
||||
* tests/thread_float: crashes on avr-rss2 (#16908)
|
||||
* tests: broken with stdio_rtt if auto_init is disabled (#13120)
|
||||
* tests: some tests don't work with `newlib` lock functions. (#12732)
|
||||
* Tracker: Reduce scope on unintended COMMON variables (#2346)
|
||||
* usb-serial/list-ttys.sh: Broken when a debugger offers multiple
|
||||
serial ports (#15814)
|
||||
* Use of multiple CAN bus on compatible boards (#14801)
|
||||
|
||||
There are 179 known issues in this release
|
||||
|
||||
Fixed Issues since the last release (2021.10)
|
||||
=============================================
|
||||
|
||||
- sx127x: wrong RSSI values (#17451)
|
||||
- drivers/aip31068: initialization fails in most cases when using
|
||||
esp_i2c_sw (#17311)
|
||||
- cpu/esp32: esp_wifi_enterprise compilation error (#17305)
|
||||
- ethos: race condition seems to cause packet loss (#17254)
|
||||
- tests/lwip_sock_ip: failing on `native` when using IPV4 (#17144)
|
||||
- Sam boards: isr_eic call all IRQ raised without taking into account
|
||||
their status (enabled/disabled) (#16978)
|
||||
- esp8266: Hangs when erasing spi sector on mtd0 if using esp_wifi (#16281)
|
||||
- esp32: can't use newer C++ standard than c++11 (#15685)
|
||||
- tests/mpu_noexec_ram: fails on i-nucleo-lrwan1 (#14572)
|
||||
- Different build behavior between `murdock` and
|
||||
`riot/riotbuild:latest` image (#9645)
|
||||
- pkg: libcoap is partially broken and outdated (#7737)
|
||||
|
||||
11 fixed issues since last release (2021.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
|
||||
|
||||
|
||||
Matrix and Forum
|
||||
================
|
||||
* 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.
|
||||
|
||||
|
||||
|
||||
RIOT-2021.10 - Release Notes
|
||||
============================
|
||||
RIOT is a multi-threading operating system which enables soft real-time
|
||||
|
Loading…
Reference in New Issue
Block a user