1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-22 21:23:07 +03:00

speed :) and prevent write if we are not running

This commit is contained in:
John Doe 2015-07-04 01:46:51 +03:00 committed by Ivan Grokhotkov
parent 703ab8df64
commit 1741bc68b6
2 changed files with 5 additions and 18 deletions

View File

@ -108,21 +108,9 @@ bool UpdaterClass::end(bool evenIfRemaining){
} }
bool UpdaterClass::_writeBuffer(){ bool UpdaterClass::_writeBuffer(){
WDT_FEED();
noInterrupts(); noInterrupts();
int rc = SPIEraseSector(_currentAddress/FLASH_SECTOR_SIZE); int rc = SPIEraseSector(_currentAddress/FLASH_SECTOR_SIZE);
interrupts(); if(!rc) rc = SPIWrite(_currentAddress, _buffer, _bufferLen);
if (rc){
_error = UPDATE_ERROR_ERASE;
#ifdef DEBUG_UPDATER
printError(DEBUG_UPDATER);
#endif
return false;
}
WDT_FEED();
noInterrupts();
rc = SPIWrite(_currentAddress, _buffer, _bufferLen);
interrupts(); interrupts();
if (rc){ if (rc){
_error = UPDATE_ERROR_WRITE; _error = UPDATE_ERROR_WRITE;
@ -139,7 +127,7 @@ bool UpdaterClass::_writeBuffer(){
size_t UpdaterClass::write(uint8_t *data, size_t len){ size_t UpdaterClass::write(uint8_t *data, size_t len){
size_t left = len; size_t left = len;
if(hasError()) if(hasError()||!isRunning())
return 0; return 0;
if(len > remaining()) if(len > remaining())
@ -170,7 +158,7 @@ size_t UpdaterClass::write(uint8_t *data, size_t len){
size_t UpdaterClass::writeStream(Stream &data){ size_t UpdaterClass::writeStream(Stream &data){
size_t written = 0; size_t written = 0;
size_t toRead = 0; size_t toRead = 0;
if(hasError()) if(hasError()||!isRunning())
return 0; return 0;
while(remaining()){ while(remaining()){

View File

@ -15,9 +15,8 @@ class UpdaterClass {
public: public:
UpdaterClass(); UpdaterClass();
/* /*
Call this to check and erase the space needed for the update Call this to check the space needed for the update
Will return false if there is not enough space Will return false if there is not enough space
Or the erase of the flash failed
*/ */
bool begin(size_t size); bool begin(size_t size);
@ -72,7 +71,7 @@ class UpdaterClass {
template<typename T> template<typename T>
size_t write(T &data){ size_t write(T &data){
size_t written = 0; size_t written = 0;
if(hasError()) if(hasError()||!isRunning())
return 0; return 0;
size_t available = data.available(); size_t available = data.available();
while(available){ while(available){