Hi everyone.
I am using the IDE in version 1.8.9 and selected the UNO arduino board.
I have a very strange problem with my sketch.
Sketch is very simple. And I tested it with two versions.
When compiling the first sketch with the name "listfiles.ino" I have the error described below as "Error printout 01".
But if I change the name, eg "listfilesCrazyV1.ino", it compiles without any error.
When compiling the second sketch with the name "listfiles.ino" I have the error described below as "Error printout 02".
But if I change the name, eg "listfilesCrazyV2.ino", it compiles without any error.
I looked here on the forum, but I couldn't find anything similar.
I'm sorry if I wasn't able to find it and I'm also sorry for my English, because my native language is Portuguese.
I ask for your help.
Thank you very much in advance, Rui
Error printout 01:
Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno"
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c: In function 'pinMode.constprop':
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c:59:1: internal compiler error: Segmentation fault
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
lto-wrapper.exe: fatal error: C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc returned 1 exit status
compilation terminated.
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Error printout 02:
Arduino: 1.8.9 (Windows 10), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Print.cpp: In function 'println.constprop':
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Print.cpp:136:1: internal compiler error: Segmentation fault
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
lto-wrapper.exe: fatal error: C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc returned 1 exit status
compilation terminated.
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Pro or Pro Mini.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
First code
#include <SPI.h>
#include <SD.h>
String func = "";
const int chipSelect = 4;
String arquivo = "LOGGER.TXT";
//-------------------------------------------------------------------
void setup() {
Serial.begin(115200);
Serial.println(arquivo);
if (!SD.begin(chipSelect))
{
Serial.println("Card failed, or not present");
while (1);
}
Serial.println("card initialized.");
}
//-------------------------------------------------------------------
void list()
{
File dataFile = SD.open(arquivo);
if (dataFile)
{
while (dataFile.available())
{
Serial.write(dataFile.read());
}
dataFile.close();
}
else
{
Serial.print("error opening ");
Serial.println(arquivo);
}
}
//-------------------------------------------------------------------
void loop() {
char x = ' ';
// char x;
if (Serial.available() > 0)
{
func = Serial.readString();
Serial.println(" ");
Serial.println(func);
x = func.charAt(0);
}
switch (x)
{
case 'A':
arquivo = "LOGGER.TXT";
list();
break;
case 'D':
deletando();
break;
default:
break;
}
}
//-------------------------------------------------------------------
void deletando()
{
Serial.println(arquivo);
SD.remove(arquivo);
}
Second Code
#include <SPI.h>
#include <SD.h>
String func = "";
const int chipSelect = 4;
String arquivo = "LOGGER.TXT";
// char x;
// READ_TO.TXT
// WRITE_TO.TXT
// WRITE_T2.TXT
// LOGGER.TXT
//-------------------------------------------------------------------
void setup() {
Serial.begin(115200);
while (!Serial) {}
Serial.print("Initializing SD card...");
Serial.println(arquivo);
if (!SD.begin(chipSelect))
{
Serial.println("Card failed, or not present");
while (1);
}
Serial.println("card initialized.");
}
//-------------------------------------------------------------------
void list()
{
File dataFile = SD.open(arquivo);
if (dataFile)
{
while (dataFile.available())
{
Serial.write(dataFile.read());
}
dataFile.close();
}
else
{
Serial.print("error opening ");
Serial.println(arquivo);
}
}
//-------------------------------------------------------------------
void loop() {
char x = ' ';
// char x; ???????
if (Serial.available() > 0)
{
func = Serial.readString();
Serial.println(" ");
Serial.println(func);
x = func.charAt(0);
}
switch (x)
{
case 'A':
//Serial.println("Letra A");
//x = ' '; ?????
arquivo = "LOGGER.TXT";
list();
break;
case 'B':
//Serial.println("Letra B");
//x = ' '; ?????
arquivo = "READ_TO.TXT";
list();
break;
case 'C':
//Serial.println("Letra C");
//x = ' '; ?????
arquivo = "WRITE_TO.TXT";
list();
break;
case 'D':
deletando();
//x = ' '; ?????
break;
default:
break;
}
}
//-------------------------------------------------------------------
void deletando()
{
// delete the file:
Serial.print("Removing ...");
Serial.println(arquivo);
SD.remove(arquivo);
}