This release covers everything from 2024-10-01 and has been tested with avr-gcc
v13.2.0 from Upstream and arm-none-eabi-gcc v13.2.1 from xpack.
Breaking changes:
Protothreads and Resumables are deprecated! Please use Fibers instead!
Note that you can disable the deprecation by resetting the option
modm:processing:protothread:use_fiber
to false
, however, you will be limited
to using GCC12 as GCC13 and newer does not compile our implementation anymore.
A shim is provided to allow the use of Protothreads and Resumables with Fibers
without any significant modification of the existing code. However you must
replace the main loop calling all protothreads with the fiber scheduler:
int main()
{
/*
while(true)
{
protothread1.update();
protothread2.update();
}
*/
modm::fiber::Scheduler::run();
return 0;
}
The modm:processing:protothread
and modm:processing:resumable
modules will
be removed by the end of 2025. Please port your code to use fibers instead.
Consult the modm:processing:fiber
module docs for more information.
Features:
- Add efficient stack overflow check in fiber yield function.
- Enable D-Cache for Cortex-M7 if DMA is not used.
- Support for GCC13 which was blocked on deprecating Resumables and Protothreads.
- Add RTC driver for STM32.
- Enable low speed clock input on all STM32 boards.
Integrated Projects:
- CMSIS-Core upgraded to v6.1.0.
- CMSIS-DSP upgraded to v1.16.2.
- STM32L4 headers upgraded to v1.7.4.
- STM32F1 headers upgraded to v4.3.5.
- LVGL upgraded to v9.2.0.
- TinyUSB upgraded to v0.17.
- printf upgraded to v6.2.0.
- ETL upgraded to v20.39.4.
- nanopb upgraded to v0.4.9.
Fixes:
- Make AMNB usable in Fibers.
- Reset AVRs on abandonment.
- Prevent RX FIFO overflow in STM32 SPI master.
- Fix
Timeout::wait()
implementation not waiting. - Fix IWDG prescaler computation on STM32.
- Support Python 3.13 in modm_tools.
New device drivers:
- DW3310 Ultra-Wide Band driver as
modm:driver:dw3110
.
New development boards:
- WeAct Studio STM32C011F6 as
modm:board:weact-c011f6
.
Known bugs:
- STM32F723 is missing support to use built-in USB HS PHY. See #1171.
- OpenOCD cannot enable SWO on STM32H7 targets. See #1079.
arm-none-eabi-gdb
TUI and GDBGUI interfaces are not supported on Windows.
See #591.- Generating modm on Windows creates paths with
\
that are not compatible with
Unix. See #310. lbuild build
andlbuild clean
do not remove all previously generated files
when the configuration changes. See #285.
Many thanks to all our contributors.
A special shoutout to first timers 🎉:
- Andrey Kunitsyn (@andryblack)
- Christopher Durand (@chris-durand)
- Elias H. 🎉
- Frank Altheim (@frnktank) 🎉
- Jan-Gerd Meß (@jgmess-dlr) 🎉
- Kaelin Laundry (@WasabiFan)
- Michael Jossen (@Javask)
- Niklas Hauser (@salkinium)
- Raphael Lehmann (@rleh)
- Rasmus Kleist (@rasmuskleist)
- Vishwanath Martur (@vishwamartur) 🎉
PR #1248 -> 2024q4.
Detailed changelog
2025-01-01: Add WeAct Studio STM32C011F6 board
PR #1249 -> 7ba2fbb.
Tested in hardware by @salkinium.
2024-12-30: Add RTC peripheral driver for STM32
PR #1242 -> f402893.
Tested in hardware by @salkinium.
2024-12-01: Deprecate Protothreads and Resumable Functions
PR #1232 -> e92dc1d.
Tested in hardware by @salkinium.
2024-11-10: Add stack overflow check to fibers
Stack overflows lead to abandonment with the fbr.stkof
assertion.
PR #1219 -> ae74049.
Tested in hardware by @salkinium.
2024-11-05: Add driver for DW3110
PR #1210 -> e579250.
Tested in hardware by @Javask and @rleh.