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.
Second attempt to fix F4 VCP lockups with modern (post-GCC 10) compilers.
The PR updates the F4 VCP code, in particular using
volatile
for queue indices and improves the calculation of queue full. The code is basically synced with that from betaflight.Tested with
dump all
on a number of F4 FCs, all of which locked up with GCC 13.2 firmware prior to this PR. With the PR applied, 48KBdump all
completes correctly with no data overruns or lockups.In addition to preventing potential lockup, this PR opens the possibility to move to more modern compilers, offering
useful saving in flash usage.
For example GCC13.2 compiled firmware is c. 5KB smaller than GCC 10.3 compiled firmware.