Repository navigation
Emulation: the UARTs receive by interrupt - #125
Merged
Merged
Conversation
dmuart receives by DMA now, which Renode's STM32F7 USART cannot serve (no request line to the DMA): the console shows its prompt but reads nothing, so the UART step of the Renode tests fails. In emulation mode the downloaded dmuart configurations get rx_dma=0 (dmuart's key for receiving by interrupt); the hardware keeps the DMA. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Renode tests fail since dmuart receives by DMA (dmuart#8): the console prints its prompt but reads nothing (
echo prints its argument: no prompt after ..., the rest of the steps skipped). Renode's STM32F7 USART has no DMA request line, so a UART receiving by DMA gets no data in the emulator.In emulation mode the downloaded dmuart configurations get
rx_dma=0(scripts/emulation_uart_config.cmake, run after the modules are downloaded), which makes the UART receive by interrupt. The hardware build is not changed.Needs choco-technologies/dmuart#9 (the
rx_dmakey) released; until then the key is ignored.Testing
I could not run the Renode tests locally (the monitor-gdb step times out on my machine), so the cause is read from the CI log and not confirmed in Renode. The script was run on the real
usart1.ini:rx_dma=0lands in the section once, and a second run changes nothing.🤖 Generated with Claude Code