ISR register never re-evaluated in HAL_DMA_PollForTransfer for STM32F4 #3393
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.
Description
The ISR register is never re-evaluated in HAL_DMA_PollForTransfer for STM32F4.
This will cause the function to unnecessarily wait for timeout in some circumstances.
Putting 'tmpisr = regs->ISR;' at the end of the while loop solves it for the ODIN driver.
Status
READY
Migrations
NO
Related PRs
#3272
Todos
Review by @LMESTM
Deploy notes
None
Steps to test or reproduce
This has been reproduced with the private repo of the u-blox ODIN-drivers and the fix can therefore only be verified by u-blox for the UBLOX_EVK_ODIN_W2 target. The current ODIN-W2 driver binary for mbed-os v5.3.0 has a workaround therefore it's not affected.
The tests below have been run with the fix in the PR and without the workaround.
test_report_arm.txt
test_report_gcc.txt
test_report_iar.txt