Save/load presets to USB disk & tool for exporting 1.6.1 hexdump to JSON file #44
Conversation
|
monumental effort! this looks good to me just reading through. i won't have a chance to test on hardware for a while--- but hopefully there are some beta volunteers on the forum? thank you!! |
|
i feel this is good to merge. any concerns @scanner-darkly ? |
|
no concerns but not sure what this means for ansible earthsea and unfortunately i don't have the bandwidth to test. @csboling if you could try building it with ansible earthsea branch as you mentioned on lines this would be hugely helpful! if it doesn't work and there is no easy fix then i'd say let's leave ansible earthsea as a custom firmware that only works with pre-presets ansible. |
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.
Fixes #7🎉
Latest build is here. UI is as described in the Lines topic, with the addition that an error during read will turn both status LEDs on until you press the mode button or remove the USB disk.
The tools/flash_tools folder includes some Python code which is useful for interacting with firmware images. This could perhaps be split off to another repo, but the most useful functionality there currently is producing a JSON preset backup file from a backed-up firmware image from a previous Ansible version:
Currently only 1.6.1 and 1.6.1-es (latest ansible + earthsea) are available. Older firmware releases can be added easily enough by pulling together the nvram struct definitions from a couple header files. More info in the
tools/flash_tools/README.md.Memory usage before:
After:
I can do some more detailed symbol dump investigation to try and find the worst offenders in the data section if necessary but I'm guessing a lot of it is
preset_docdef_tstorage. Interestingly bss got quite a bit smaller -- disregarding the text section it looks like this only uses 4 extra bytes of data.