Apollo3: fix Mbed not booting in release mode #486
Merged
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.
Summary of changes
I noticed while doing other testing that code did not run on the Apollo3 when Mbed was configured in Release mode (worked fine in Develop). After a bit of digging, I realized that this was happening because some of the am3 HAL calls weren't being executed. This, in turn, was happening because they were wrapped in
MBED_ASSERT()
expressions, and everything inside MBED_ASSERT is compiled out in Release mode. Apparently the people who developed the HAL layer for this target (including me 😢 ) didn't realize this.To fix this, I added a new macro called
MBED_CHECK_AM_HAL_CALL
which performs a similar function to the asserts, but always evaluates its arguments. Then I used a regex to replace all of the assert calls with this macro.Impact of changes
Migration actions required
Documentation
None
Pull request type
Test results
Now able to execute code in Release profile!