Make sure the whole RTT structure is in RAM#683
Merged
bors[bot] merged 4 commits intoknurling-rs:mainfrom Jul 14, 2022
Merged
Conversation
Currently, the name field of the RTT channel will be placed in flash (rodata). That causes the debug probe to read from flash while parsing the RTT header. Usually this doesn't matter, but if the firmware disables flash access before the debug probe scanned the header, it will break. The situation where I stumbled over this was writing a firmware which writes to flash on an RP2040. While writing to the (external) flash chip, no concurrent flash accesses must happen. This patch forces the name to the `.data` section, so the whole RTT header can be read from RAM.
Member
|
Thank you for the PR! @jonas-schievink can you please take a brief look? |
Contributor
|
Could you add an inline comment explaining the reasoning? Other than that, this seems reasonable |
Member
|
bors r=jonas-schievink |
Contributor
|
Build succeeded: |
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.
Currently, the name field of the RTT channel will be placed in
flash (rodata). That causes the debug probe to read from flash while
parsing the RTT header.
Usually this doesn't matter, but if the firmware disables flash access
before the debug probe scanned the header, it will break.
The situation where I stumbled over this was writing a firmware which
writes to flash on an RP2040. While writing to the (external) flash
chip, no concurrent flash accesses must happen.
This patch forces the name to the
.datasection, so the whole RTTheader can be read from RAM.