提交 450ea0d2 编写于 作者: M me-no-dev

Update ESP class

上级 a28a7f12
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "Esp.h" #include "Esp.h"
#include "rom/spi_flash.h" #include "rom/spi_flash.h"
#include "esp_deep_sleep.h" #include "esp_deep_sleep.h"
#include "esp_spi_flash.h"
#include <memory> #include <memory>
//#define DEBUG_SERIAL Serial //#define DEBUG_SERIAL Serial
...@@ -113,7 +114,7 @@ uint32_t EspClass::getFlashChipSize(void) ...@@ -113,7 +114,7 @@ uint32_t EspClass::getFlashChipSize(void)
uint32_t data; uint32_t data;
uint8_t * bytes = (uint8_t *) &data; uint8_t * bytes = (uint8_t *) &data;
// read first 4 byte (magic byte + flash config) // read first 4 byte (magic byte + flash config)
if(SPIRead(0x0000, &data, 4) == SPI_FLASH_RESULT_OK) { if(flashRead(0x0000, &data, 4) == ESP_OK) {
return magicFlashChipSize((bytes[3] & 0xf0) >> 4); return magicFlashChipSize((bytes[3] & 0xf0) >> 4);
} }
return 0; return 0;
...@@ -124,7 +125,7 @@ uint32_t EspClass::getFlashChipSpeed(void) ...@@ -124,7 +125,7 @@ uint32_t EspClass::getFlashChipSpeed(void)
uint32_t data; uint32_t data;
uint8_t * bytes = (uint8_t *) &data; uint8_t * bytes = (uint8_t *) &data;
// read first 4 byte (magic byte + flash config) // read first 4 byte (magic byte + flash config)
if(SPIRead(0x0000, &data, 4) == SPI_FLASH_RESULT_OK) { if(flashRead(0x0000, &data, 4) == ESP_OK) {
return magicFlashChipSpeed(bytes[3] & 0x0F); return magicFlashChipSpeed(bytes[3] & 0x0F);
} }
return 0; return 0;
...@@ -136,7 +137,7 @@ FlashMode_t EspClass::getFlashChipMode(void) ...@@ -136,7 +137,7 @@ FlashMode_t EspClass::getFlashChipMode(void)
uint32_t data; uint32_t data;
uint8_t * bytes = (uint8_t *) &data; uint8_t * bytes = (uint8_t *) &data;
// read first 4 byte (magic byte + flash config) // read first 4 byte (magic byte + flash config)
if(SPIRead(0x0000, &data, 4) == SPI_FLASH_RESULT_OK) { if(flashRead(0x0000, &data, 4) == ESP_OK) {
mode = magicFlashChipMode(bytes[2]); mode = magicFlashChipMode(bytes[2]);
} }
return mode; return mode;
...@@ -191,39 +192,17 @@ FlashMode_t EspClass::magicFlashChipMode(uint8_t byte) ...@@ -191,39 +192,17 @@ FlashMode_t EspClass::magicFlashChipMode(uint8_t byte)
return mode; return mode;
} }
bool EspClass::eraseConfig(void)
{
bool ret = true;
size_t cfgAddr = (getFlashChipSize() - 0x4000);
size_t cfgSize = (8*1024);
while(cfgSize) {
if(SPIEraseSector((cfgAddr / 4096)) != SPI_FLASH_RESULT_OK) {
ret = false;
}
cfgSize -= 4096;
cfgAddr += 4096;
}
return ret;
}
bool EspClass::flashEraseSector(uint32_t sector) bool EspClass::flashEraseSector(uint32_t sector)
{ {
int rc = SPIEraseSector(sector); return spi_flash_erase_sector(sector) == ESP_OK;
return rc == 0;
} }
bool EspClass::flashWrite(uint32_t offset, uint32_t *data, size_t size) bool EspClass::flashWrite(uint32_t offset, uint32_t *data, size_t size)
{ {
int rc = SPIWrite(offset, (uint32_t*) data, size); return spi_flash_write(offset, (uint32_t*) data, size) == ESP_OK;
return rc == 0;
} }
bool EspClass::flashRead(uint32_t offset, uint32_t *data, size_t size) bool EspClass::flashRead(uint32_t offset, uint32_t *data, size_t size)
{ {
int rc = SPIRead(offset, (uint32_t*) data, size); return spi_flash_read(offset, (uint32_t*) data, size) == ESP_OK;
return rc == 0;
} }
...@@ -55,15 +55,12 @@ public: ...@@ -55,15 +55,12 @@ public:
~EspClass() {} ~EspClass() {}
void restart(); void restart();
uint32_t getFreeHeap(); uint32_t getFreeHeap();
uint8_t getCpuFreqMHz(){ return F_CPU; }
uint32_t getChipId(); uint32_t getCycleCount();
const char * getSdkVersion(); const char * getSdkVersion();
void deepSleep(uint32_t time_us); void deepSleep(uint32_t time_us);
uint8_t getCpuFreqMHz();
uint32_t getFlashChipSize(); uint32_t getFlashChipSize();
uint32_t getFlashChipSpeed(); uint32_t getFlashChipSpeed();
FlashMode_t getFlashChipMode(); FlashMode_t getFlashChipMode();
...@@ -76,9 +73,6 @@ public: ...@@ -76,9 +73,6 @@ public:
bool flashWrite(uint32_t offset, uint32_t *data, size_t size); bool flashWrite(uint32_t offset, uint32_t *data, size_t size);
bool flashRead(uint32_t offset, uint32_t *data, size_t size); bool flashRead(uint32_t offset, uint32_t *data, size_t size);
bool eraseConfig();
uint32_t getCycleCount();
}; };
extern EspClass ESP; extern EspClass ESP;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册