-
Notifications
You must be signed in to change notification settings - Fork 7.6k
UpdateClass - speedup flash erase/writes #7002
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
Conversation
- on flash writes try to use large block erase - skip writing empty blocks of data after erase
Very nice optimization @vortigont, I really liked it! Thanks! |
We use your PR in latest Tasmota Arduino esp32 framework. It does work well and we have got not a single issue regarding OTA since this change. |
Thanks @Jason2866. Having a positive tests feedback from a projects like Tasmota is much appreciated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @vortigont for the PR 👍 ! Really nice speed improvement. Tested on ESP32+ESP32S3 with smaller sketch, but got upload time 30-40% faster 🚀
This change seriously speeds up OTA image flashing process.
I was working on a esp32-flashz lib implementing compressed OTA updates and found that UpdateClass is really slow on image writes. Even slower than esptool over serial. Looks like the main issue is in slow per-sector erase cycles.
This change implements the following:
It gives 2-3 times speedup for raw image writes. Suppose it also depends on flash chip used.
Tested with FW/FS images