IDE Arduino - Problemas na compilação de "Sketchs". (RESOLVIDO)

Rio de Janeiro, 20/04/2021

Saudações a todos!

Gostaria de entender e solucionar o seguinte problema:

Eu fiz um “Sketch” realmente bem grande, mas eu consigo compila-lo sem nenhum problema em um notebook, mas, quando tento compilar o mesmo “Sketch” no outro notebook ele não termina a compilação e exibe a mensagem que o “Sketch” é muito longo!

Dados:

1)Notebook Dell I7, Windows 10 original instalado (Não consigo compilar o “Sketch”);

2)Notebook Lenovo I5, Windows 10 original instalado (Consigo compilar o “Sketch);

3)IDE instalada nos dois notebooks Versão 1.8.13;

4)Placa Arduino UNO não é o CH340.

Apreciaria muito a ajuda dos senhores,

Atenciosamente,

Arnaud

Exibições: 89

Responder esta

Respostas a este tópico

Olá. 
  Copie aqui a totalidade da mensagem de erro. Possivelmente lá está a resposta. Quando ele fala isso não é pq é mto grande para o compilador e sim para o microcontrolador selecionado. Confira se vc está com um UNO realmente selecionado como board.

  Atualmente só tenho usado o ESP32, nele tem algumas coisas que poderiam afetar, como o OTA, que se desligado libera muuuuita memória. Mas para o UNO não existem muitas variações...

  

  

Boa noite Eduardo!

Obrigado por me responder, eu estou com a placa do Arduino UNO ocupada, então eu fiz o teste com uma placa Arduino Duemilanove, que teve o comportamento exatamente igual a placa do Arduino UNO como descrito acima. Como a mensagem é muito longa estou enviando um arquivo de texto com a mensagem exibida na IDE do Arduino. 

Em tempo, a placa selecionada está correta, primeiramente era uma Arduino UNO e agora placa Arduino Duemilanove.

Desde de já obrigado.

Anexos

Olá.

  Então...

Veja em:

"O sketch usa 31274 bytes (101%) de espaço de armazenamento para programas. O máximo são 30720 bytes"

Vc está bem no limiar do funciona pro não funciona. 

alguma minima diferença está provocando isso.

No conteudo que vc mandou ele lista cada versão de biblioteca usada.

Possivelmente alguma delas tem versão diferente e por isso tem alguns bytes a mais, que faz com que não compile.

O ideal seria sempre usar tudo na ultima versão e verificar no seu programa o que vc consegue economizar, isso vc faz com otimizações, transformar codigo repetitivo em separado (criar uma função pra isso), trocar grande quantidade de if()s por switch, se tiver tabela verificar os tipos que usa, se realmente precisa desse tipo (por ex tabela de caracteres usando int (8 bits acumulados em 16bits) coisas assim.

Salve Eduardo! 

Obrigado por sua resposta, ajudou a clarear bastante, eu vou pesquisar e te dou retorno.

Grande abraço.

Rio de Janeiro, 22/04/2021.

Prezado Eduardo, bom dia!

Consegui resolver o "problema" a biblioteca que está instalada no notebook em que a compilação funciona é ligeiramente menor, embora não seja a mais atual, no notebook que o Sketch consegue ser compilado usa 30480 bytes ao invés dos 31274 bytes, realmente muito próximo ao limite do armazenamento.

Praticamente eu não tenho experiência em software e,  por isso agradeço muito o seu auxílio em um problema que parece ser corriqueiro. 

Muito obrigado,

Grande abraço!

Como já lhe foi informado, o problema é que após a linkar todas as bibliotecas com o sketch, o tamanho final do arquivo binário que será carregado no Arduino é maior que o espaço disponível na sua memória flash.
Ou seja o espaço no chip para gravar o código de máquina final não é suficiente para carregá-lo.

Possíveis Soluções:

1- Checar se há código que pode ser eliminado ou otimizado... possivelmente algo relacionado a Serial.print() poderia ser retirado caso seja apenas para debug.

2- Checar se há dados declarados que estão em excesso, tipo arrays longos etc.

3- Trocar para outra placa que não a 328p (Uno, duemille etc) para usar um Mega2560 ou até mesmo um STM32F103 (Bluepill) ou ESP8266/ESP32.
4- Achar bibliotecas alternativas mais leves e substituir as atuais.

Boa Sorte!

Salve Rodrigo!

Obrigado por sua resposta, assim vou trabalhar um pouco mais no código e te dou retorno.

Abraço! 

Bom dia Rodrigo!

Consegui resolver e entender o problema, no notebook em que eu conseguia compilar o Sketch esatava instalada uma biblioteca um pouco menor, por isso não compilava no outro notebook.

Fico muito agradecido por sua resposta.

Grande abraço!

RSS

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço