Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2021q4 release #797

Merged
merged 3 commits into from
Jan 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .mailmap
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Amar <fb39ca4@gmail.com>
Amarok McLion <amarokmclion@gmail.com>
Andre Gilerson <andre.gilerson@gmail.com>
Andrey Kunitsyn <blackicebox@gmail.com>
Antal Szabó <szabo.antal.92@gmail.com>
Arjun Sarin <arjun.sarin@rwth.aachen.de>
Benjamin <benjamin.carrick@posteo.de>
Expand Down Expand Up @@ -67,13 +68,14 @@ Sascha Schade <stronglytyp3d@gmail.com> <strongly-typed@nan>
Sascha Schade <stronglytyp3d@gmail.com> <stronly@typed.nan>
Sebastian Birke <git@se-bi.de>
Sergiy Yevtushenko <sergiy.yevtushenko@gmail.com>
Valeriy Osipov <valeriyosipov91@gmail.com>
Steven Macías <ed.steven.macias@gmail.com>
Tarik TIRE <kronos@aspbooster.com>
Thomas Figueroa <thomas@dwarfcraft.com>
Thomas Sommer <thomas@tomsaw.de>
Thorsten Lajewski <thorsten.lajewski@rwth-aachen.de>
Tomasz Chyrowicz <tomasz.chyrowicz@gmail.com>
Tomasz Wasilczyk <tomkiewi@gmail.com>
Valeriy Osipov <valeriyosipov91@gmail.com>
Vivien Henry <vivien.henry@inductivebrain.fr>
Zawadniak Pedro <zawadniak.pedro@gmail.com>
Álan Crístoffer <acristoffers@gmail.com>
235 changes: 235 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

186 changes: 186 additions & 0 deletions docs/release/2021q4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
## 2022-01-01: 2021q4 release

This release covers everything from 2021-10-01 and has been tested with avr-gcc
v10.2.0 from Upstream and arm-none-eabi-gcc 10.3-2021.10 from Arm.

Breaking changes:

- `modm:driver:encoder_input.bitbang` has changed its API.
- `modm::Saturated` class has been completely refactored.

Features:

- STM32F1 internal flash driver.
- Use FreeRTOS with static memory by default.
- SAMG UART driver.
- SAMG ADC driver.
- STM32F4 Ethernet support via FreeRTOS+TCP.
- STM32F4 and STM32F7 DMA support.
- VSCode IDE support via `modm:ide:vscode`.
- Experimental support for fibers.
- Vector table remap into SRAM on Cortex-M0+ and STM32F0.
- STM32H7 DMA driver.

Integrated Projects:

- ETL added at v20.22.0.
- TinyUSB upgraded to v0.12.0.
- FreeRTOS upgraded to 202112.00.
- LVGL upgraded to v8.1.0.

Fixes:

- Remove heap dependency for static virtual destructors.
- Correct STM32G4/L4+ voltage scaling and boost mode.
- Move main stack to DMA-able memory for STM32F4.
- Linkerscript alignment issues for copy sections.
- Zero SRAM after uploading to prevent false positive RTT identifier.
- Off-by-One error in EXTI IRQ handler.
- DMA data fixes for STM32G0, L4, H7 and WL.
- Do not reset STM32 Advanced Timer RCR during configuration.

New development boards:

- NUCLEO-L053R8 as `modm:board:nucleo-l053r8`.

New device drivers:

- TMP12{1,3,5} temperature sensor as `modm:driver:tmp12x`.
- Encoder Input via STM32 Timer as `modm:driver:encoder_input`.
- MCP7941X RTC driver with EUI-48/64 and EEPROM as `modm:driver:mcp7941x`.
- ADS816X ADC diver as `modm:driver:ads816x`.

Known bugs:

- Cannot set breakpoints on specific lines in debug profile. See #777.
- C++20 is not fully implemented by GCC10 yet, however modm does not use all
features yet anyways. See #326.
- STM32F7: D-Cache not enabled by default. See #485.
- `lbuild build` and `lbuild clean` do not remove all previously generated files
when the configuration changes. See #285.
- Generating modm on Windows creates paths with `\` that are not compatible with
Unix. See #310.
- `arm-none-eabi-gdb` TUI and GDBGUI interfaces are not supported on Windows.
See #591.

Many thanks to all our contributors.
A special thank you to our first timers 🎉:

- Andrey Kunitsyn (@andryblack) 🎉
- Christopher Durand (@chris-durand)
- Jacob Schultz Andersen (@jasa)
- Jeff McBride (@mcbridejc)
- Kaelin Laundry (@WasabiFan)
- Niklas Hauser (@salkinium)
- Odin Holmes (@odinthenerd) 🎉
- Pavel Pletenev (@ASMfreaK)
- Raphael Lehmann (@rleh)
- Sebastian Birke (@se-bi)
- Steven Macías (@StevenMacias) 🎉
- Thomas Sommer (@TomSaw)

PR #797 -> 2021q4.

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

#### 2021-12-31: Add ADS816X ADC driver

PR #796 -> 3ba71c9.
Tested in hardware by @rleh.

#### 2021-12-31: Add STM32H7 DMA driver

PR #772 -> e3c0321.
Tested in hardware by @chris-durand.

#### 2021-12-19: Add MCP7941X RTC driver

PR #748 -> 5a9ad25.
Tested in hardware by @rleh.

#### 2021-12-14: Refactor modm::Saturated

PR #780 -> c0a8c51.
Tested in hardware by @TomSaw with **high impact** on API.

#### 2021-11-18: Add vector table remap on Cortex-M0+ and STM32F0

PR #773 -> fdbb45b.
Tested in hardware by @chris-durand.

#### 2021-11-15: Add encoder input driver via STM32 timers

PR #775 -> d46c09d.
Tested in hardware by @TomSaw.

#### 2021-10-29: Add basic support for fibers

You must enable the hidden repository option `modm:__fibers` to use them.

PR #743 -> 3936a28.
Tested in hardware by @salkinium.

#### 2021-10-29: Add VSCode IDE integration

PR #764 -> 6b4d656.
Tested by @rleh and @salkinium.

#### 2021-10-28: Add DMA driver for STM32F4 and STM32F7

PR #629 -> 5dcdf1d.
Tested in hardware by @rleh.

#### 2021-10-25: Fix linkerscript alignment issues

This fixes copying data sections with the wrong alignment.

PR #763 -> b78acd5.
Tested in hardware by @salkinium with **high impact** on `.fastcode` section.

#### 2021-10-23: Add SAMG ADC driver

PR #753 -> 82bc4a9.
Tested in hardware by @mcbridejc.

#### 2021-10-22: Add SAMG UART driver

PR #761 -> 6e9f000.
Tested in hardware by @mcbridejc.

#### 2021-10-21: Add NUCLEO-L053R8 board and example

PR #756 -> 0d6a937.
Tested in hardware by @salkinium.

#### 2021-10-21: Add TMP12x temperature sensor driver

PR #757 -> 624ce10.
Tested in hardware by @chris-durand.

#### 2021-10-19: FreeRTOS with static memory

Adds static allocation support when used without `modm:platform:heap` module.

PR #750 -> 9e50a16.
Tested in hardware by @andryblack and @salkinium.

#### 2021-10-14: Weak operator delete

Static virtual C++ destructors can emit operator delete, this marks the
operators as weak which prevents pulling in Newlib.

PR #747 -> 387a625.
Tested in hardware by @delphi and @salkinium.

#### 2021-10-12: Add ETL module

PR #667 -> 2ef7a29.
Tested in hardware by @rleh and @salkinium.

#### 2021-10-10: Add STM32F1 flash driver

PR #745 -> f4c7492.
Tested in hardware by @delphi.

</details>
3 changes: 3 additions & 0 deletions ext/aws/FreeRTOSIPConfig.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,7 @@
#endif
%% endif

// Temporary fix for this issue: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/pull/403
#define ipconfigTCP_SRTT_MINIMUM_VALUE_MS 50

#endif // FREERTOS_IP_CONFIG_H
2 changes: 1 addition & 1 deletion ext/aws/freertos
Submodule freertos updated 73 files
+370 −128 FreeRTOS-Plus-TCP/FreeRTOS_ARP.c
+81 −26 FreeRTOS-Plus-TCP/FreeRTOS_DHCP.c
+71 −69 FreeRTOS-Plus-TCP/FreeRTOS_DNS.c
+483 −319 FreeRTOS-Plus-TCP/FreeRTOS_IP.c
+317 −102 FreeRTOS-Plus-TCP/FreeRTOS_Sockets.c
+13 −31 FreeRTOS-Plus-TCP/FreeRTOS_Stream_Buffer.c
+382 −274 FreeRTOS-Plus-TCP/FreeRTOS_TCP_IP.c
+560 −502 FreeRTOS-Plus-TCP/FreeRTOS_TCP_WIN.c
+133 −115 FreeRTOS-Plus-TCP/FreeRTOS_UDP_IP.c
+45 −11 FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
+15 −2 FreeRTOS-Plus-TCP/include/FreeRTOS_ARP.h
+25 −21 FreeRTOS-Plus-TCP/include/FreeRTOS_DHCP.h
+8 −5 FreeRTOS-Plus-TCP/include/FreeRTOS_DNS.h
+39 −16 FreeRTOS-Plus-TCP/include/FreeRTOS_IP.h
+63 −58 FreeRTOS-Plus-TCP/include/FreeRTOS_IP_Private.h
+15 −2 FreeRTOS-Plus-TCP/include/FreeRTOS_Sockets.h
+2 −2 FreeRTOS-Plus-TCP/include/FreeRTOS_Stream_Buffer.h
+2 −2 FreeRTOS-Plus-TCP/include/FreeRTOS_TCP_IP.h
+19 −30 FreeRTOS-Plus-TCP/include/FreeRTOS_TCP_WIN.h
+2 −2 FreeRTOS-Plus-TCP/include/FreeRTOS_UDP_IP.h
+2 −2 FreeRTOS-Plus-TCP/include/FreeRTOS_errno_TCP.h
+34 −2 FreeRTOS-Plus-TCP/include/IPTraceMacroDefaults.h
+2 −2 FreeRTOS-Plus-TCP/include/NetworkBufferManagement.h
+2 −2 FreeRTOS-Plus-TCP/include/NetworkInterface.h
+2 −2 FreeRTOS-Plus-TCP/portable/BufferManagement/BufferAllocation_1.c
+3 −3 FreeRTOS-Plus-TCP/portable/BufferManagement/BufferAllocation_2.c
+2 −2 FreeRTOS-Plus-TCP/portable/Compiler/GCC/pack_struct_end.h
+2 −2 FreeRTOS-Plus-TCP/portable/Compiler/GCC/pack_struct_start.h
+2 −2 FreeRTOS-Plus-TCP/tools/tcp_utilities/include/tcp_dump_packets.h
+2 −2 FreeRTOS-Plus-TCP/tools/tcp_utilities/include/tcp_mem_stats.h
+2 −2 FreeRTOS-Plus-TCP/tools/tcp_utilities/include/tcp_netstat.h
+2 −2 FreeRTOS-Plus-TCP/tools/tcp_utilities/tcp_dump_packets.c
+2 −2 FreeRTOS-Plus-TCP/tools/tcp_utilities/tcp_mem_stats.c
+2 −2 FreeRTOS-Plus-TCP/tools/tcp_utilities/tcp_netstat.c
+160 −0 FreeRTOS-Plus-TCP/tools/uncrustify.complexity.cfg
+1 −1 FreeRTOS/Source/croutine.c
+6 −4 FreeRTOS/Source/event_groups.c
+22 −12 FreeRTOS/Source/include/FreeRTOS.h
+1 −1 FreeRTOS/Source/include/StackMacros.h
+1 −1 FreeRTOS/Source/include/atomic.h
+37 −37 FreeRTOS/Source/include/croutine.h
+1 −1 FreeRTOS/Source/include/deprecated_definitions.h
+57 −57 FreeRTOS/Source/include/event_groups.h
+42 −42 FreeRTOS/Source/include/list.h
+48 −48 FreeRTOS/Source/include/message_buffer.h
+5 −4 FreeRTOS/Source/include/mpu_prototypes.h
+33 −2 FreeRTOS/Source/include/mpu_wrappers.h
+17 −17 FreeRTOS/Source/include/portable.h
+1 −1 FreeRTOS/Source/include/projdefs.h
+75 −75 FreeRTOS/Source/include/queue.h
+81 −67 FreeRTOS/Source/include/semphr.h
+11 −3 FreeRTOS/Source/include/stack_macros.h
+47 −47 FreeRTOS/Source/include/stream_buffer.h
+254 −205 FreeRTOS/Source/include/task.h
+16 −14 FreeRTOS/Source/include/timers.h
+1 −1 FreeRTOS/Source/list.c
+1 −1 FreeRTOS/Source/portable/GCC/ARM_CM0/port.c
+1 −1 FreeRTOS/Source/portable/GCC/ARM_CM0/portmacro.h
+2 −2 FreeRTOS/Source/portable/GCC/ARM_CM3/port.c
+1 −1 FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h
+2 −2 FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c
+1 −1 FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h
+2 −2 FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c
+1 −1 FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/portmacro.h
+2 −2 FreeRTOS/Source/portable/MemMang/heap_1.c
+2 −2 FreeRTOS/Source/portable/MemMang/heap_2.c
+1 −1 FreeRTOS/Source/portable/MemMang/heap_3.c
+1 −1 FreeRTOS/Source/portable/MemMang/heap_4.c
+1 −1 FreeRTOS/Source/portable/MemMang/heap_5.c
+27 −26 FreeRTOS/Source/queue.c
+7 −6 FreeRTOS/Source/stream_buffer.c
+48 −12 FreeRTOS/Source/tasks.c
+13 −12 FreeRTOS/Source/timers.c
2 changes: 1 addition & 1 deletion ext/etlcpp/etl
Submodule etl updated 139 files
2 changes: 1 addition & 1 deletion ext/hathach/tinyusb
Submodule tinyusb updated 59 files
+0 −12 src/class/audio/audio.h
+18 −2 src/class/audio/audio_device.c
+2 −2 src/class/bth/bth_device.c
+35 −36 src/class/cdc/cdc.h
+4 −4 src/class/cdc/cdc_device.h
+2 −2 src/class/hid/hid_device.c
+12 −12 src/class/hid/hid_device.h
+8 −0 src/class/hid/hid_host.c
+399 −165 src/class/msc/msc_device.c
+1 −1 src/class/msc/msc_device.h
+6 −2 src/class/net/ecm_rndis_device.c
+69 −0 src/class/net/ncm.h
+510 −0 src/class/net/ncm_device.c
+43 −10 src/class/net/net_device.h
+24 −15 src/class/vendor/vendor_device.c
+4 −4 src/class/vendor/vendor_device.h
+472 −0 src/class/video/video.h
+1,088 −0 src/class/video/video_device.c
+97 −0 src/class/video/video_device.h
+22 −17 src/common/tusb_common.h
+3 −0 src/common/tusb_compiler.h
+16 −1 src/common/tusb_types.h
+13 −1 src/device/dcd.h
+3 −0 src/device/dcd_attr.h
+156 −93 src/device/usbd.c
+85 −17 src/device/usbd.h
+2 −1 src/device/usbd_pvt.h
+30 −23 src/host/usbh.c
+7 −0 src/osal/osal.h
+4 −4 src/osal/osal_freertos.h
+226 −90 src/portable/dialog/da146xx/dcd_da146xx.c
+52 −64 src/portable/espressif/esp32sx/dcd_esp32sx.c
+8 −0 src/portable/microchip/samd/dcd_samd.c
+6 −0 src/portable/microchip/samg/dcd_samg.c
+6 −0 src/portable/microchip/samx7x/dcd_samx7x.c
+7 −1 src/portable/mindmotion/mm32/dcd_mm32f327x_otg.c
+66 −11 src/portable/nordic/nrf5x/dcd_nrf5x.c
+6 −0 src/portable/nuvoton/nuc120/dcd_nuc120.c
+31 −11 src/portable/nuvoton/nuc121/dcd_nuc121.c
+6 −0 src/portable/nuvoton/nuc505/dcd_nuc505.c
+158 −80 src/portable/nxp/khci/dcd_khci.c
+6 −0 src/portable/nxp/lpc17_40/dcd_lpc17_40.c
+6 −0 src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c
+270 −100 src/portable/nxp/transdimension/dcd_transdimension.c
+59 −50 src/portable/raspberrypi/rp2040/dcd_rp2040.c
+1 −2 src/portable/raspberrypi/rp2040/hcd_rp2040.c
+9 −12 src/portable/raspberrypi/rp2040/rp2040_usb.c
+2 −53 src/portable/raspberrypi/rp2040/rp2040_usb.h
+13 −1 src/portable/renesas/usba/dcd_usba.c
+6 −0 src/portable/silabs/efm32/dcd_efm32.c
+6 −0 src/portable/sony/cxd56/dcd_cxd56.c
+6 −0 src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+79 −32 src/portable/st/synopsys/dcd_synopsys.c
+5 −0 src/portable/template/dcd_template.c
+6 −0 src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
+6 −0 src/portable/valentyusb/eptri/dcd_eptri.c
+1 −1 src/tusb.c
+8 −4 src/tusb.h
+50 −7 src/tusb_option.h
2 changes: 1 addition & 1 deletion ext/lvgl/lvgl
Submodule lvgl updated 236 files
2 changes: 1 addition & 1 deletion ext/microchip/sam
Submodule sam updated 337 files
5 changes: 4 additions & 1 deletion tools/scripts/authors.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"Amar": "fb39ca4",
"Amarok McLion": "amarokmclion",
"Andre Gilerson": "AndreGilerson",
"Andrey Kunitsyn": "andryblack",
"Antal Szabó": "Sh4rK",
"Arjun Sarin": None,
"Benjamin Carrick": "nesos",
Expand Down Expand Up @@ -56,20 +57,22 @@
"Nicolai Bruhn": "nicoBruhn",
"Niklas Hauser": "salkinium",
"Niklas Meyer": "Zweistein885",
"Odin Holmes": "odinthenerd",
"Patrick Servello": "patrick--",
"Pavel Pletenev": "ASMfreaK",
"Philipp Graf": "luxarf",
"Raphael Lehmann": "rleh",
"Sascha Schade": "strongly-typed",
"Sebastian Birke": "se-bi",
"Sergiy Yevtushenko": "siy",
"Valeriy Osipov": "SgtPepperFTW",
"Steven Macías": "StevenMacias",
"Tarik TIRE": "7Kronos",
"Thomas Figueroa": "OperativeF",
"Thomas Sommer": "TomSaw",
"Thorsten Lajewski": "TheTh0r",
"Tomasz Chyrowicz": "tomchy",
"Tomasz Wasilczyk": "twasilczyk",
"Valeriy Osipov": "SgtPepperFTW",
"Vivien Henry": "lukh",
"Zawadniak Pedro": "PDR5",
"Álan Crístoffer": "acristoffers",
Expand Down