nuttx/arch/arm/src/stm32h7
Alexander Lerach a9b258aa68 arch/arm/stm32h7: Fix UART TX DMA getting stuck
When closing a serial port an ongoing TX DMA transfer will be stopped. This can cause
one (or multiple) the following:

- dev->dmatx.length != 0
- dev->dmatx.nlength != 0
- stm32_dmaresidual returning a non-zero residual

This is caused by length/nlength not being set to 0 at startup or during closing.
In addition the DMA_SxNDTR register is not set to 0 at startup or during closing.

This commit solves the issue by setting the variables and register to 0 during closing.

Signed-off-by: Alexander Lerach <alexander@auterion.com>

arch/arm/stm32h7: Add review feedback regarding style

Removed non-needed spaces.
Aligned style of documentation.

Signed-off-by: Alexander Lerach <alexander@auterion.com>
2025-10-21 01:10:05 +08:00
..
hardware arch/arm/stm32h7: add support for STM32H750xx chips 2025-09-21 16:11:39 -03:00
chip.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
CMakeLists.txt net/mdio: add mdio bus 2025-09-25 16:24:18 +08:00
Kconfig arch/arm/src/stm32h7: Fix Kconfig style 2025-09-29 10:56:58 -03:00
Make.defs net/mdio: add mdio bus 2025-09-25 16:24:18 +08:00
stm32.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_adc.c arch/arm/stm32{h5|h7|l4}/adc: move ADC_MAX_SAMPLES to Kconfig 2025-07-06 21:27:52 -03:00
stm32_adc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_alarm.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_allocateheap.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_bbsram.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_bbsram.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_capture.c arm/stm32h7: update makefile for capture & config name 2025-08-14 20:46:37 +08:00
stm32_capture.h arch/stm32h7: Fix timer capture 2025-08-12 20:21:14 +08:00
stm32_capture_lowerhalf.c docs(h743zi/capture): add capture driver docs 2025-08-14 20:46:37 +08:00
stm32_dbgmcu.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_dma.c arch/arm/stm32h7: Fix UART TX DMA getting stuck 2025-10-21 01:10:05 +08:00
stm32_dma.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_dtcm.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_dtcm.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_dualcore.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_dualcore.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_ethernet.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
stm32_ethernet.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_exti.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_exti_alarm.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_exti_gpio.c arch/arm/stm32h7: add support for STM32H750xx chips 2025-09-21 16:11:39 -03:00
stm32_exti_wakeup.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_fdcan_sock.c arch/arm/src/*/stm32_fdcan_sock.c: prevent interrupt flood on errors. 2025-07-04 02:00:52 +08:00
stm32_fdcan_sock.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_flash.c arch/arm/stm32h7: add support for STM32H750xx chips 2025-09-21 16:11:39 -03:00
stm32_flash.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_fmc.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_fmc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_gpio.c arch/arm/stm32h7: add support for STM32H750xx chips 2025-09-21 16:11:39 -03:00
stm32_gpio.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_hsem.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_hsem.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_i2c.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
stm32_i2c.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_irq.c arch/init: call up_color_intstack before up_irq_enable 2025-10-14 17:42:01 +08:00
stm32_iwdg.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_lowputc.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_lowputc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_lptim.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_lptim.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_lse.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_lsi.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_ltdc.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
stm32_ltdc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_mdio.c net/mdio: add mdio bus 2025-09-25 16:24:18 +08:00
stm32_mdio.h net/mdio: add mdio bus 2025-09-25 16:24:18 +08:00
stm32_mpuinit.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_mpuinit.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_oneshot.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_oneshot.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_oneshot_lowerhalf.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_otg.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_otgdev.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
stm32_otghost.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
stm32_pm.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_pminitialize.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_pmsleep.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_pmstandby.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_pmstop.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_pwm.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
stm32_pwm.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_pwr.c arch/arm:use UP_DSB, UP_DMB, UP_ISB as barrier standard API 2025-01-20 20:13:07 +08:00
stm32_pwr.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_qencoder.c use small lock in following files: 2024-12-23 22:53:19 +08:00
stm32_qencoder.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_qspi.c arch/arm:use UP_DSB, UP_DMB, UP_ISB as barrier standard API 2025-01-20 20:13:07 +08:00
stm32_qspi.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_rcc.c arch/arm/stm32h7: add support for STM32H750xx chips 2025-09-21 16:11:39 -03:00
stm32_rcc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_rng.c arch/arm/stm32h7: support for /dev/random device 2025-07-10 09:52:58 -03:00
stm32_rptun.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
stm32_rptun.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_rtc.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_rtc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_rtc_lowerhalf.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_sdmmc.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
stm32_sdmmc.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_serial.c arch/arm/stm32h7: Fix UART TX DMA getting stuck 2025-10-21 01:10:05 +08:00
stm32_spi.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_spi.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_spi_slave.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_start.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
stm32_start.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_tickless.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_tim.c arch/arm/stm32/: Added enable/disable to timer low level ops. 2025-01-07 23:32:06 +08:00
stm32_tim.h arch/arm/stm32/: Added enable/disable to timer low level ops. 2025-01-07 23:32:06 +08:00
stm32_tim_lowerhalf.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_timerisr.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_uart.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_uid.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_uid.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_usbhost.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_usbhost.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_userspace.c arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_userspace.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_wdg.h arch/arm: migrate to SPDX identifier 2024-12-06 09:25:23 +08:00
stm32_wwdg.c arch/arm/stm32h7: Fix and enhance WWDG (Window Watchdog) support 2025-09-20 09:09:42 +08:00
stm32h7b3xx_flash.c arch/arm:use UP_DSB, UP_DMB, UP_ISB as barrier standard API 2025-01-20 20:13:07 +08:00
stm32h7x3xx_rcc.c arch/arm/stm32h7: Fix and enhance WWDG (Window Watchdog) support 2025-09-20 09:09:42 +08:00
stm32h7x7xx_rcc.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
stm32h743xx_flash.c arch/arm:use UP_DSB, UP_DMB, UP_ISB as barrier standard API 2025-01-20 20:13:07 +08:00