[SOLUCIONADO, falo a solução] Problema de armazenamento ESP-01

Olá! Comecei a codificar agora com o ESP-01. Estou com um problema com meu ESP-01, eu mandei literalmente um código vazio, somente com void setup e void loop, e ele apresenta esse consumo de memória. E quando carrego um scket que criei (Está logo abaixo) ele apresenta o seguinte problema: "cc1plus.exe: out of memory allocating 65536 bytes". Poderiam me ajudar?

. Variables and constants in RAM (global, static), used 28008 / 80192 bytes (34%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1496     initialized variables
╠══ RODATA   920      constants       
╚══ BSS      25592    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 59143 / 65536 bytes (90%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     26375    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 231620 / 1048576 bytes (22%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     231620   code in flash 
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char* ssid = "PROXXIMA-325491-2.4Ghz";
const char* password = "!BNpZ$8l";
int val = 0;

ESP8266WebServer server(80);

void setup() {
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi conectado!");
  Serial.print("Endereço IP: ");
  Serial.println(WiFi.localIP());
  server.on("/", paginaMain);
  server.on("/sortear", sortear);
  server.begin();
}

void loop() {
  server.handleClient();
}

void paginaMain(){
  String html = "<html><body>"
                  "<h1>Máquina de azar</h1>"
                  "<h2>Perca seu dinheiro</h2>"
                  "<p><a href='/sortear'>Sortear</a></p>"
                  "<p>NumSorteado: " + String(val) + "</p>"
                "</body></html>";
  server.send(200, "text/html", html);
}

void sortear(){
  val = random(0, 1001);
  server.sendHeader("Location", "/");
  server.send(303);
}

Boa tarde.
Então, coloca um delay(100) no final do loop para "desacelerar" um pouco o processador e dar tempo para o wifi processar...
Outra coisa, ESP-01 é um tipo de sistema embarcado, NodeMCU é outro sistema embarcado. NodeMCU costuma usar o ESP-12E, o que não é o ESP-01. ESP-01 é placa bem menos que a NodeMCU.

Você instalou as placas da espressif (Linha esp8266) na IDE?

Sim instalei, na verdade estou usando a "Generic ESP8266 Module", porém ele ainda apresenta esse consumo de memória.

Então, essa placa Generic... é para usar com o módulo ESP01. Tem o modulo ESP01 e ESP01S. o segundo é verão mais nova tem mais memoria. para no nodeMCU tem usar a placa nodemcu esp12e.

Tente desinstalar tudo e reinstalar ou instalar tudo em outro computador para testar.

Depois de compilar algumas vezes houve sucesso no código ser enviado, porém é normal apresentar esse consumo de 91% da memória RAM de instrução?

Pessoal, eu encontrei uma forma de resolver isso. Vocês irão na aba de ferramentas (com a placa generic esp8266 selecionada) e vão na parte: MMU: "32KB CACHE + 32KB IRAM (IRAM)" e vão mudar para a opção de "16KB CACHE + 48KB IRAM (IRAM)". Fazendo isso, vocês irão modificar para o esp dirigir mais 16KB para a memória IRAM, resolvendo esse problema... Apesar de perder 16KB na memória RAM para variáveis e etc, ainda vai ser bastante memória, tendo em vista que o ESP01 é pequeno e tals... Mudando para essa opção, ocupou somente 67% da memória IRAM.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.