-
-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pbio/sys/storage: Implement persistent storage. #249
Merged
Merged
Conversation
This file contains 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
This ensures we don't run broken programs when the memory layout changes. See pybricks/support#1622
This function already existed, so we might as well use it throughout to save 20 bytes.
This makes it show correctly even if already disabled on boot.
Digging into the C spec, I see that bit fields aren't guaranteed to be in the same order, so we can't write it to disk and read it back with a different build and assume it's the same. So I'll just use bit flags on a word then. |
This ensures it is always enabled on platforms without a toggle, such as Move Hub or the pbio tests.
Bit fields are not guaranteed to have the same order if we write them to disk and read them back with another firmware build.
Adapt it so that it is correct even as we add new fields in between going forward.
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.
Implements pybricks/support#1622
Since validity is checked against the firmware version and programs are erased, we shouldn't need to reserve space for spare or yet unknown settings. This adds a single bool setting for the Bluetooth enabled state.
NB: This PR is against a non-master branch specifically to make review easier. This skips one blanket rename commit that didn't change any code.
Should
program_size
below also manually forced to be word aligned? It does seem to do it automatically right now.Could also require the settings size to be word sized, but I'd be curious to hear what's the cleanest way to do it.