1
1
#include "flashmem.h"
2
2
#include "esp8266_peri.h"
3
+ #include "Arduino.h"
3
4
4
5
// Based on NodeMCU platform_flash
5
6
// https://github.com/nodemcu/nodemcu-firmware
@@ -98,7 +99,10 @@ uint32_t flashmem_read( void *to, uint32_t fromaddr, uint32_t size )
98
99
bool flashmem_erase_sector ( uint32_t sector_id )
99
100
{
100
101
WDT_RESET ();
101
- return spi_flash_erase_sector ( sector_id ) == SPI_FLASH_RESULT_OK ;
102
+ noInterrupts ();
103
+ bool erased = spi_flash_erase_sector ( sector_id ) == SPI_FLASH_RESULT_OK ;
104
+ interrupts ();
105
+ return erased ;
102
106
}
103
107
104
108
SPIFlashInfo flashmem_get_info ()
@@ -186,9 +190,9 @@ uint32_t flashmem_write_internal( const void *from, uint32_t toaddr, uint32_t si
186
190
os_memcpy (apbuf , from , size );
187
191
}
188
192
WDT_RESET ();
189
- ETS_UART_INTR_DISABLE ();
193
+ noInterrupts ();
190
194
r = spi_flash_write (toaddr , apbuf ?(uint32 * )apbuf :(uint32 * )from , size );
191
- ETS_UART_INTR_ENABLE ();
195
+ interrupts ();
192
196
if (apbuf )
193
197
os_free (apbuf );
194
198
if (SPI_FLASH_RESULT_OK == r )
@@ -204,9 +208,9 @@ uint32_t flashmem_read_internal( void *to, uint32_t fromaddr, uint32_t size )
204
208
fromaddr -= INTERNAL_FLASH_START_ADDRESS ;
205
209
SpiFlashOpResult r ;
206
210
WDT_RESET ();
207
- ETS_UART_INTR_DISABLE ();
211
+ noInterrupts ();
208
212
r = spi_flash_read (fromaddr , (uint32 * )to , size );
209
- ETS_UART_INTR_ENABLE ();
213
+ interrupts ();
210
214
if (SPI_FLASH_RESULT_OK == r )
211
215
return size ;
212
216
else {
0 commit comments