Add preprocessor option for asynchronous erase support #253
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.
Pull request details
When erasing a page, the current library busy-waits until the erase is confirmed completed.
When ERASE_ASYNC is defined, the wait for the chip to be ready is removed. This should not impact reliability in most cases, as all functions wait for ready at the start of execution as well.
It removes a check for ready at the beginning of suspendProg(); this should break almost nothing, as suspendProg() has no purpose without this PR, but it in theory could introduce some strange behavior e.g. if you try to suspend during a whole-chip erase.
I couldn't for the life of me get Sphinx working on my system, so the HTML docs aren't built, but the source files are updated.
Currently only tested on STM32 with W25Q128 as that's the hardware I have on hand - would appreciate testing on other configurations.
DO NOT DELETE OR EDIT anything below this
Note 1: Make sure to add all the information needed to understand the bug so that someone can help. If any essential information is missing we'll add the 'Needs more information' label and close the issue until there is enough information.
Note 2: For support questions (for example, tutorials on how to use the library), please use the Arduino Forums. This repository's issues are reserved for feature requests and bug reports.