You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a small risk that the probe will inspect RAM whilst we are in the middle of copying from Flash to RAM, and it might see the SEGGER RTT header but then see invalid pointers.
So we should initialise with the header set to something other than SEGGER RTT and paint in those few bytes manually after the fact.
But also we should probably wait for probe-rs/probe-rs#1722 to land because making the RTT block valid later on in the boot cycle will increase the chance of it failing to find the block on the first pass.
The text was updated successfully, but these errors were encountered:
There is a small risk that the probe will inspect RAM whilst we are in the middle of copying from Flash to RAM
Interestingly, with certain ESP32 MCUs this is hit pretty often, causing probe-rs to print errors. Additionally, if defmt is used in firmware that is running from RAM, probe-rs may incorrectly detect the wrong magic string as the control block, completely breaking RTT.
For maximum compatibility, I'd suggest making sure the magic string is not present verbatim in the binary, and that it is written to the control block last. The official implementation contains the string backwards, for example.
There is a small risk that the probe will inspect RAM whilst we are in the middle of copying from Flash to RAM, and it might see the SEGGER RTT header but then see invalid pointers.
So we should initialise with the header set to something other than SEGGER RTT and paint in those few bytes manually after the fact.
But also we should probably wait for probe-rs/probe-rs#1722 to land because making the RTT block valid later on in the boot cycle will increase the chance of it failing to find the block on the first pass.
The text was updated successfully, but these errors were encountered: