Skip to content

Commit

Permalink
[release] Update changelog for 2024q4 release
Browse files Browse the repository at this point in the history
  • Loading branch information
salkinium committed Dec 30, 2024
1 parent f402893 commit d813f90
Show file tree
Hide file tree
Showing 4 changed files with 264 additions and 0 deletions.
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Hans Schily <hans.schily@rwth-aachen.de>
Henrik Hose <henrik.hose@rwth-aachen.de>
Jacob Schultz Andersen <schultz.jacob@gmail.com>
Jakob Riepler <jakob@chaosfield.at>
Jan-Gerd Meß <jan-gerd.mess@dlr.de>
Jeff McBride <mcbridejc@gmail.com>
Jens Böckmann <jensboe@outlook.de>
Jonas Kazem Andersen <jonas.kazem.andersen@gmail.com>
Expand Down
138 changes: 138 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,130 @@ pay attention to. Medium impact changes are also worth looking at.

<!--releases-->

## 2025-01-01: 2024q4 release

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:

```cpp
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 in 2026. 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`][].

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` and `lbuild 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][].

<details>
<summary>Detailed changelog</summary>

#### 2024-11-05: Add driver for DW3110

PR [#1210][] -> [e579250][].
Tested in hardware by [@Javask][] and [@rleh][].

#### 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-12-01: Deprecate Protothreads and Resumable Functions

PR [#1232][] -> [e92dc1d][].
Tested in hardware by [@salkinium][].

#### 2024-12-30: Add RTC peripheral driver for STM32

PR [#1242][] -> [f402893][].
Tested in hardware by [@salkinium][].

</details>


## 2024-10-01: 2024q3 release

This release covers everything from 2024-07-01 and has been tested with avr-gcc
Expand Down Expand Up @@ -3270,6 +3394,7 @@ Please note that contributions from xpcc were continuously ported to modm.
[2024q1]: https://github.com/modm-io/modm/releases/tag/2024q1
[2024q2]: https://github.com/modm-io/modm/releases/tag/2024q2
[2024q3]: https://github.com/modm-io/modm/releases/tag/2024q3
[2024q4]: https://github.com/modm-io/modm/releases/tag/2024q4
[@19joho66]: https://github.com/19joho66
[@ASMfreaK]: https://github.com/ASMfreaK
Expand Down Expand Up @@ -3302,11 +3427,13 @@ Please note that contributions from xpcc were continuously ported to modm.
[@dergraaf]: https://github.com/dergraaf
[@dhebbeker]: https://github.com/dhebbeker
[@el-han]: https://github.com/el-han
[@frnktank]: https://github.com/frnktank
[@gueldenstone]: https://github.com/gueldenstone
[@henrikssn]: https://github.com/henrikssn
[@hshose]: https://github.com/hshose
[@jasa]: https://github.com/jasa
[@jensboe]: https://github.com/jensboe
[@jgmess-dlr]: https://github.com/jgmess-dlr
[@kapacuk]: https://github.com/kapacuk
[@klsc-zeat]: https://github.com/klsc-zeat
[@lgili]: https://github.com/lgili
Expand Down Expand Up @@ -3335,6 +3462,7 @@ Please note that contributions from xpcc were continuously ported to modm.
[@twasilczyk]: https://github.com/twasilczyk
[@twast92]: https://github.com/twast92
[@victorandrehc]: https://github.com/victorandrehc
[@vishwamartur]: https://github.com/vishwamartur
[@xgzeng]: https://github.com/xgzeng
[`modm:board:arduino-nano`]: https://modm.io/reference/module/modm-board-arduino-nano
Expand Down Expand Up @@ -3389,6 +3517,7 @@ Please note that contributions from xpcc were continuously ported to modm.
[`modm:driver:bno055`]: https://modm.io/reference/module/modm-driver-bno055
[`modm:driver:cat24aa`]: https://modm.io/reference/module/modm-driver-cat24aa
[`modm:driver:cycle_counter`]: https://modm.io/reference/module/modm-driver-cycle_counter
[`modm:driver:dw3110`]: https://modm.io/reference/module/modm-driver-dw3110
[`modm:driver:encoder.output`]: https://modm.io/reference/module/modm-driver-encoder-output
[`modm:driver:encoder_input.bitbang`]: https://modm.io/reference/module/modm-driver-encoder_input-bitbang
[`modm:driver:encoder_input`]: https://modm.io/reference/module/modm-driver-encoder_input
Expand Down Expand Up @@ -3489,7 +3618,12 @@ Please note that contributions from xpcc were continuously ported to modm.
[#1204]: https://github.com/modm-io/modm/pull/1204
[#1206]: https://github.com/modm-io/modm/pull/1206
[#1209]: https://github.com/modm-io/modm/pull/1209
[#1210]: https://github.com/modm-io/modm/pull/1210
[#1219]: https://github.com/modm-io/modm/pull/1219
[#122]: https://github.com/modm-io/modm/pull/122
[#1232]: https://github.com/modm-io/modm/pull/1232
[#1242]: https://github.com/modm-io/modm/pull/1242
[#1248]: https://github.com/modm-io/modm/pull/1248
[#132]: https://github.com/modm-io/modm/pull/132
[#136]: https://github.com/modm-io/modm/pull/136
[#153]: https://github.com/modm-io/modm/pull/153
Expand Down Expand Up @@ -3874,6 +4008,7 @@ Please note that contributions from xpcc were continuously ported to modm.
[a8edbe8]: https://github.com/modm-io/modm/commit/a8edbe8
[ab9bcee]: https://github.com/modm-io/modm/commit/ab9bcee
[ac46099]: https://github.com/modm-io/modm/commit/ac46099
[ae74049]: https://github.com/modm-io/modm/commit/ae74049
[af2b352]: https://github.com/modm-io/modm/commit/af2b352
[afaea7f]: https://github.com/modm-io/modm/commit/afaea7f
[afbd533]: https://github.com/modm-io/modm/commit/afbd533
Expand Down Expand Up @@ -3929,9 +4064,12 @@ Please note that contributions from xpcc were continuously ported to modm.
[e3c0321]: https://github.com/modm-io/modm/commit/e3c0321
[e46e7df]: https://github.com/modm-io/modm/commit/e46e7df
[e4b1a4a]: https://github.com/modm-io/modm/commit/e4b1a4a
[e579250]: https://github.com/modm-io/modm/commit/e579250
[e92dc1d]: https://github.com/modm-io/modm/commit/e92dc1d
[eb2748e]: https://github.com/modm-io/modm/commit/eb2748e
[eba68a4]: https://github.com/modm-io/modm/commit/eba68a4
[eda224e]: https://github.com/modm-io/modm/commit/eda224e
[f402893]: https://github.com/modm-io/modm/commit/f402893
[f4c7492]: https://github.com/modm-io/modm/commit/f4c7492
[f4d5d6c]: https://github.com/modm-io/modm/commit/f4d5d6c
[f5cdf6a]: https://github.com/modm-io/modm/commit/f5cdf6a
Expand Down
122 changes: 122 additions & 0 deletions docs/release/2024q4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
## 2025-01-01: 2024q4 release

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:

```cpp
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 in 2026. 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`.

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` and `lbuild 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.

<details>
<summary>Detailed changelog</summary>

#### 2024-11-05: Add driver for DW3110

PR #1210 -> e579250.
Tested in hardware by @Javask and @rleh.

#### 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-12-01: Deprecate Protothreads and Resumable Functions

PR #1232 -> e92dc1d.
Tested in hardware by @salkinium.

#### 2024-12-30: Add RTC peripheral driver for STM32

PR #1242 -> f402893.
Tested in hardware by @salkinium.

</details>
3 changes: 3 additions & 0 deletions tools/scripts/authors.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,14 @@
"Erik Henriksson": "henrikssn",
"Fabian Greif": "dergraaf",
"Felix Petriconi": "FelixPetriconi",
"Frank Altheim": "frnktank",
"Georgi Grinshpun": "georgi-g",
"Hannes Ellinger": "el-han",
"Hans Schily": "RzwoDzwo",
"Henrik Hose": "hshose",
"Jacob Schultz Andersen": "jasa",
"Jakob Riepler": "XDjackieXD",
"Jan-Gerd Meß": "jgmess-dlr",
"Jeff McBride": "mcbridejc",
"Jens Böckmann": "jensboe",
"Jonas Kazem Andersen": "JKazem",
Expand Down Expand Up @@ -96,6 +98,7 @@
"Tomasz Wasilczyk": "twasilczyk",
"Valeriy Osipov": "SgtPepperFTW",
"Victor Costa": "victorandrehc",
"Vishwanath Martur": "vishwamartur",
"Vivien Henry": "lukh",
"Zawadniak Pedro": "PDR5",
"Álan Crístoffer": "acristoffers",
Expand Down

0 comments on commit d813f90

Please sign in to comment.