Skip to content

Conversation

@ccaven
Copy link

@ccaven ccaven commented Feb 28, 2024

On Raspberry Pi Zero 2W, compiling in Release mode introduced an issue where trying to call vehicle->subscribe->getValue crashed the program on TOPIC_ALTITUDE_BAROMETER and TOPIC_ALTITUDE_FUSIONED.

These issues appeared to be caused by the dereference of a reinterpret_cast call, specifically when the destination type was float32_t. A safer approach would be to use memcpy to simply grab the bytes from the buffer and copy them into a new stack variable. The Telemetry messages are so small that a single copy will not produce any significant performance penalty.

If, for some reason, reinterpret_cast is necessary, I'd love to know why that is and how I can get around the program crash when compiling with optimization.

Removes dangerous deference of reinterpret_cast
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant