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.
Problem
Particle Update fails to update a Photon/P1 from Device OS <1.2.1-rc.3 to 1.2.1 via DFU mode. This is caused by that after updating the system parts, the address of DCT functions that resided in system parts aren't consistent, so when bootloader tries accessing the DCT after that, it then crashes.
Solution
Dirty a flag after every DFU write operation to the internal flash, so that after updating the system parts, next time when bootloader calls DCT functions, it will reload the DCT functions to make sure that the address of the DCT functions in new system parts are valid.
Steps to Test
Example App
N/A
References
particle-iot/particle-cli#499
https://community.particle.io/t/device-os-1-2-1-and-particle-cli-1-43-fail-in-particle-update/51140