登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情~
代码拉取完成,页面将自动刷新
开源项目
>
工业软件
>
IOT/物联网/边缘计算
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
14
Star
48
Fork
14
Gitee 极速下载
/
riot-os
代码
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
标签
标签名
描述
提交信息
操作
2026.07-devel
Development branch towards 2026.07 release
a897b04
2026-04-07 04:43
下载
2026.04-RC1
a897b04
2026-04-07 04:43
下载
2026.01
RELEASE 2026.01 RIOT-2026.01 "GroundhogLoop" - 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 ================== Here are some highlights of the 2026.01 "GroundhogLoop" release: - You can hack with RIOT on some new hardware! We now support yet another ESP32-C3-based board: The [Seeed Studio Xiao ESP32-C3](https://api.riot-os.org/group__boards__seeedstudio-xiao-esp32c3.html) with WiFi and Bluetooth capabilities, and a tiny form factor (#21829). RIOT can now also drive the GP8XXX family of voltage and current DACs (#21182), as well as the PMW3901 and PAA5100JE optical flow sensors (#21856). - RIOT developers now have a better way to interact with the system time via the `walltime` module (#21343). This enables writing applications independently of the RTC peripheral, as well as subscribing to time changes. Check out the [module documentation](ttps://api.riot-os.org/group__sys__walltime.html). - RIOT's build system now allows modules that use event threads to declare special stack size requirements without conflicting with other modules (#21941). For details on how to use this for your modules, visit the [documentation page](https://api.riot-os.org/sys_2include_2event_2thread_8h.html). - When accessing crypto primitives via the PSA API, monocypher's Ed25519 is now the default software backend, providing a much faster implementation out of the box (#21821). - Given the success and steady growth of our new guide site, it can now be accessed directly via https://doc.riot-os.org/, while RIOT's API documentation (Doxygen) is still available at https://api.riot-os.org/ (#21968). - Nanocoap has undergone some work to decouple its API from UDP, with the ultimate goal of easily supporting other transports in the future. Make sure to check the latest version of [the documentation](https://api.riot-os.org/group__net__nanocoap.html), as some breaking changes have been made (#20900). 135 pull requests, composed of 250 commits, have been merged since the last release, and 6 issues have been solved. 28 people contributed with code in 64 days. 1551 files have been touched with 15841 (+) insertions and 11952 deletions (-). Notations used below ==================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- * core/lib/clist: fix example of clist_foreach usage in docs (#21848) System Libraries ---------------- + sys/psa_crypto: add monocypher as ed25519 software backend (#21822) + sys/walltime: add module for system time (#21343) + sys/ztimer/xtimer_compat: provide more fallback options (#20494) * sys/event: manage event thread size via build system (#21941) * sys/psa_crypto: unify buffer size size handling for ed25519 backends (#21821) * sys/suit: write size in suit_worker_try_prepare() (#21913) * sys/usb/cdc_acm, sys/tsrb: speedup usb_cdc ringbuffer handling (#21788) * sys/usb/cdc_acm: don't generate flush event when disconnected (#21914) Networking ---------- + gnrc, nimble/ble: notify network layer of BLE connection events (#21608) + gnrc/rpl: float DODAG during local repair (#21816) + pkg/lwip: add LWP_IP4_ADDR_INIT macro (#21969) + sys/shell: add shell wrapper for openthread cli (#21862) * nanocoap: use default blocksize2 in coap_block2_init() (#21952) Boards ------ + boards/seeedstudio-xiao-esp32s3: Add Initial Support [new PR] (#21829) * boards/nucleo-wl55jc, cpu/stm32: enable RTC support, increase RTC accuracy (#21837) * boards: migrate ESP32 based boards to common board module system (#21835) * boards: use boards.h to indicated UF2 bootloader usage (#21956) CPU --- + cpu/native: introduce periph_i2c_mock (#20430) * cpu/esp32: fix compilation for GCC 15.2 on ESP32x RISC-V SoCs (#22017) * cpu/native,core: better contain ugly hacks (#21955) * cpu/sam0_common: clear tamper wake on `gpio_irq_disable()` (#21846) * cpu/{sam0_common,stm32}: Provide SVD_VENDOR and SVD_MODEL (#21872) * dist/tools/PyCortexMDebug: Integrate GDB extension into RIOT (#21863) * treewide: remove various deprecated macros and functions (#21985) Device Drivers -------------- + drivers/gp8xxx: add initial support (#21182) + drivers/paa5100je: support for the PAA5100JE and PMW3901 optical flow sensors (#21856) * drivers/slipdev: Refactor parser state machine for readability (#21953) Documentation ------------- + doc/guides/advanced_tutorials: added event queue guide (#21899) + doc/guides: Add FileTree to Create Project Guide (#21948) + doc/starlight: add SECURITY.md (#21983) + .well-known/security.txt: Implement RFC 9116 ([riot-os.org #156](https://github.com/RIOT-OS/riot-os.org/pull/156)) * dist/tools,doc/doxygen: use `doc-ci` in the doccheck if possible, update to Doxygen 1.15.0 (#21372) * doc/doxygen: remove deprecated pages (#21934) * doc/guides: document DOCKER_IMAGE environment variable (#21916) * doc/starlight: remove copy folder hacks (#21944) * doc: migrate file trees in guides to starlight TreeView component (#21946) * doc: reorder some drivers (#21943) * doc: use https://api.riot-os.org for API doc (#21968) * guides/build-system: document more targets (#21925) Build System / Tooling ---------------------- + dist/tools/zsh-completion: Add completion for DOCKER_IMAGE and OPENOCD_FTDI_ADAPTER (#21860) + tests/unittests: allow out-of-tree tests (#21328) * build: allow external module dirs with the same name when not building in Docker (#21933) * dist/tools/dlcache: make script more portable (#21924) * dist/tools/edbg: bump version (#21858) * dist/tools/ethos: fix minor code quality issues (#21979) * dist/tools/tunslip: fix some minor code quality issues (#21977) * dist/tools/vera++: allow comments to be overlong (#21671) * makefiles/utils/test: remove explicit dependency on bash (#21917) Examples -------- + examples/lwip_ipv4: add example for LWIP IPv4 client/server (#21519) Testing ------- * tests/net: use random, free port for socket_zep&gnrc_netif_ieeee802154 (#21853) API Changes ----------- * drivers: rename ads101x driver to ads1x1x (#21731) * sys/net/*coap: Make APIs (more) transport agnostic (#20900) Uncategorized ------------- + CODING_CONVENTIONS: add Section on Conditional Compilation (#21950) + release-notes.txt: add 2025.10 release notes (#21929) * .gitattributes: mark package-lock.json as binary (#21945) And 26 minor changes. Deprecations ============ Bug fixes (52) ============== * core/lib/atomic_c11: Add __atomic_test_and_set() (#21883) * pkg/mpaland-printf: Add missing wrapper for fputs (#21889) * pkg: Add `-DCMAKE_POLICY_VERSION_MINIMUM=3.5` to cmake flags (#21839) * pkg: Always add mandatory GITAMFLAGS (#21841) * board/esp32-ttgo-t-beam: small fixes (#21991) * boards/common/stm32: make stm32wl.cfg version agnostic (#21873) * build-system: fix RIOTBOOT_SKIP_COMPILE (#21938) * core/thread_flags_group: use portable implementation (#21895) * cpu/esp32/esp-idf: fix of a memory leak when using esp-now (#21975) * cpu/esp32: fix 6LoWPAN over BLE issue for ESP32-C3 (#21988) * cpu/esp32: fix esp_wifi stability problem by placing wdt_hal_* functions in IRAM (#21980) * cpu/esp32: fix of a serious memory leak when using `esp_wifi` on ESP32-S3 (#21974) * cpu/esp32: small doc fix (#21972) * cpu/esp8266: Fix crashes of the ESP866 when rebooting with or disconnecting from WiFi (#22014) * cpu/esp8266: fix the crashes on startup in vendor code (#22010) * cpu/esp_common: fix FreeRTOS rmutex handling (#21926) * cpu/native: fix lockup on libucontext (#21915) * cpu/native: implement fputs and fwrite (#21912) * cpu/nrf5x_common: copy vendor files only when newer (#21868) * cpu/sam0_common/periph_i2c: reliably unstuck bus (#21891) * doc/guides/emulators: fix title headings (#21875) * doc/starlight: fix edit link for generated documents (#21987) * drivers/abp2: faulty saul init for multiple abp2 devices (#21852) * drivers/at86rf215: re-enable RPC when TX is done (#21849) * drivers/atwinc15x0: fix a potential buffer overflow on stack (#22041) * drivers/motor_driver: fix accidental braking (#21847) * drivers/mrf24j40: replace && with || in TX power validation (#21904) * drivers/periph/i2c: Replace LaTeX formula with static SVG file in documentation (#21876) * drivers/sdmmc: fix stall in _disable_sd_clk (#21930) * drivers/sx126x: fix compilation for sx126x_dio3 (#21911) * drivers/sx126x: fix hardware detection on init (#21850) * drivers/sx126x: improve hardware detection (#21905) * gnrc_ipv6_ext_frag: fix some corner cases (#21937) * gnrc_sixlowpan_frag_sfr: check length before dispatching (#22027) * LICENSES: fix LGPL license text (#21864) * makefiles/tools/openocd-adapters: let OpenOCD auto-select transport (#21871) * pkg/cn-cbor: fix unaligned access (#21880) * pkg/lvgl: Fix configuration header and compilation issue (#22005) * pkg/lwip: fix dependencies when LWIP IPv4 and LWIP_DHCP is used (#21869) * pkg/tinydtls: various bugfixes (#21827) * rust: Update riot-sys selectively to fix C2Rust incompatibility (#21867) * SECURITY.md: Update public PGP key (#21981) * static-test: Check for Makefile.dep touching CFLAGS (#21965) * sys/event: fix stack size requirement build system integration (#21957) * sys/net/gnrc/netif: hold packets after tx_sync split (#21855) * sys/usb/cdc_acm: fix garbage input when disconnected (#21890) * tests: fix SPDX license tags (#21909) * tests: gnrc_ipv6_ext_frag: various fixes (#21935) Known issues ============ Network related issues (54) --------------------------- * 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) * cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861) * DHCPv6 client: Handling of NotOnLink incorrect (#20349) * 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 handle fragmented IPv6 packets from Linux kernel (#12264) * example/gnrc_border_router cannot answer after some time (#19578) * 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) * Global IPv6 addresses remain deprecated after receiving RA (#19846) * gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230) * gnrc/ipv6: "invalid payload length" - corrupted IPv6 header when ENABLE_DEBUG=1 in mbox.c (#20390) * gnrc_border_router stops routing after a while (#16398) * gnrc_border_router: Kconfig and C disagree about number of addresses per interface (#19947) * 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_netif_pktq leaks memory (#17924) * gnrc_rpl: missing bounds checks in _parse_options (#16085) * gnrc_rpl: nib route not updated when topology / DODAG changes (#17327) * gnrc_rpl: takes unusually long time to start routing packets (#19147) * gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389) * gnrc_tcp: gnrc_tcp_recv() never generates -ECONNABORTED (#17896) * ieee802154_submac: IPv6 fragmentation broken (#16998) * LoRaWan node ISR stack overflowed (#14962) * LWIP TCP Communication Error (#19676) * lwip, submac: deadlock on user transmission (#21843) * 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) * Neighbor Discovery not working after router reboot when using SLAAC (#11038) * 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) * ping6 is failing when testing with cc2538dk (#13997) * pkg/lwip: race condition (data loss) in async connection setup (#21874) * pkg/tinydtls: auxiliary data API does not work for async sockets (#16054) * Removing a TNT global address then adding a new one does not work (#20318) * samr30 xpro doesn't seem to use its radio ok (#12761) * scan-build errors found during 2019.07 testing (#11852) * stale border router does not get replaced (#12210) * test/lwip: enabling both, IPv4 and IPv6, results in unexpected behavior (#18097) * 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) * xbee: setting PAN ID sometimes fails (#10338) Timer related issues (5) ------------------------ * misc issues with tests/trickle (#9052) * 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) * sys/newlib: gettimeofday() returns time since boot, not current wall time. (#9187) Drivers related issues (14) --------------------------- * at86rf2xx: Simultaneous use of different transceiver types is not supported (#4876) * cpu/msp430: GPIO driver doesn't work properly (#9419) * drivers/at86rf215: not returning RX/IDLE after a while of operation with RPL/UDP (#21685) * drivers/at86rf215: The activation of the address match interrupt is missing in the at86rf215_reset function (#20505) * drivers/mpu9x50: regression (#21663) * examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527) * fail to send data to can bus (#12371) * 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) * 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) * tests/periph_flashpage: unexpected behavior on nucleo-l4r5zi (#17599) Native related issues (5) ------------------------- * examples/micropython: floating point exception while testing on native (#15870) * native not float safe (#495) * native: tlsf: early malloc will lead to a crash (#5796) * VFS_READ show correct data on every SECOND request only (#21470) * ztimer doesn't wake up on native if the pm_layered module is used (#21083) Other platforms related issues (12) ----------------------------------- * Failing tests on FE310 (Hifive1b) (#13086) * [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763) * boards/hifive1: flashing issue (#13104) * cpu/sam0: flashpage write / read cycle produces different results depending on code layout in flash (#14929) * esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237) * gcoap/esp8266: Stack overflow with gcoap example (#13606) * Interrupt callback function is instantly called on samd51 after setting it from within interrupt callback function (#19861) * 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) * stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728) Build system related issues (7) ------------------------------- * Build dependencies - processing order issues (#9913) * dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck 1.89 (#12771) * EXTERNAL_MODULE_DIRS silently ignores non-existent entries (#17696) * Kconfig: Unable to set Kconfig boolean variables with default true to false (#21785) * make: ccache leads to differing binaries (#14264) * make: use of immediate value of variables before they have their final value (#8913) * makefiles: `make term` does not print `stderr` output of child process. (#21808) Other issues (74) ----------------- * [nRF5x] `periph_uart` unreliable with GCC 9.3.1 (#21842) * [tracking] Bugs found by the peripheral selftest (#20071) * [Tracking] Failures found with testing on real hardware for release (#21882) * [Tracking] Fix failures of test-on-iotlab (#20791) * [TRACKING] sys/shell refactoring. (#12105) * [tracking] unnecessary use of floating point arithmetic (#19614) * _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) * at86rf215 stops receiving until sending a packet (#19653) * b-l072z-lrwan1: tests/ztimer_overhead: test failure (#19224) * backport_pr: Only works for when fork is in user (not in organization) (#18486) * benchmark_udp: hammering with low interval causes issues (#16808) * boards/esp32-wroom-32: tests/mtd_raw flakey (#16130) * Builds fail when different execstack options are around in objects (#18522) * Can't build relic with benchmarks or tests (#12897) * CC2538-CC2592EM has a very weak transmit power (#17543) * cpp: Exception handling undefined (#17523) * cpu/stm32: some tests are failing on CM33 (l5, u5) (#17439) * doc/boards: information concerning access to RIOT shell (#17453) * doxygen: CSS hack to hide doc breaks on older browsers (#21312) * edbg: long lines flooded over serial become garbled (#14548) * examples / tests: LoRa tests fail on platforms that don't support LoRa (#14520) * examples/gcoap: client broken (#19379) * flashing issue on frdm-k64f (#15903) * frdm-k22f failing tests/periph_flashpage (#17057) * frdm-k22f fails tests/periph_timer (#19543) * Freeze into semtech_loramac_send call (pkg/semtech-loramac) (#18790) * gcoap: gcoap_req_send and related should return negative for errors (#19393) * gnrc_ipv6_nib: Neighbor Solicitation ping-pong (#18164) * I2C Crashes Kernel on Raspberry Pi Pico (#21187) * ieee802154_security: Nonce is reused after reboot (#16844) * kconfiglib.py choice override of menuconfig bug (#19069) * LVGL tests produce unaligned code, fail to build (#20110) * 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) * MTD is confusing (#17663) * openDSME example application does not work reliable out of the box with nRF52840 MDK Dongles (#21922) * Order of auto_init functions (#13541) * periph_rtt: rtt_set_alarm() blocks IRQ for 80 plus usec on STM32 (#19520) * pkg/tinydtls: Multiple issues (#16108) * Potential race condition in compile_and_test_for_board.py (#12621) * RIOT is saw-toothing in energy consumption (even when idling) (#5009) * riotboot: ECC faults (eg. in STM32L5 or STM32WB) not handled gracefully (#17874) * rpl, rpble: handle closed connection to parent(s) (#21574) * rust-gcoap example is incompatible with littlefs2 (#17817) * Samr30/gpio: Erasing then write mux can generate spurious IRQ (#19993) * samr34-xpro: some tests failing (#19223) * sock_dtls: unable to send big messages (#17996) * spurious IRQs in `periph_timer` (#18976) * stdio UART input truncated (#21564) * stdio_ethos: infinite shell loop (#17972) * stdio_tinyusb_cdc_acm hangs with picolibc (#19277) * STM32 Nucleo boards improperly clocked (#19778) * STM32F4-discovery + mrf24j40 not working (#19711) * sys/riotboot: documentation issues (#11243) * sys/usb/usbus/cdc/ecm: interface thread blocked when connected host interface is down (#21098) * tests/lwip target board for python test is hardcoded to native (#6533) * tests/periph_flashpage: failing on stm32l475ve (#17280) * tests/pkg/relic is failing on samr21-xpro when built using llvm (#19903) * tests/pkg_libhydrogen: test fails on master for the samr21-xpro with LLVM (#15066) * tests/pkg_libschc: Failing test_reassemble_success_ack_always (#19445) * tests/riotboot does not pass on iotlab-m3 (#22006) * tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888) * tests: broken with stdio_rtt if auto_init is disabled (#13120) * tests: some tests don't work with `newlib` lock functions. (#12732) * tracking: failing tests with stdio_cdc_acm (#21231) * Types in `byteorder.h` need a cleanup (#14737) * USB identifiers with funny characters create mojibake (#17776) * usbus/msc: wrong error handling and behavior after usb reset (#19478) * Use of multiple CAN bus on compatible boards (#14801) * ztimer is incompatible with real-time requirements (#18883) * ztimer_periodic: occasional lockups (#21374) There are 171 known issues in this release Fixed Issues since the last release (2025.10) ============================================= - esp32s2: `xQueueGenericCreate()` fails assertion due to failed `malloc()` after ~2h (#21923) - esp32*: esp_now: failed assertion in xSemaphoreTakeRecursive() when switching channel (#21919) - esp8266 crashes on WiFi disconnect (#21558) - gnrc_rpl: old routes are not deleted (#19423) - examples/gnrc_border_router: esp_wifi_init failed with return value 257 on ESP32-C3 with nimble_rpble (#19319) - add periph_rtc to STM32WL cpu and boards (#18789) - gomach: Resetting netif with cli doesn't return (#10370) 7 fixed issues since last release (2025.10) Acknowledgements ================ We would like to thank all companies that provided us with hardware for porting and testing RIOT. 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 Discussions =========== * Join the RIOT Matrix room at: #riot-os:matrix.org * Join the RIOT Forum at: forum.riot-os.org * Follow us on Mastodon: floss.social/@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.
b4400f6
2026-02-10 06:02
下载
2026.01-RC3
68003c9
2026-01-31 02:58
下载
2026.01-RC2
fdbe154
2026-01-26 16:31
下载
2026.04-devel
Development branch towards 2026.04 release
d8545ea
2026-01-15 18:11
下载
2026.01-RC1
d8545ea
2026-01-15 18:11
下载
2025.10
RELEASE 2025.10 RIOT-2025.10 "OCT31 == DEC25" - 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 2025.10 release includes: - The new XIPFS filesystem module allows executing code from memory-mapped flash on supported platforms. - Support for the ESP32-C6 RISC-V WiFi MCU was added. - Nearly all of the guides were migrated, adapted or rewritten to the [new guide site](https://guide.riot-os.org/). - You can now also read all RIOT release notes [directly on the guide site, outside of Github](https://guide.riot-os.org/changelog/). - NanoCoAP server will no longer copy requests to an internal buffer for processing, instead it operates directly on the network buffer, eliminating the case of 'too large' requests. - The new `hosts` module allows to statically assign hostnames to IP addresses, similar to `/etc/hosts` on UNIX. - The `u8g2` package now implements the `disp_dev`, meaning e.g. LVGL can now be used on all displays supported by `u8g2`. - Support for more members of the STM32C0 family was added. - Initial support for the RP2350. 180 pull requests, composed of 411 commits, have been merged since the last release, and 16 issues have been solved. 31 people contributed with code in 121 days. 3372 files have been touched with 51234 (+) insertions and 205847 deletions (-). Notations used below ==================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- + core/log: add optional log unit prefix (#21606) System Libraries ---------------- + makefiles/suit: add `SUIT_GEN_PUBKEY` variable to inhibit public key generation (#21666) + pkg/lvgl: support monochrome displays via u8g2 (#21726) + pkg/u8g2: implement `disp_dev` (#21725) + pkg/xipfs: add XIPFS as vfs module (#21569) + sys/psa_crypto: Extend mac API (#21621) + sys/shell/cmds: add MTD command from `mtd_raw` test (#21489) + sys/suit: add suit_get_public_key() (#21560) + tests/unittests: add test for bit.h (#21749) * benchmark_udp: improve rtt record buffering (#21712) * sys/can: improve SJW calculation (#21756) Networking ---------- + drivers/sx126x add optional CONFIG_SX126X_DEFAULT_SYNC_WORD (#21711) + drivers/sx126x: add support for Dio2 and Dio3 (#21684) + drivers/sx126x: bind PA config to output power (#21687) + nanocoap: add coap_iterate_uri_query() (#20197) + net/hosts: add module for static hostname definitions (#21397) * drivers/sx126x: configure tx clamp for sx1262 (#21710) * drivers/sx126x: image calibration after frequency change (#21713) * gnrc/ipv6/nib: clean up `gnrc_ipv6_nib_get_next_hop_l2addr()` (#21454) * gnrc/ipv6/nib: improve debug output, declutter code (#21256) * gnrc/rpl/control_messages: refactor `gnrc_rpl_recv_DIO` (#21577) * gnrc/rpl: switching between DODAGs (#21759) * nanocoap_server: use zero-copy network buffer for parsing request (#21652) * pkg: replace header guards with #pragma once (#21701) Packages -------- * dist/tools: Move `picosdk` to `pkg` folder, improve `picotool.sh` script (#21629) * pkg/flashdb: Bump to v2.1.1 (#21820) * pkg/littlefs2: bump version to v2.11.2 (#21751) * pkg/{c25519,driver_cryptocell_310}: use dlcache for fetching zip archives, update `pkg/Makefile.http` example (#21813) Boards ------ + boards/nucleo-f303k8: add board pinout (#21802) + boards: add Arduino Nano ESP32 board (#21656) + boards: add STM32C0116-DK and STM32C0316-DK [new PR] (#21776) + boards: Bitcraze Crazyflie 2.1 main application board support (#21689) + cpu, boards: add new STM32C0 and NUCLEO-C071RB [new PR] (#21775) + CPU/Boards: Add Raspberry Pi Pico 2 (RP2350) support (#21545) + cpu/esp32: add ESP32-C6 support (#21616) + cpu/stm32/usbdev_fs: allow inverted disconnect GPIO (#21718) + feather-m0: add support for saul_bat_voltage (#21022) * boards: move licenses from headers to SPDX format (part3) (#21627) * boards: move licenses from headers to SPDX format (part4) (#21632) * examples/networking/gnrc: remove gnrc prefix from folder names (#21826) CPU --- + ieee802154/submac: add automatic ACK transmission when AUTO_ACK is not supported by driver (#21533) * build system: use thread-safe stdio (#21438) * cpu/nrf52: Update nRF52* Vendor Header Files (#21739) * cpu/nrf5x: Pull Vendor Header Files from External Repository (#21800) * cpu/stm32/genkconfig: move script licence and templates to SPDX (#21768) * cpu: move licenses from comments to SPDX format (part1) (#21704) * cpu: move licenses from comments to SPDX format (part2) (#21715) * cpu: move licenses from comments to SPDX format (part3) (#21732) * cpu: move licenses from comments to SPDX format (part4) (#21747) * cpu: move licenses from comments to SPDX format (part5) (#21758) * makefile/tools/esptool: cleanup including version update to 5.0.0 (#21619) Device Drivers -------------- * drivers/ds18: move to ztimer (#21804) Documentation ------------- + doc/guides: Add Section about Creating a Common Board Directory (#21764) + doc/guides: add STM32 Flashing Guide (#21767) + doc/guides: Add Timer Information to `Porting Boards` Guide (#21795) + doc/starlight: Add link to RIOT forum (#21723) + doc/starlight: add RIOT changelog (#21741) + doc/starlight: Update dependencies, add image zoom, fix wrong prints (#21742) + doc: deprecate Doxygen `Getting Started` and add CoAP guide (#21792) * boards/nucleo*: Cleanup and Enhance the Documentation (#21337) * boards/nucleo-l011k4: improve board doc (#21783) * boards/nucleo-l031k6: improve board doc (#21790) * boards: move licenses to SPDX format in doc.md files (#21651) * boards: rename doc.txt -> doc.md for boards which name's starts from e to p (#21641) * boards: rename doc.txt -> doc.md for remaining boards (#21644) * cpu: rename doc txt -> doc.md (#21680) * dist/tools: improve the `esptools`, enhance documentation (#21625) * doc/CONTRIBUTION.md: document mediation process (#20648) * doc/guides/rust_tutorials: mention BUILD_IN_DOCKER more verbosely (#21735) * doc/guides: cleanup section titles (#21728) * doc/guides: disable npm funding message (#21799) * doc/guides: Extend STM32 Flashing Guide with OpenOCD and WSL Remark (#21794) * doc/guides: improve guides and many small fixes (#21730) * doc/guides: remove toc from managing a release and fix using timers guide (#21773) * doc/guides: The Big Migration (#21708) * doc/starlight: Adjust theming to RIOT branding (#21700) * doc/starlight: rename guides title from Riot to RIOT (#21722) * doc: fix outdated links in CONTRIBUTING.md (#21824) * doc: Integrate Governance, Code of Conduct and C++ Tutorial into Starlight (#21646) * pkg/lwip: document debug defines (#21834) Build System / Tooling ---------------------- + dist/tools: add double `#pragma once` error message to headerguards check (#21696) + dist/tools: add knob for docker pinning test (#21815) + dist/tools: add no-merge and colon check to commit-msg check (#21803) * build system: Allow running tests in docker (#21752) * dist/tools/ci: include rust, node and git commit in print-version (#21734) * makefiles/tools/openocd: Do not require openocd.cfg for STM32 boards (#21717) * makefiles: remove `DOWNLOAD_TO_STDOUT` (#21823) Kconfig ------- * drivers/sen5x: Remove Kconfig dependency handling (#21643) Testing ------- * starlight: build on PR & fix CI deploy error (#21789) * tests/sys/libc_newlib: drop test (#21669) * tests: replace header guards with #pragma once (#21702) API Changes ----------- * drivers/motor_driver: rework motor driver (#20429) Uncategorized ------------- + CODEOWNERS: Add AnnsAnn to doc & rp2350 (#21765) + release-notes.txt: add 2025.07 release notes (#21628) + Starlight/Changelog: Add direct Github link support (#21809) * .gitattributes: Treat SVG as binary (#21807) * guides/c_tutorials/timers: Fix outdated intro (#21673) * README.md: improve feature list (#21059) * README.md: Unify formatting, modernize badges & update URLs (and move release_cycle to starlight) (#21706) * readme: modernize getting started section (#21654) And 35 minor changes. Deprecations ============ Removals (1) ------------ - pkg/qdsa: drop package (#21657) Bug fixes (43) ============== * doc/starlight: add route middleware to fix edit link (#21780) * doc/starlight: Add temporary workaround to symlink issue (#21787) * guides/installing: add psutil requirement for pyterm (#21660) * [HACK] cpu/sam0_common: eth: delay init by 10ms for more stable Ethernet (#21634) * arch/riscv: fix incorrect ASFLAGS (#21672) * boards/common/nucleo144: fix and complete Arduino configuration (#21665) * boards/nrf52-based, dist/tools/jlink: fix and enhance `JLINK_{PRE,POST}_FLASH` command (#21740) * build system: Fix regression from #21752 (#21793) * ci/docs: Build/Deploy on changes to outside text (#21810) * ci/docs: use pattern for CODING_CONVENTIONS files (#21814) * cpu/esp32/esp-idf-rmt: fix compilation together with Nimble and WiFi (#21714) * cpu/nrf52/radio/nrf802154: fix radio after soft ACK (#21786) * cpu/nrf5x_common: fix vendor header regression from #21800 (#21812) * cpu/sam0_eth: disable interrupts during init (#21836) * cpu/samd5: improve clock initialisation XOSC32 and FDPLL (#21631) * doc: fix some links and repair starlight (#21769) * drivers/netdev_ieee802154_submac: fix bytes_tx (#21796) * drivers/sx126x: fail on init if no device is connected (#21688) * gnrc/netif: don't re-append tx_sync snip if tx is done (#21709) * gnrc_netif: fix neighbor statistics with netdev_new_api (#21002) * kinetis/bme: temp disable `BITBAND_FUNCTIONS_PROVIDED` (#21750) * makefiles/boot/riotboot: pass BUILD_DIR to recursive Make call (#21676) * makefiles/info.inc.mk: improvements to json build output (#21645) * nimble/netif: use `netdev_legacy_api` module (#21620) * nrf52/cfg_rtt_default: fix rtt min offset (#21743) * pkg/driver_cryptocell_310: use community-hosted mirror of nRF5-SDK (#21635) * pkg/esp32_sdk: unshallow repository before getting tag/branch name (#21624) * pkg/lwip/netdev: fix return types in send() (#21833) * pkg/mpaland-printf: format points like glibc (#21678) * pkg/mpaland-printf: wrap putc() and fputc() (#21828) * pkg/mplaland-printf: Use buffered output (#21805) * tests: accept %p printing in uppercase and without leading 0x (#21677) * tests: fix compilation problems with NDEBUG (#21649) * unittests/unicoap: statically allocate option buffers (#21610) Known issues ============ Network related issues (56) --------------------------- * 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) * cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861) * DHCPv6 client: Handling of NotOnLink incorrect (#20349) * 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 handle fragmented IPv6 packets from Linux kernel (#12264) * example/gnrc_border_router cannot answer after some time (#19578) * 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) * Global IPv6 addresses remain deprecated after receiving RA (#19846) * gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230) * gnrc/ipv6: "invalid payload length" - corrupted IPv6 header when ENABLE_DEBUG=1 in mbox.c (#20390) * gnrc_border_router stops routing after a while (#16398) * gnrc_border_router: Kconfig and C disagree about number of addresses per interface (#19947) * 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_netif_pktq leaks memory (#17924) * gnrc_rpl: missing bounds checks in _parse_options (#16085) * gnrc_rpl: nib route not updated when topology / DODAG changes (#17327) * gnrc_rpl: old routes are not deleted (#19423) * gnrc_rpl: takes unusually long time to start routing packets (#19147) * gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389) * gnrc_tcp: gnrc_tcp_recv() never generates -ECONNABORTED (#17896) * gomach: Resetting netif with cli doesn't return (#10370) * ieee802154_submac: IPv6 fragmentation broken (#16998) * LoRaWan node ISR stack overflowed (#14962) * LWIP TCP Communication Error (#19676) * lwip, submac: deadlock on user transmission (#21843) * 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) * Neighbor Discovery not working after router reboot when using SLAAC (#11038) * 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) * ping6 is failing when testing with cc2538dk (#13997) * pkg/lwip: race condition (data loss) in async connection setup (#21874) * pkg/tinydtls: auxiliary data API does not work for async sockets (#16054) * Removing a TNT global address then adding a new one does not work (#20318) * samr30 xpro doesn't seem to use its radio ok (#12761) * scan-build errors found during 2019.07 testing (#11852) * stale border router does not get replaced (#12210) * test/lwip: enabling both, IPv4 and IPv6, results in unexpected behavior (#18097) * 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) * xbee: setting PAN ID sometimes fails (#10338) Timer related issues (5) ------------------------ * misc issues with tests/trickle (#9052) * 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) * sys/newlib: gettimeofday() returns time since boot, not current wall time. (#9187) Drivers related issues (13) --------------------------- * at86rf2xx: Simultaneous use of different transceiver types is not supported (#4876) * cpu/msp430: GPIO driver doesn't work properly (#9419) * drivers/at86rf215: not returning RX/IDLE after a while of operation with RPL/UDP (#21685) * drivers/mpu9x50: regression (#21663) * examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527) * fail to send data to can bus (#12371) * 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) * 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) * tests/periph_flashpage: unexpected behavior on nucleo-l4r5zi (#17599) Native related issues (5) ------------------------- * examples/micropython: floating point exception while testing on native (#15870) * native not float safe (#495) * native: tlsf: early malloc will lead to a crash (#5796) * VFS_READ show correct data on every SECOND request only (#21470) * ztimer doesn't wake up on native if the pm_layered module is used (#21083) Other platforms related issues (16) ----------------------------------- * Failing tests on FE310 (Hifive1b) (#13086) * [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763) * boards/hifive1: flashing issue (#13104) * cpu/sam0: flashpage write / read cycle produces different results depending on code layout in flash (#14929) * esp32*: esp_now: failed assertion in xSemaphoreTakeRecursive() when switching channel (#21919) * esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237) * esp32s2: `xQueueGenericCreate()` fails assertion due to failed `malloc()` after ~2h (#21923) * esp8266 crashes on WiFi disconnect (#21558) * examples/gnrc_border_router: esp_wifi_init failed with return value 257 on ESP32-C3 with nimble_rpble (#19319) * gcoap/esp8266: Stack overflow with gcoap example (#13606) * Interrupt callback function is instantly called on samd51 after setting it from within interrupt callback function (#19861) * 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) * stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728) Build system related issues (7) ------------------------------- * Build dependencies - processing order issues (#9913) * dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck 1.89 (#12771) * EXTERNAL_MODULE_DIRS silently ignores non-existent entries (#17696) * Kconfig: Unable to set Kconfig boolean variables with default true to false (#21785) * make: ccache leads to differing binaries (#14264) * make: use of immediate value of variables before they have their final value (#8913) * makefiles: `make term` does not print `stderr` output of child process. (#21808) Other issues (71) ----------------- * [tracking] Bugs found by the peripheral selftest (#20071) * [Tracking] Failures found with testing on real hardware for release (#21882) * [Tracking] Fix failures of test-on-iotlab (#20791) * [TRACKING] sys/shell refactoring. (#12105) * [tracking] unnecessary use of floating point arithmetic (#19614) * _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) * at86rf215 stops receiving until sending a packet (#19653) * b-l072z-lrwan1: tests/ztimer_overhead: test failure (#19224) * benchmark_udp: hammering with low interval causes issues (#16808) * boards/esp32-wroom-32: tests/mtd_raw flakey (#16130) * Builds fail when different execstack options are around in objects (#18522) * Can't build relic with benchmarks or tests (#12897) * CC2538-CC2592EM has a very weak transmit power (#17543) * cpp: Exception handling undefined (#17523) * cpu/stm32: some tests are failing on CM33 (l5, u5) (#17439) * doc/boards: information concerning access to RIOT shell (#17453) * doxygen: CSS hack to hide doc breaks on older browsers (#21312) * edbg: long lines flooded over serial become garbled (#14548) * examples / tests: LoRa tests fail on platforms that don't support LoRa (#14520) * examples/gcoap: client broken (#19379) * flashing issue on frdm-k64f (#15903) * frdm-k22f failing tests/periph_flashpage (#17057) * frdm-k22f fails tests/periph_timer (#19543) * Freeze into semtech_loramac_send call (pkg/semtech-loramac) (#18790) * gcoap: gcoap_req_send and related should return negative for errors (#19393) * gnrc_ipv6_nib: Neighbor Solicitation ping-pong (#18164) * I2C Crashes Kernel on Raspberry Pi Pico (#21187) * ieee802154_security: Nonce is reused after reboot (#16844) * kconfiglib.py choice override of menuconfig bug (#19069) * LVGL tests produce unaligned code, fail to build (#20110) * 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) * mpaland-printf leads to broken output with GCC 9.3.1 (#21842) * MTD is confusing (#17663) * Order of auto_init functions (#13541) * periph_rtt: rtt_set_alarm() blocks IRQ for 80 plus usec on STM32 (#19520) * pkg/tinydtls: Multiple issues (#16108) * Potential race condition in compile_and_test_for_board.py (#12621) * RIOT is saw-toothing in energy consumption (even when idling) (#5009) * riotboot: ECC faults (eg. in STM32L5 or STM32WB) not handled gracefully (#17874) * rpl, rpble: handle closed connection to parent(s) (#21574) * rust-gcoap example is incompatible with littlefs2 (#17817) * Samr30/gpio: Erasing then write mux can generate spurious IRQ (#19993) * samr34-xpro: some tests failing (#19223) * sock_dtls: unable to send big messages (#17996) * spurious IRQs in `periph_timer` (#18976) * stdio UART input truncated (#21564) * stdio_ethos: infinite shell loop (#17972) * stdio_tinyusb_cdc_acm hangs with picolibc (#19277) * STM32 Nucleo boards improperly clocked (#19778) * STM32F4-discovery + mrf24j40 not working (#19711) * sys/riotboot: documentation issues (#11243) * sys/usb/usbus/cdc/ecm: interface thread blocked when connected host interface is down (#21098) * tests/lwip target board for python test is hardcoded to native (#6533) * tests/periph_flashpage: failing on stm32l475ve (#17280) * tests/pkg/relic is failing on samr21-xpro when built using llvm (#19903) * tests/pkg_libhydrogen: test fails on master for the samr21-xpro with LLVM (#15066) * tests/pkg_libschc: Failing test_reassemble_success_ack_always (#19445) * tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888) * tests: broken with stdio_rtt if auto_init is disabled (#13120) * tests: some tests don't work with `newlib` lock functions. (#12732) * tracking: failing tests with stdio_cdc_acm (#21231) * Types in `byteorder.h` need a cleanup (#14737) * USB identifiers with funny characters create mojibake (#17776) * usbus/msc: wrong error handling and behavior after usb reset (#19478) * Use of multiple CAN bus on compatible boards (#14801) * ztimer is incompatible with real-time requirements (#18883) There are 173 known issues in this release Fixed Issues since the last release (2025.07) ============================================= - Broken IEEE820.15.4 Networking on nrf52 Board (#21782) - openocd: flashing the STM32C0 and other "new" boards (#21781) - static tests: Commit Check does not check for missing Colon (#21772) - doc/guides: Note Blocks are not rendered (#21766) - CCMRAM for stm32 misprint (#21698) - [esp32s3] drivers/ws281x : Cannot have the ws281x neopixel driver module and the nimble module in the same project (#21690) - adafruit-feather-nrf52840-sense: potential regression (#21667) - doc/doxygen: Broken LaTeX Formulas (#21490) - tests/pkg/lvgl: compilation error for `BOARD=samr21-xpro` (#21446) - Standard output is truncated and sent to the shell input on Arduino Nano 33 BLE for the default example (#20544) - stdio_cdc_acm causing corruption of first shell input (#20305) - pkg/tinydtls: DTLS handshake does not work (#19595) - 2023.04 release bug tracking (#19469) - I2C not working under RIOT with U8G2 pkg (#16381) - CC2538DK board docs: broken links (#12889) - stm32_common/periph/rtc: current implementation broken/poor accuracy (#8746) 16 fixed issues since last release (2025.07) Acknowledgements ================ We would like to thank all companies that provided us with hardware for porting and testing RIOT. 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 Discussions =========== * Join the RIOT Matrix room at: #riot-os:matrix.org * Join the RIOT Forum at: forum.riot-os.org * Follow us on Mastodon: floss.social/@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.
0b9def6
2025-12-06 15:54
下载
2025.10-RC3
349dbb1
2025-11-22 00:21
下载
2025.10-RC2
044fe84
2025-11-06 23:58
下载
2026.01-devel
Development branch towards 2026.01 release
c699e2e
2025-11-01 22:45
下载
2025.10-RC1
c699e2e
2025-11-01 22:45
下载
2025.07
RELEASE 2025.07 RIOT-2025.07 "FieldGuide" - 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 2025.07 release puts documentation front and center. With our new and shiny guide pages (#21404, #21436), it is easier than ever to pick up RIOT and start hacking! The new guides are available on https://guide.riot-os.org/ Two new checksum calculations have been added to RIOT: CRC16/IBM-SDLC (#21552) and reflected CRC8 with LSB first (#21543). The first one is needed for the new Slipmux driver (#21418) that is also part of this release. The latter in preparation for an upcoming 1-Wire driver (#19848). This release includes the first part of the new Unified and Modular CoAP stack (unicoap #21390), providing initial parser and message APIs. One new MCU is available for RIOT: The ESP32-H2 (#21522), including support for it's IEEE 802.15.4 capabilities (#21590). RIOT continues the transition to `#pragma once` header guards and to the SPDX license format (#21497, #21504, #21501, #21496, #21430, #21591, #21517). 132 pull requests, composed of 443 commits, have been merged since the last release, and 3 issues have been solved. 29 people contributed with code in 90 days. 3833 files have been touched with 77135 (+) insertions and 49624 deletions (-). Notations used below ==================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- + core/thread_flags: add thread flags group (#21254) * tree-wide: fix compilation with GCC 15.1 and picolibc 1.8.10 (#21443) System Libraries ---------------- + checksum: Add crc16-fcs / IBM-SDLC (#21552) + dist/tools/riotboot_gen_hdr: don't be pedantic, add riotboot_slot_get_current_hdr() (#21509) + sys/atomic_utils: add bit set/clear helpers for unsigned int (#21440) + sys/atomic_utils: add helpers for unsigned int (#21429) + sys/bcd: add `bcd_buf_to_u32()` and `bcd_buf_from_str()` (#21428) + sys/checksum: Add LSB-first (reflected) CRC8 Function (#21543) + sys/stdio: add printf_long_long (#21445) + sys/psa_crypto: Adding aead aes ccm (#21455) + sys/psa_crypto: Adding ecc p256r1 pub key derivation (#21461) + sys/ztimer: add support for timers running at a 500kHz frequency (#21553) * sys/arduino: define LED_BUILTIN as frequently used by Arduino sketches (#21485) * sys/event/deferred_callback: disable timer before modifying event (#21539) * sys/event/thread: optimize stack usage (#21556) * sys/event: make debug output of `event_loop_debug` more useful (#21456) * sys/mineplex: Enhance Documentation (#21536) * sys/psa_crypto: Rework Headers (#21512) * sys/shell/cmd: typo in ifconfig helptext, \'transition\' fixed as \'transmission\' (#21474) * sys/shell: expose readline() (#21505) * sys/shell: rename shell_readline() (#21506) * treewide: migrate to XFA SHELL_COMMAND (#21514) Networking ---------- + gnrc/ipv6/nib: add option to disable router solicitations (#21437) + net/unicoap: Unified and Modular CoAP stack: Parser and Message APIs (pt 1) (#21390) + submac: add TX power to retrievable netopts (#21579) * sys/net/sock_util: Do not depend on network stack (#21419) * sys: replace header guards with #pragma once (#21497) Packages -------- + pkg/mpaland-printf: Add alternative stdio as package (#20664) + pkg/wakaama: add on off switch (#21109) * pkg/driver_sx126x: bump to v2.3.2 (#21521) * pkg: use esptool.py v4.9.0 as package (#21557) * pkg/littlefs2: bump to 2.11.1 (#21583) * pkg/littlefs2: bump version to v2.11.0 (#21491) * pkg/nanopb: support more recent google.protobuf versions (#21587) Boards ------ + boards/esp32s3-usb-otg: enable SDMMC peripheral (#21471) + boards: add Wemos D1 R32 (aka ESPDuino-32) board definition (#21479) + cpu/esp32: add ESP32-H2 support (#21522) + features.yaml: add feather_shield feature (#21513) * boards/adafruit-{clue,itsybitsy-nrf52}: Convert to Common `adafruit- nrf52-bootloader` module (#21395) * boards/esp32: Arduino I/O mapping completion (#21484) * boards/nucleo-l412kb: enable ADC (#21566) * boards/nucleo-l432: enable ADC (#21546) * boards: replace header guards with #pragma once (#21504) CPU --- + cpu/cortexm_common: add .backup.noinit section (#21559) + cpu/esp32: add IEEE 802.15.4 support for ESP32-H2 (#21590) * cpu/esp32: Migration to ESP-IDF v5.4 (#21261) * cpu/sam0_common: enable static voltages (#21555) * cpu/sam0_common: implement pm_off() (#14999) * cpu/samd5x: improve isr buffer handling (#21486) * cpu: replace header guards with #pragma once (#21501) * periph_common/init.c: unblock i2c bus (#20787) Device Drivers -------------- + drivers/abp2: add abp2 driver (#20398) + drivers/slipmux: Add to RIOT (#21418) + drivers: add driver for MAX31865 resistance-to-digital converter (#21498) + drivers: add MCP23x17 I/O expander support (#10688) * drivers/netdev_ieee802154_submac: port to netdev_new_api (#20992) * drivers: replace header guards with #pragma once (#21496) * drivers/periph/gpio(_ll): Enhance and fix the documentation (#21538) * pkg/driver_atwinc15x0: remove the compilation of the SPI Flash driver part (#21494) Documentation ------------- + doc/guide: Introduce a Guide Site (#21404) + doc/guides: Add Getting Started guide (#21436) * boards/*avr*: Update the link to the AVaRICE documentation (#21595) * boards/nucleo-f031k6: improve board doc (#21581) * boards/nucleo-f042k6: doc improvement (#21584) * boards/nucleo-l412kb: improve board doc page (#21554) * boards/nucleo-l432kc: improve board doc page (#21460) * boards/nucleo: fix Cortex-M4F family in doc page (#21561) * boards: rename doc.txt -> doc.md for particle, Microchip, nrf ... boards (#21596) * cpu/esp*: migrate doc files to Markdown files *.md (#21589) * doc/creating-an-app: clarify wording about Makefile.board.dep (#21493) * doc/guides/general: switch out @ref usage (#21457) * doc: move vision to starlight, deprecate vision in doxygen (#21576) * sys/stdio: better document configuration (#21459) Build System / Tooling ---------------------- + tools: add default .clang-tidy configuration (#21431) + dist/tools/riotboot_gen_hdr: add JSON mode (#21511) + dist/tools: add a leading whitespace check for `#pragma once` in the `headerguards` static test (#21430) * build system: improve cargo/docker interaction (#21465) * build-sytem/openocd: detect serial port TTY (#21523) * dist/tools/bmp: in-line dependencies using PEP 723 (#21131) * dist/tools/compile_test: specify toolchain and exit code (#21534) * dist/tools: bump uf2conv version (#21469) * makefiles/defaultmodules*.mk: fix the description in comments (#21499) * makefiles/docker: update riotbuild digest (#21542) Examples -------- + Guides: Introduce C Tutorial (#21434) * examples/basic/subfolders: switch from DIRS to EXTERNAL_MODULE_DIRS (#21476) * examples/gnrc_lorawan: simplify configuration a bit (#21526) * examples: move licenses from headers to SPDX format (#21591) * examples: replace header guards with #pragma once (#21517) Testing ------- * .github/workflows: Guide Site Build Test (#21458) * tests/pkg/fatfs*: cleanup MTD default dependencies (#21478) And 19 minor changes. Deprecations ============ Bug fixes (22) ============== * drivers/sdmmc_sdhc: add timeout to wait for ISR mutex unlock (#21432) * drivers/sx126x: add `shield_sx1262` (#21441) * tests/unittests: Add missing module dependency to enable UDP (#21597) * boards/feather-m0: Correct ADC Settings (#21508) * boards/nucleo-l432kc: fix typo in MCU table (#21550) * boards/nucleo-l4: fix VBAT capable boards list (#21547) * boards/seeedstudio-xiao-esp32c3: fix pin conflict (#21463) * cpu/cc2538: Distinguish between GPIO_OD and GPIO_OD_PU (#21488) * cpu/native: use correct isr_stack for valgrind (#21492) * cpu/nrf5x_common: fix uart_poweroff() (#19926) * cpu/nrf{52,9160}: set GPIO modes correctly for MISO/MOSI SPI signals (#21549) * cpu/sam0_common: fix DAC on SAM D5x/E5x (#21548) * doc/guides: fix examples directories (#21568) * examples/basic/subfolders: fix test (#21480) * guides: Fix link to docker setup (#21570) * guides: use absolute path to fix url (#21571) * Makefile.include: fix override headers from application (#20744) * pkg/esptool: force installation of version 4.9.0 (#21588) * pkg/lwip: fix dependencies when LWIP IPv4 is used (#21342) * pkg/mpaland-printf: fix overriding printf with printf_float (#21439) * sys/embunit: fix return value on failure (#21468) * tests/drivers/{st77xx,ili9341}: fix coordinates in lcd_fill() (#21518) Known issues ============ Network related issues (55) --------------------------- * 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) * cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861) * DHCPv6 client: Handling of NotOnLink incorrect (#20349) * 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 handle fragmented IPv6 packets from Linux kernel (#12264) * example/gnrc_border_router cannot answer after some time (#19578) * 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) * Global IPv6 addresses remain deprecated after receiving RA (#19846) * gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230) * gnrc/ipv6: "invalid payload length" - corrupted IPv6 header when ENABLE_DEBUG=1 in mbox.c (#20390) * gnrc_border_router stops routing after a while (#16398) * gnrc_border_router: Kconfig and C disagree about number of addresses per interface (#19947) * 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_netif_pktq leaks memory (#17924) * gnrc_rpl: missing bounds checks in _parse_options (#16085) * gnrc_rpl: nib route not updated when topology / DODAG changes (#17327) * gnrc_rpl: old routes are not deleted (#19423) * gnrc_rpl: takes unusually long time to start routing packets (#19147) * gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389) * gnrc_tcp: gnrc_tcp_recv() never generates -ECONNABORTED (#17896) * gomach: Resetting netif with cli doesn't return (#10370) * ieee802154_submac: IPv6 fragmentation broken (#16998) * LoRaWan node ISR stack overflowed (#14962) * LWIP TCP Communication Error (#19676) * 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) * Neighbor Discovery not working after router reboot when using SLAAC (#11038) * 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) * ping6 is failing when testing with cc2538dk (#13997) * pkg/tinydtls: auxiliary data API does not work for async sockets (#16054) * pkg/tinydtls: DTLS handshake does not work (#19595) * Removing a TNT global address then adding a new one does not work (#20318) * samr30 xpro doesn't seem to use its radio ok (#12761) * scan-build errors found during 2019.07 testing (#11852) * stale border router does not get replaced (#12210) * test/lwip: enabling both, IPv4 and IPv6, results in unexpected behavior (#18097) * 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) * xbee: setting PAN ID sometimes fails (#10338) Timer related issues (6) ------------------------ * misc issues with tests/trickle (#9052) * 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) * stm32_common/periph/rtc: current implementation broken/poor accuracy (#8746) * sys/newlib: gettimeofday() returns time since boot, not current wall time. (#9187) Drivers related issues (11) --------------------------- * at86rf2xx: Simultaneous use of different transceiver types is not supported (#4876) * cpu/msp430: GPIO driver doesn't work properly (#9419) * examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527) * fail to send data to can bus (#12371) * 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) * 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) * tests/periph_flashpage: unexpected behavior on nucleo-l4r5zi (#17599) Native related issues (5) ------------------------- * examples/micropython: floating point exception while testing on native (#15870) * native not float safe (#495) * native: tlsf: early malloc will lead to a crash (#5796) * VFS_READ show correct data on every SECOND request only (#21470) * ztimer doesn't wake up on native if the pm_layered module is used (#21083) Other platforms related issues (14) ----------------------------------- * Failing tests on FE310 (Hifive1b) (#13086) * [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763) * boards/hifive1: flashing issue (#13104) * cpu/sam0: flashpage write / read cycle produces different results depending on code layout in flash (#14929) * esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237) * esp8266 crashes on WiFi disconnect (#21558) * examples/gnrc_border_router: esp_wifi_init failed with return value 257 on ESP32-C3 with nimble_rpble (#19319) * gcoap/esp8266: Stack overflow with gcoap example (#13606) * Interrupt callback function is instantly called on samd51 after setting it from within interrupt callback function (#19861) * 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) * stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728) Build system related issues (5) ------------------------------- * Build dependencies - processing order issues (#9913) * dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck 1.89 (#12771) * EXTERNAL_MODULE_DIRS silently ignores non-existent entries (#17696) * make: ccache leads to differing binaries (#14264) * make: use of immediate value of variables before they have their final value (#8913) Other issues (72) ----------------- * 2023.04 release bug tracking (#19469) * [tracking] Bugs found by the peripheral selftest (#20071) * [Tracking] Fix failures of test-on-iotlab (#20791) * [TRACKING] sys/shell refactoring. (#12105) * [tracking] unnecessary use of floating point arithmetic (#19614) * _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) * at86rf215 stops receiving until sending a packet (#19653) * b-l072z-lrwan1: tests/ztimer_overhead: test failure (#19224) * backport_pr: Only works for when fork is in user (not in organization) (#18486) * benchmark_udp: hammering with low interval causes issues (#16808) * boards/esp32-wroom-32: tests/mtd_raw flakey (#16130) * Builds fail when different execstack options are around in objects (#18522) * Can't build relic with benchmarks or tests (#12897) * CC2538-CC2592EM has a very weak transmit power (#17543) * CC2538DK board docs: broken links (#12889) * cpp: Exception handling undefined (#17523) * cpu/stm32: some tests are failing on CM33 (l5, u5) (#17439) * doc/boards: information concerning access to RIOT shell (#17453) * doc/doxygen: Broken LaTeX Formulas (#21490) * doxygen: CSS hack to hide doc breaks on older browsers (#21312) * edbg: long lines flooded over serial become garbled (#14548) * examples / tests: LoRa tests fail on platforms that don't support LoRa (#14520) * examples/gcoap: client broken (#19379) * flashing issue on frdm-k64f (#15903) * frdm-k22f failing tests/periph_flashpage (#17057) * frdm-k22f fails tests/periph_timer (#19543) * Freeze into semtech_loramac_send call (pkg/semtech-loramac) (#18790) * gcoap: gcoap_req_send and related should return negative for errors (#19393) * gnrc_ipv6_nib: Neighbor Solicitation ping-pong (#18164) * I2C Crashes Kernel on Raspberry Pi Pico (#21187) * I2C not working under RIOT with U8G2 pkg (#16381) * ieee802154_security: Nonce is reused after reboot (#16844) * kconfiglib.py choice override of menuconfig bug (#19069) * 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) * MTD is confusing (#17663) * Order of auto_init functions (#13541) * periph_rtt: rtt_set_alarm() blocks IRQ for 80 plus usec on STM32 (#19520) * pkg/tinydtls: Multiple issues (#16108) * Potential race condition in compile_and_test_for_board.py (#12621) * RIOT is saw-toothing in energy consumption (even when idling) (#5009) * riotboot: ECC faults (eg. in STM32L5 or STM32WB) not handled gracefully (#17874) * rpl, rpble: handle closed connection to parent(s) (#21574) * rust-gcoap example is incompatible with littlefs2 (#17817) * Samr30/gpio: Erasing then write mux can generate spurious IRQ (#19993) * samr34-xpro: some tests failing (#19223) * sock_dtls: unable to send big messages (#17996) * spurious IRQs in `periph_timer` (#18976) * stdio UART input truncated (#21564) * stdio_ethos: infinite shell loop (#17972) * stdio_tinyusb_cdc_acm hangs with picolibc (#19277) * STM32 Nucleo boards improperly clocked (#19778) * STM32F4-discovery + mrf24j40 not working (#19711) * sys/riotboot: documentation issues (#11243) * sys/usb/usbus/cdc/ecm: interface thread blocked when connected host interface is down (#21098) * tests/lwip target board for python test is hardcoded to native (#6533) * tests/periph_flashpage: failing on stm32l475ve (#17280) * tests/pkg/lvgl: compilation error for `BOARD=samr21-xpro` (#21446) * tests/pkg/relic is failing on samr21-xpro when built using llvm (#19903) * tests/pkg_libhydrogen: test fails on master for the samr21-xpro with LLVM (#15066) * tests/pkg_libschc: Failing test_reassemble_success_ack_always (#19445) * tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888) * tests: broken with stdio_rtt if auto_init is disabled (#13120) * tests: some tests don't work with `newlib` lock functions. (#12732) * Types in `byteorder.h` need a cleanup (#14737) * USB identifiers with funny characters create mojibake (#17776) * usbus/msc: wrong error handling and behavior after usb reset (#19478) * Use of multiple CAN bus on compatible boards (#14801) * ztimer is incompatible with real-time requirements (#18883) There are 168 known issues in this release Fixed Issues since the last release (2025.04) ============================================= - Missing _TARGETNAME variable in stm32wlx target config causes flash failure (#21614) - sys/psa_crypto: one parenthesis too many in the documentation (#21563) - RIOT OS webpage do not generate automatically from git repository (#21562) 3 fixed issues since last release (2025.04) 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 Discussions ================ * Join the RIOT Matrix room at: #riot-os:matrix.org * Join the RIOT Forum at: forum.riot-os.org * Follow us on Mastodon: floss.social/@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. -----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAg4fTJbaPXIegB1dOZtvRB6bkOyb WuSvwdIVmgncdZ9uEAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQNAZnesjf7y6o6rWmGPdvVOySlAirSv1V83/e8IVFlOCkY0t1fdKRALPDGwCql3dfM OCtsTBhTmZBD9Bln1zGws= -----END SSH SIGNATURE-----
eb65305
2025-08-02 23:28
下载
2025.07-RC2
065f13c
2025-07-25 16:07
下载
2025.10-devel
Development branch towards 2025.10 release
d271fc8
2025-07-22 04:45
下载
2025.07-RC1
d271fc8
2025-07-22 04:45
下载
2025.04
RELEASE 2025.04 RIOT-2025.04 "MakeSpringClean" - 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 2025.04 release includes some spring cleaning activity in the build system and documentation, as well as the following highlights: RIOT provides `native` as a board that can be used for fast development cycles on the development machine without the need for external microcontroller hardware. Starting with this release, `native` will default to a 64-bit executable on 64-bit hosts (#21242). If you prefer to cross-compile 32-bit executables, please now use `native32` instead. This new board alias mechanism also paves the way towards more consistent board names in RIOT. As a first step, the two Adafruit Feather nRF52840 boards have been renamed, while maintaining the old board names as aliases (#21349). The examples contained in the RIOT source repository have been restructured as a first step towards easing the experience for RIOT newcomers (#21135, #21221). Stay tuned for more! This release includes support for three new boards from the Seeed Studio XIAO family, notably the nRF52840 (#20980), nRF52840 Sense (#21332), and the ESP32C3 variant (#21267). RIOT now also boots on SAM4S Xplained Pro evaluation kits (#21201). The default terminal program for RIOT (`pyterm`) now requires the `psutil` Python module. On Ubuntu/Debian, it can be installed with `python3-psutil` (#21399). RIOT started the transition from header guards to `#pragma once` in its source code. New code contributions should follow this style from now on (#21367, #21369). 175 pull requests, composed of 357 commits, have been merged since the last release, and 12 issues have been solved. 35 people contributed with code in 82 days. 1963 files have been touched with 49418 (+) insertions and 37661 deletions (-). Notations used below ==================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- + core/cib: Add a prominent warning about thread safety (#21401) * core/debug: extend doc about DEBUG() / LOG_DEBUG() (#21276) * core/thread: error in thread.c corrected (#21253) System Libraries ---------------- + sys/bcd: add bcd_buf_from_u32() (#21308) + sys/event: add `event_deferred_callback_post()` helper (#21219) + sys/event: add `event_loop_debug` pseudo-module (#20849) + sys/fmt: add {fmt,scn}_time_tm_iso8601 (#21391) + sys/psa_crypto: Adding hmac hashing on psa_import_key and fix max hmac key size (#21297) + sys/ztimer: add hint for setting static sleep adjustment (#21376) * drivers/mtd_default: remove deprecated `mtd_default_get_dev()` (#21386) * sys/fido2: update tests (#20876) * psa_crypto: fold some long lines (#21303) * rust: Simplify Makefiles (#21239) * sys/chunked_ringbuffer: let `crb_end_chunk()` return size of the chunk (#20942) * sys/isrpipe: unit tests, doc, and fix init (#21344) * sys/malloc_tracing: remove deprecated module (#21384) * sys/psa_crypto: drop no-op Doxygen statements (#21393) * sys/psa_crypto: usa auto_init module for initialization (#21322) * sys/vfs: remove deprecated `vfs_iterate_mounts()` (#21387) * sys/ztimer: fix small typo in doc (#21208) * treewide: update riot-wrappers and riot-sys (#21383) Networking ---------- + sys/net/nanocoap: Implement Observe (Server-Side) (#21147) * drivers/include: fixing order of doxygen tags and header guards (#21325) * ieee802154/submac: calculate symbol time on demand (#19668) * lwip: bump to v2.2.1 (#21196) * nanocoap: avoid non `static` buffers of configurable size (#21270) * nanocoap_sock: implement observe (Client-Side) (#21160) * net_sock_async_event: cancel async event on sock_*_close() (#21180) * sys/net/gcoap: remove deprecated gcoap_req_send_tl() (#21385) * sys/net/ipv6: use markdown links in doc (#21356) Packages -------- * Pkg/ccn-lite: use latest ccn-lite commit (#21279) * pkg/driver_cryptocell_310: allow data to be in ROM on hash update (#21214) * pkg/driver_cryptocell_310: check for input data to be in RAM (#21138) * pkg/esp32_sdk: Fix broken `rtc_io.h` declaration and prevent `sys/uio.h` inclusion outside RIOT (#21408) Boards ------ + boards/seeedstudio-xiao-esp32c3: Add support for Seeed Studio ESP32C3 Xiao (#21267) + boards/feather-nrf52840*: add external flash configuration (#21324) + boards/nucleo-f722ze: add ADC support (#21233) + boards/nucleo-wl55jc: add ADC configuration (#21235) + boards/nucleo64: Add Compile Warning about LED0 when using SPI (#21338) + boards/seeedstudio-xiao-nrf52840-sense: Add Initial Support (#21332) + boards: introduce `stdio_default` (#21294) + boards: introduce board alias and make native default to host target (#21242) + Buildsystem: Introduce Global Makefiles for `boards` Directory (#21327) + cpu/sam4s: add initial support with SAM4S-XPRO board (#21201) * boards/common: Make Adafruit nRF52 Bootloader shared (#21281) * boards/feather-nrf52840*: rename to adafruit-feather-nrf52840-* (#21349) * boards/nrf6310: Remove nRF6310 board from RIOT (#20966) * boards/seeedstudio-xiao-nrf52840: initial board support (#20980) CPU --- + core: add stdio.h to replace stdout functions with stdio_null (#20872) * cpu/native: Gardening/QoL (#21283) * cpu/nrf5*: mark and resolve radio conflict (#21250) * cpu/nrf52/radio/nrf802154: fix beacon acceptance (#20982) * cpu/sam0_common/flashpage: disable interrupts while writing (#21326) * cpu/sam0_eth: fix hang with broken PHY (#21172) * cpu/sam3: fix hwrng peripheral register access (#21177) * cpu/sam3: optimize gpio ISR processing (#21179) * cpu/samd5x: improve can-initialization (#21173) * cpu/stm32{f0,g0,c0}: fix ADC initialization sequence (#21230) * dist/tools/esptools: Upgrade the ESP32 toolchain to GCC v14.2, GDB v14.2 and OpenOCD v0.12 (#21144) * {cpu/sam0_common/sam0_sdhc,drivers/mtd}: do not allocate `work_area` twice (#21169) Device Drivers -------------- + drivers/periph_timer: add `timer_get_closest_freq()` (#20581) + drivers/sen5x: Add device driver for SEN5x (#19955) + drivers/tm1637: add driver and tests for tm1637 7-segment display (#21112) * driver/sen5x: Small Fixups (#21392) * drivers/at: at_readline_stop_at_str fix remaining buffer length (#21195) * drivers/sdmmc/sdmmc_sdhc: remove DMA check (#21260) * drivers/{mtd_sdmmc,sdmmc}: reinit card (#21305) Documentation ------------- + add *.doc.md to doxygen sources (#21319) + boards/nrf52840{dk,dongle}: add MCU table, move to doc.md (#21271) + boards/nucleo-f413zh: add MCU table, move to doc.md (#21264) + dist/tools: Add Doxygen as a Tool for CI (#21300) + doc, buildsystem: Add a Version Check for Doxygen, Fix doc* Target Execution (#21277) + doc/managing-a-release: add looking out for release tests to preps (#21368) + doc: add psutil requirement to Getting Started (#21399) * boards/arduino-due: update doc.txt (#21207) * boards/nucleo-144: rename doc.txt to doc.md (#21318) * boards/nucleo-f746zg: board doc update (#21310) * boards/rpi-pico*: Update and fix documentation and image (#21218) * build-system: Drop -Wno-error=documentation (#21377) * doc/porting-boards: Change example doc.txt to doc.md (#21257) * doc: doc.txt -> doc.md (#21255) * doc: hack to hide doc.md files until doxygen gets fixed (#21273) * doc: remove and replace deprecated mailing lists (#21285) * doc: Use the correct Doxygen Logo File Type in the Footer (#21274) * docs/rust: Install c2rust with --locked (#21236) * docs: Switch out pkg reference link (#21229) * sys/cord/doc.txt: Update additional references to RFC 9176 (#21159) * sys/malloc_monitor: Fix documentation (#21225) * sys/psa_crypto/doc: correctly end code block (#21380) * treewide: fix double the in doc and comments (#21224) * treewide: fix example references in docs (#21212) * CODING_CONVENTION.md: migrate to `#pragma once` (#21369) Build System / Tooling ---------------------- + buildsystem: Enable -Wdocumentation for LLVM (#21358) + dist/tools: add `#pragma once` to headerguard check (#21367) * buildsystem: Remove `buildtest` Goal & Fix `info-buildsizes-diff` (#21359) * dist/tools/bmp: additional improvements to auto-detection (#21128) * dist: tools: avoid hanging tapsetup in the absence of a DHCP server (#20411) * Makefile.include: perform checks for all relevant targets (#21199) * makefiles: bump riotdocker (#21258) * makefiles: colorize board alias warning (#21352) * makefiles: fix output of info-applications (#21213) * tools: Use RIOT maintained cosy (#21070) Examples -------- * examples: restructure examples folder (#21135) * examples: shorten subfolders' names (#21221) * Configure default DNS resolver in 6lbr example (#21117) * examples/nanocoap_server: enable LWIP IPv4 (#21333) * examples: migrate to XFA SHELL_COMMAND (#21171) * examples: update `dtls-echo` source (#21247) * examples/gnrc_border_router: Request temporary address (IA_NA) for the 6lbr example (#21118) Testing ------- + tests/bench/runtime_coreapis: add clist_sort() benchmark (#21403) + tests/pkg/relic: add Paillier encryption tests (#21301) * .github/labeler: recognize boards/common/native as native (#21351) * test/pkg/relic: increase stacksize for paillier encryption (#21306) * tests/adc: always test all resolutions (#21223) * tests/drivers/candev: minor cleanup (#21175) * tests/nanocoap_cli: allow to build with lwIP (#21314) * tests/sys/suit_manifest: remove unnecessary custom native board (#21248) * tests/test-rtc: test retrieval of unix-time (#20031) * tests/unittests: test parsing of out-of-bounds CoAP opt (#21167) API Changes ----------- + can: add CAN FD support to STM32G4 and native architecture (#20428) + cpu/samd5x: add enable pin to CAN configuration (#21287) * drivers/periph_uart: document acquire/release semantic (#20624) And 22 minor changes. Deprecations ============ Deprecations (1) ---------------- * gnrc/ipv6/nib: make `CONFIG_GNRC_IPV6_STATIC_LLADDR_IS_FIXED` the default & deprecate it (#21157) Bug fixes (28) ============== * LOSTANDFOUND.md: add missing URL, fix Markdown typo (#21154) * boards/feather-m0*: Update Default Bootloader to UF2 (#21280) * buildsystem: Fix `boards/Makefile.features` Inclusion (#21334) * buildsystem: Fix Supported Board List in `info-build` (#21361) * buildsystem: Set `term` Goal to NOTPARALLEL (#21354) * cpu/esp32: fix bus_width in periph_sdmmc (#21259) * cpu/esp32: Fixes of compile problems with GCC 14.2 (#21245) * cpu/esp_common: create partitions.csv more robustly (#21185) * cpu/native: use async read for stdio_read() (#19002) * cpu/sam3: fix PMC enable/disable peripheral clock access (#21168) * cpu/samd5x/periph_can: fix RX (#21181) * cpu/stm32: Make ADC Resolution Definition uniform (#20971) * cpu/stm32{f3,l4,wb,wl}: Replace ztimer with busy_wait, fix VBat sampling time and {wl only} fix initialization sequence (#21238) * doc: fix image references for ESP32x boards (#21204) * drivers/periph_{i2c,spi}: fix doc on initialization (#21188) * examples/default: fix dependency modeling (#21191) * examples/suit_update: fix compilation for `native` [backport 2025.04] (#21427) * gnrc_sock/udp: zero-init sock struct on create (#21363) * pkg/nimble: Fix compilation with `USEMODULE += nimble_svc_bas` (#21200) * pyterm: send SIGINT to the subprocess' child (#21309) * socket_zep: properly implement the radio HAL (#19213) * sys/can: fix compilation issues under native (#21388) * sys/net/nanocoap: align request handling with spec (#21163) * sys/net/nanocoap: drop typedef hack [v2] (#21193) * sys/net/nanocoap: fix API inconsistency (#21241) * sys/net/nanocoap: fix dereferencing a null pointer (#21227) * tree wide: various doc fixes (#21357) * tree-wide: mixed back of documentation fixes (#21371) Known issues ============ Network related issues (55) --------------------------- * 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) * cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861) * DHCPv6 client: Handling of NotOnLink incorrect (#20349) * 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 handle fragmented IPv6 packets from Linux kernel (#12264) * example/gnrc_border_router cannot answer after some time (#19578) * 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) * Global IPv6 addresses remain deprecated after receiving RA (#19846) * gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230) * gnrc/ipv6: "invalid payload length" - corrupted IPv6 header when ENABLE_DEBUG=1 in mbox.c (#20390) * gnrc_border_router stops routing after a while (#16398) * gnrc_border_router: Kconfig and C disagree about number of addresses per interface (#19947) * 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_netif_pktq leaks memory (#17924) * gnrc_rpl: missing bounds checks in _parse_options (#16085) * gnrc_rpl: nib route not updated when topology / DODAG changes (#17327) * gnrc_rpl: old routes are not deleted (#19423) * gnrc_rpl: takes unusually long time to start routing packets (#19147) * gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389) * gnrc_tcp: gnrc_tcp_recv() never generates -ECONNABORTED (#17896) * gomach: Resetting netif with cli doesn't return (#10370) * ieee802154_submac: IPv6 fragmentation broken (#16998) * LoRaWan node ISR stack overflowed (#14962) * LWIP TCP Communication Error (#19676) * 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) * Neighbor Discovery not working after router reboot when using SLAAC (#11038) * 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) * ping6 is failing when testing with cc2538dk (#13997) * pkg/tinydtls: auxiliary data API does not work for async sockets (#16054) * pkg/tinydtls: DTLS handshake does not work (#19595) * Removing a TNT global address then adding a new one does not work (#20318) * samr30 xpro doesn't seem to use its radio ok (#12761) * scan-build errors found during 2019.07 testing (#11852) * stale border router does not get replaced (#12210) * test/lwip: enabling both, IPv4 and IPv6, results in unexpected behavior (#18097) * 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) * xbee: setting PAN ID sometimes fails (#10338) Timer related issues (6) ------------------------ * misc issues with tests/trickle (#9052) * 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) * stm32_common/periph/rtc: current implementation broken/poor accuracy (#8746) * sys/newlib: gettimeofday() returns time since boot, not current wall time. (#9187) Drivers related issues (11) --------------------------- * at86rf2xx: Simultaneous use of different transceiver types is not supported (#4876) * cpu/msp430: GPIO driver doesn't work properly (#9419) * examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527) * fail to send data to can bus (#12371) * 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) * 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) * tests/periph_flashpage: unexpected behavior on nucleo-l4r5zi (#17599) Native related issues (4) ------------------------- * examples/micropython: floating point exception while testing on native (#15870) * native not float safe (#495) * native: tlsf: early malloc will lead to a crash (#5796) * ztimer doesn't wake up on native if the pm_layered module is used (#21083) Other platforms related issues (13) ----------------------------------- * Failing tests on FE310 (Hifive1b) (#13086) * [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763) * boards/hifive1: flashing issue (#13104) * cpu/sam0: flashpage write / read cycle produces different results depending on code layout in flash (#14929) * esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237) * examples/gnrc_border_router: esp_wifi_init failed with return value 257 on ESP32-C3 with nimble_rpble (#19319) * gcoap/esp8266: Stack overflow with gcoap example (#13606) * Interrupt callback function is instantly called on samd51 after setting it from within interrupt callback function (#19861) * 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) * stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728) Build system related issues (5) ------------------------------- * Build dependencies - processing order issues (#9913) * dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck 1.89 (#12771) * EXTERNAL_MODULE_DIRS silently ignores non-existent entries (#17696) * make: ccache leads to differing binaries (#14264) * make: use of immediate value of variables before they have their final value (#8913) Other issues (70) ----------------- * 2023.04 release bug tracking (#19469) * [tracking] Bugs found by the peripheral selftest (#20071) * [Tracking] Fix failures of test-on-iotlab (#20791) * [TRACKING] sys/shell refactoring. (#12105) * [tracking] unnecessary use of floating point arithmetic (#19614) * _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) * at86rf215 stops receiving until sending a packet (#19653) * b-l072z-lrwan1: tests/ztimer_overhead: test failure (#19224) * backport_pr: Only works for when fork is in user (not in organization) (#18486) * benchmark_udp: hammering with low interval causes issues (#16808) * boards/esp32-wroom-32: tests/mtd_raw flakey (#16130) * Builds fail when different execstack options are around in objects (#18522) * Can't build relic with benchmarks or tests (#12897) * CC2538-CC2592EM has a very weak transmit power (#17543) * CC2538DK board docs: broken links (#12889) * cpp: Exception handling undefined (#17523) * cpu/stm32: some tests are failing on CM33 (l5, u5) (#17439) * doc/boards: information concerning access to RIOT shell (#17453) * doxygen: CSS hack to hide doc breaks on older browsers (#21312) * edbg: long lines flooded over serial become garbled (#14548) * examples / tests: LoRa tests fail on platforms that don't support LoRa (#14520) * examples/gcoap: client broken (#19379) * flashing issue on frdm-k64f (#15903) * frdm-k22f failing tests/periph_flashpage (#17057) * frdm-k22f fails tests/periph_timer (#19543) * Freeze into semtech_loramac_send call (pkg/semtech-loramac) (#18790) * gcoap: gcoap_req_send and related should return negative for errors (#19393) * gnrc_ipv6_nib: Neighbor Solicitation ping-pong (#18164) * I2C Crashes Kernel on Raspberry Pi Pico (#21187) * I2C not working under RIOT with U8G2 pkg (#16381) * ieee802154_security: Nonce is reused after reboot (#16844) * kconfiglib.py choice override of menuconfig bug (#19069) * 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) * MTD is confusing (#17663) * nanocoap: incomplete response to /.well-known/core request (#10731) * Order of auto_init functions (#13541) * periph_rtt: rtt_set_alarm() blocks IRQ for 80 plus usec on STM32 (#19520) * pkg/tinydtls: Multiple issues (#16108) * Potential race condition in compile_and_test_for_board.py (#12621) * RIOT is saw-toothing in energy consumption (even when idling) (#5009) * riotboot: ECC faults (eg. in STM32L5 or STM32WB) not handled gracefully (#17874) * rust-gcoap example is incompatible with littlefs2 (#17817) * Samr30/gpio: Erasing then write mux can generate spurious IRQ (#19993) * samr34-xpro: some tests failing (#19223) * sock_dtls: unable to send big messages (#17996) * spurious IRQs in `periph_timer` (#18976) * stdio_ethos: infinite shell loop (#17972) * stdio_tinyusb_cdc_acm hangs with picolibc (#19277) * STM32 Nucleo boards improperly clocked (#19778) * STM32F4-discovery + mrf24j40 not working (#19711) * sys/riotboot: documentation issues (#11243) * sys/usb/usbus/cdc/ecm: interface thread blocked when connected host interface is down (#21098) * tests/lwip target board for python test is hardcoded to native (#6533) * tests/periph_flashpage: failing on stm32l475ve (#17280) * tests/pkg/lvgl: compilation error for `BOARD=samr21-xpro` (#21446) * tests/pkg/relic is failing on samr21-xpro when built using llvm (#19903) * tests/pkg_libhydrogen: test fails on master for the samr21-xpro with LLVM (#15066) * tests/pkg_libschc: Failing test_reassemble_success_ack_always (#19445) * tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888) * tests: broken with stdio_rtt if auto_init is disabled (#13120) * tests: some tests don't work with `newlib` lock functions. (#12732) * Types in `byteorder.h` need a cleanup (#14737) * USB identifiers with funny characters create mojibake (#17776) * usbus/msc: wrong error handling and behavior after usb reset (#19478) * Use of multiple CAN bus on compatible boards (#14801) * ztimer is incompatible with real-time requirements (#18883) There are 164 known issues in this release Fixed Issues since the last release (2025.01) ============================================= - buildsystem: `make distclean` does not clean `dist/...` (#21409) - native: Exiting pyterm does not terminate the native process any more (#21307) - Buildsystem: Makefile of Common Board Directories never called without adding `DIRS` (#21298) - Build System: `make -C path/path doc` fails in Base Folder (#21278) - dist/tools/uf2: Flashing a board with RIOT seems to prevent flashing other UF2 files afterwards (#21205) - build system: race condition when building and running an app for `native` (#20948) - feather-m0: `make flash` reports "device unsupported" (#17722) - doc/LOSTANDFOUND: not rendered as expected (#17063) - native getchar is blocking RIOT (#16834) - border_router: significant packet loss when sending out packets using USB cdc-ecm on nrf52 (#16411) - `buildtest` uses wrong build directory (#9742) - MSP430: periph_timer clock config wrong (#8251) 12 fixed issues since last release (2025.01) Acknowledgements ================ We would like to thank all companies that provided us with hardware for porting and testing RIOT. 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.
bff6c31
2025-04-29 18:59
下载
2025.07-devel
Development branch towards 2025.07 release
d81844b
2025-04-14 22:19
下载
2025.04-RC1
d81844b
2025-04-14 22:19
下载
2025.01
RELEASE 2025.01 RIOT-2025.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 2025.01 release includes: More work done to update the legacy `netdev` API to its new version `new_netdev_api` (#20978, #21012, #21015, #21016, #21020, #21028, #21091, #20991). This means that if you are still using the legacy `netdev` API, start thinking about updating! We documented the community processes in a `GOVERNANCE.md` file. This new file now clearly states all previously undocumented community procedures and governance, and defines community roles, to further our goals of openness and transparency within the community. We also added the `same51-curiosity-nano` board along with some configuration improvements "across the board" :wink:. 144 pull requests, composed of 280 commits, have been merged since the last release, and 0 issues have been solved. 32 people contributed with code in 65 days. 665 files have been touched with 75661 (+) insertions and 6329 deletions (-). Notations used below ==================== + means new feature/item * means modified feature/item - means removed feature/item New features and changes ======================== Core ---- + core/cib: add const to cib_peek() (#21130) + core/mutex: add `mutex_init_locked()` (#20954) System Libraries ---------------- + sys/posix/pthread: Add pthread_attr_getstack and pthread_attr_setstack (#20934) + sys/stdio_nimble: add version note to README (#21085) + sys/stdio_uart: add stdio_clear_stdin (#19837) * suit: move CoAP endpoints to the example (#21045) * sys/chunked_ringbuffer: discard stale chunk when starting a new one (#21073) * sys/psa_crypto: split algorithm definitions (#20906) * sys/psa_crypto: Update key headers (#21046) * sys/psa_crypto: one-shot Chacha20 support (#20720) * sys/shell: cmds_json builtin command (#20964) * sys/shell: reduce overhead of XFA shell commands (#20958) * sys/stdio: stdio_available is always false with missing stdin module (#21040) * sys/usb: Use luid_base for stable USB serials (#20944) * sys/usb_cdc_acm_stdio: only submit and flush for non-empty buffer (#20986) * treewide: Update Rust dependencies, adding SPI and UART support (#21133) * usbus/cdc_ecm: port to netdev_new_api (#21028) Networking ---------- + gnrc/ipv6_auto_subnets: add option to derive subnet prefix from EUI (#21080) + sys/event: add assertion that event has a handler (#20847) + sys/net/gnrc_pktbuf_static: add double free detection (#20974) * gnrc_netif: netdev_new_api implies TX end irq, no need to check it (#20993) * nanocoap/sock: re-try if wrong block was received (#20952) * sys/net/gcoap: get rid of API abuse (#21125) * sys/net/gcoap: reduce insanity of hack (#20945) * sys/net/gnrc_pktbuf: detect use after free if canary is in metadata (#21000) * sys/net/nanocoap: flush stale responses before sending request (#21122) * sys: net: dns: use Quad9 resolver (#21120) Packages -------- + Feature/wakaama update on new version (#20930) * pkg/relic: bump version to 0.7.0 (#21134) Boards ------ + boards/same51-curiosity-nano: add support for the board (#21111) + cpu/saml21: add compatibility headers for vendor files migration (#20850) + feather-nrf52840: add config for NeoPixel LED (#21017) + saul: initial import of saul_bat_voltage module (#21018) * Arduino support layer: several fixes (#21039) * boards/adafruit-metro-m4-express: Minor improvements (#21041) * boards/nrf52*dk: Enable Pinreset after Flashing (#20965) * cpu/nRF52: Always recover Device before Flashing (#20970) * makefiles/serial: better MOST_RECENT_PORT=1 for CDC ACM (#20951) CPU --- + dist/tools/esptools: add support for installing esp8266 toolchain (#21094) + sys/string_utils: add string_writer helper (#20843) * cpu/cc2538: use RX FIFO count to determine CRC OK location (#20956) * cpu/cortexm_common: Make cpu.h IWYU clean (#21050) * cpu/esp32/stdio_usb_serial_jtag: Fix to ESP32 stdio usb serial hanging if it receives data too quickly (#20972) * cpu/sam0_common: flashpage: disable cache while writing (#21043) * netdev_tap: port to `netdev_new_api` (#21015) Device Drivers -------------- * drivers/atwinc15x0: port to `netdev_new_api` (#21020) * drivers/dose: fix poweroff (#21074) * drivers/dose: port to netdev_new_api (#20991) * drivers/ethos: port to netdev_new_api (#21016) * drivers/periph_init: initialize watchdog first (#21025) * drivers/slipdev: implement NETDEV_EVENT_TX_COMPLETE event (#20975) * drivers/slipdev: port to netdev_new_api (#20978) * drivers/ws281x: esp32 neopixel driver to set the rmt symbol high/low lengths at init instead of every write (#21068) Documentation ------------- + boards/nucleo-l073rz: add MCU table to doc page (#21102) + boards/nucleo-l433rc: add pinout to documentation page (#20947) + examples: add TCP echo server & client from documentation (#16739) + pkg/u8g2: add to the displays doc group (#20953) + README.md: add references to related projects (#21052) + README.md: add Section Collaboration (#21078) * doc: Improvements around Code of Conduct (#21071) * doc: move "managing a release" from wiki (#21065) * MAINTAINING.md/doc: move links from wiki to doc (#21066) * sys/net/app/cord: update doc (#20921) * GOVERNANCE.md: remove “Community Processes” in favor of “GOVERNANCE.md” (#21067) * CODING_CONVENTIONS.md: bump minimum Python version (#21124) * MAINTAINING.md: point to new auto-generated maintainer list (#21069) * README: Rephrase forum into more generic help (#20413) Build System / Tooling ---------------------- + Examples: Add proper Table of Contents (#20957) * Build system: support for application subfolders (#20024) * check_in_readme.sh: tell dev _which_ README.md (#21044) * dist/tools/bmp: improve compatibility (#21107) * makefiles: select default prng _after_ recursive dependency resolution (#21060) Testing ------- * sys/ztimer: mention ztimer_auto_adjust in relevant places (#21003) * tests/build_system/xfa: improve test coverage (#20959) * tests/core/cond_order/: calling cond signal and broadcast without waiting threads (#21030) * tests/core/thread_msg: lower thread priority for consistent output order (#20989) * tests/cpu/mpu*: exclude boards using highlevel_stdio (#20990) * tests/net/nanocoap_cli: make use of XFA for shell commands (#20961) * tests/periph/uart: minor improvements (#21009) * tests/sys/events: test if event_timeout_is_pending returns false (#21032) * tests/sys/shell: skip reboot for boards using highlevel_stdio (#20988) * tests/sys/shell: use default terminal instead of socat (#21058) API Changes ----------- + CODING_CONVENTIONS.md: Add IWYU policy (#20570) + sys/net/nanocoap: add and use coap_get_response_hdr_len() (#20950) * drivers/netdev: revise return values of `.confirm_send()` (#20995) * drivers/periph_gpio: let gpio_read() return bool (#20936) * netdev_new_api: allow `.send()` to return > 0 to signal synchronos send (#21012) * sys/fido2: follow up continued (#18663) * sys/luid: luid_custom() use fixed width int (#20943) Uncategorized ------------- * .clang-format: Set ColumnLimit to 0 (#20963) And 20 minor changes. Bug fixes (33) ============== * core/msg: re-enable IRQs before printing for highlevel_stdio (#21047) * cpu/samd5x/periph_can: fix RX (#21184) * cpu/sam0_common/periph_adc: add work around for errata 2.1.6 (#20994) * boards/stm32f429i-disc1: fix touch screen axis (#21007) * boards/wemos-zero: fix Arduio I/O Map (#21004) * build system: error on conflicting features (#21013) * build_system/xfa: change API to fix alignment (#20960) * core/sched.c: fix _runqueue_pop() removing wrong thread (#20938) * cpu/cc2538: mask length byte before checking CRC (#20998) * cpu/sam0_common/periph_gpio_ll: fix gpio_get_port() and gpio_ll_query_conf() (#20999) * cpu/stm32/eth: fix and improve ETH defines (#21072) * cpu/stm32/periph/timer: prevent spurious IRQs (#20926) * cpu/stm32l0,l1: Fix ADC initialization order (#21011) * dist/tools/esptool: fix the all target (#21129) * doxygen/Makefile: fix `make latex` and `make clean` (#21090) * drivers/at86rf215: return ENETDOWN when interface is down (#21031) * gcoap/forward_proxy: handle timeout case (#20915) * gnrc_netif: fix double free with netdev_new_api & gnrc_netif_pktq (#20976) * gnrc_netif: fix packet leak with gnrc_netif_pktq & netdev_new_api (#20983) * gnrc_netif: fix timeout in `gnrc_netif_ipv6_wait_for_global_address()` (#21137) * pkg/lwip: fix adaption to API change of netdev_new_api (#21091) * pkg/wakaama/client_connection: destroy unused DTLS sessions (#21035) * pkg/wakaama: Fix usages of `lwm2m_uri_t` and ISPO sensor (#21034) * sys/event: fix race in event_wait_multi() (#21092) * sys/net/gnrc/tcp: fix gnrc_tcp_open() netif handling (#20977) * sys/net/nanocoap: fix `coap_build_reply_header()` (#20949) * sys/net/nanocoap: fix buffer overflow in separate response handling (#21075) * sys/net/nanocoap: fix coap_get_total_hdr_len() (#20946) * sys/net/nanocoap: Fix sending bogus separate responses (#21076) * sys/ztimer: implement ztimer_mbox_get_timeout() and use it to fix race in gnrc_sock_recv() (#21113) * tests/periph/selftest_shield: fix invalid calls to timer_init() + GPIO IRQ tests (#21006) * tests/periph/selftest_shield: Fix UART test (#21042) * tests/sys/shell: improve test automation (#21114) * tests/sys/shell: make test script more robust (#21036) * tests/sys/ztimer_mbox_get_timeout: Fix flakiness (#21127) Known issues ============ Network related issues (55) --------------------------- * 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) * cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861) * DHCPv6 client: Handling of NotOnLink incorrect (#20349) * 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 handle fragmented IPv6 packets from Linux kernel (#12264) * example/gnrc_border_router cannot answer after some time (#19578) * 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) * Global IPv6 addresses remain deprecated after receiving RA (#19846) * gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230) * gnrc/ipv6: "invalid payload length" - corrupted IPv6 header when ENABLE_DEBUG=1 in mbox.c (#20390) * gnrc_border_router stops routing after a while (#16398) * gnrc_border_router: Kconfig and C disagree about number of addresses per interface (#19947) * 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_netif_pktq leaks memory (#17924) * gnrc_rpl: missing bounds checks in _parse_options (#16085) * gnrc_rpl: nib route not updated when topology / DODAG changes (#17327) * gnrc_rpl: old routes are not deleted (#19423) * gnrc_rpl: takes unusually long time to start routing packets (#19147) * gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389) * gnrc_tcp: gnrc_tcp_recv() never generates -ECONNABORTED (#17896) * gomach: Resetting netif with cli doesn't return (#10370) * ieee802154_submac: IPv6 fragmentation broken (#16998) * LoRaWan node ISR stack overflowed (#14962) * LWIP TCP Communication Error (#19676) * 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) * Neighbor Discovery not working after router reboot when using SLAAC (#11038) * 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) * ping6 is failing when testing with cc2538dk (#13997) * pkg/tinydtls: auxiliary data API does not work for async sockets (#16054) * pkg/tinydtls: DTLS handshake does not work (#19595) * Removing a TNT global address then adding a new one does not work (#20318) * samr30 xpro doesn't seem to use its radio ok (#12761) * scan-build errors found during 2019.07 testing (#11852) * stale border router does not get replaced (#12210) * test/lwip: enabling both, IPv4 and IPv6, results in unexpected behavior (#18097) * 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) * xbee: setting PAN ID sometimes fails (#10338) Timer related issues (7) ------------------------ * 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) * stm32_common/periph/rtc: current implementation broken/poor accuracy (#8746) * sys/newlib: gettimeofday() returns time since boot, not current wall time. (#9187) Drivers related issues (11) --------------------------- * at86rf2xx: Simultaneous use of different transceiver types is not supported (#4876) * cpu/msp430: GPIO driver doesn't work properly (#9419) * examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527) * fail to send data to can bus (#12371) * 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) * 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) * tests/periph_flashpage: unexpected behavior on nucleo-l4r5zi (#17599) Native related issues (5) ------------------------- * 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) * ztimer doesn't wake up on native if the pm_layered module is used (#21083) Other platforms related issues (13) ----------------------------------- * Failing tests on FE310 (Hifive1b) (#13086) * [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763) * boards/hifive1: flashing issue (#13104) * cpu/sam0: flashpage write / read cycle produces different results depending on code layout in flash (#14929) * esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237) * examples/gnrc_border_router: esp_wifi_init failed with return value 257 on ESP32-C3 with nimble_rpble (#19319) * gcoap/esp8266: Stack overflow with gcoap example (#13606) * Interrupt callback function is instantly called on samd51 after setting it from within interrupt callback function (#19861) * 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) * stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728) Build system related issues (6) ------------------------------- * `buildtest` uses wrong build directory (#9742) * Build dependencies - processing order issues (#9913) * dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck 1.89 (#12771) * EXTERNAL_MODULE_DIRS silently ignores non-existent entries (#17696) * make: ccache leads to differing binaries (#14264) * make: use of immediate value of variables before they have their final value (#8913) Other issues (70) ----------------- * 2023.04 release bug tracking (#19469) * [tracking] Bugs found by the peripheral selftest (#20071) * [Tracking] Fix failures of test-on-iotlab (#20791) * [TRACKING] sys/shell refactoring. (#12105) * [tracking] unnecessary use of floating point arithmetic (#19614) * _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) * at86rf215 stops receiving until sending a packet (#19653) * b-l072z-lrwan1: tests/ztimer_overhead: test failure (#19224) * backport_pr: Only works for when fork is in user (not in organization) (#18486) * benchmark_udp: hammering with low interval causes issues (#16808) * boards/esp32-wroom-32: tests/mtd_raw flakey (#16130) * build system: race condition when building and running an app for `native` (#20948) * Builds fail when different execstack options are around in objects (#18522) * Can't build relic with benchmarks or tests (#12897) * CC2538-CC2592EM has a very weak transmit power (#17543) * CC2538DK board docs: broken links (#12889) * cpp: Exception handling undefined (#17523) * cpu/stm32: some tests are failing on CM33 (l5, u5) (#17439) * doc/boards: information concerning access to RIOT shell (#17453) * 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) * examples/gcoap: client broken (#19379) * feather-m0: `make flash` reports "device unsupported" (#17722) * flashing issue on frdm-k64f (#15903) * frdm-k22f failing tests/periph_flashpage (#17057) * frdm-k22f fails tests/periph_timer (#19543) * Freeze into semtech_loramac_send call (pkg/semtech-loramac) (#18790) * gcoap: gcoap_req_send and related should return negative for errors (#19393) * gnrc_ipv6_nib: Neighbor Solicitation ping-pong (#18164) * I2C not working under RIOT with U8G2 pkg (#16381) * ieee802154_security: Nonce is reused after reboot (#16844) * kconfiglib.py choice override of menuconfig bug (#19069) * 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) * MTD is confusing (#17663) * nanocoap: incomplete response to /.well-known/core request (#10731) * Order of auto_init functions (#13541) * periph_rtt: rtt_set_alarm() blocks IRQ for 80 plus usec on STM32 (#19520) * pkg/tinydtls: Multiple issues (#16108) * Potential race condition in compile_and_test_for_board.py (#12621) * RIOT is saw-toothing in energy consumption (even when idling) (#5009) * riotboot: ECC faults (eg. in STM32L5 or STM32WB) not handled gracefully (#17874) * rust-gcoap example is incompatible with littlefs2 (#17817) * Samr30/gpio: Erasing then write mux can generate spurious IRQ (#19993) * samr34-xpro: some tests failing (#19223) * sock_dtls: unable to send big messages (#17996) * spurious IRQs in `periph_timer` (#18976) * stdio_ethos: infinite shell loop (#17972) * stdio_tinyusb_cdc_acm hangs with picolibc (#19277) * STM32 Nucleo boards improperly clocked (#19778) * STM32F4-discovery + mrf24j40 not working (#19711) * sys/riotboot: documentation issues (#11243) * sys/usb/usbus/cdc/ecm: interface thread blocked when connected host interface is down (#21098) * tests/lwip target board for python test is hardcoded to native (#6533) * tests/periph_flashpage: failing on stm32l475ve (#17280) * tests/pkg/relic is failing on samr21-xpro when built using llvm (#19903) * tests/pkg_libhydrogen: test fails on master for the samr21-xpro with LLVM (#15066) * tests/pkg_libschc: Failing test_reassemble_success_ack_always (#19445) * tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888) * tests: broken with stdio_rtt if auto_init is disabled (#13120) * tests: some tests don't work with `newlib` lock functions. (#12732) * Types in `byteorder.h` need a cleanup (#14737) * USB identifiers with funny characters create mojibake (#17776) * usbus/msc: wrong error handling and behavior after usb reset (#19478) * Use of multiple CAN bus on compatible boards (#14801) * ztimer is incompatible with real-time requirements (#18883) There are 167 known issues in this release Fixed Issues since the last release (2024.10) ============================================= * cpu/nrf52: Add Make Option to Enable Pinreset (#20775) 1 fixed issues since last release (2024.10) Acknowledgements ================ We would like to thank all companies that provided us with hardware for porting and testing RIOT. 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.
5f23453
2025-02-04 21:29
下载
下载
请输入验证码,防止盗链导致资源被占用
取消
下载
C
1
https://gitee.com/mirrors/riot-os.git
git@gitee.com:mirrors/riot-os.git
mirrors
riot-os
riot-os
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册