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:
parent
703ab8df64
commit
1741bc68b6
@ -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()){
|
||||||
|
@ -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){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user