Ошибка компиляции для платы Arduino Pro or Pro Mini.

Тема в разделе "Arduino & Shields", создана пользователем 3a4em, 26 июл 2019.

  1. 3a4em

    3a4em Нуб

    Приветствую! возникает ошибка компиляции при весьма странных обстоятельствах.
    Если комментирую или удаляю вывод в сериал, код не компилится.

    Сталкивался ли кто с подобной мистикой?
    Screenshot_3.png Screenshot_2.png

    Код (C++):
    #include <SPI.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>

    #define OLED_MOSI 8
    #define OLED_CLK 9
    #define OLED_DC 11
    #define OLED_CS 10
    #define OLED_RESET 2
    Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
    String price;
    String Display_text = "loading";
    void setup() {
      display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // инициализация дисплея по интерфейсу I2C, адрес 0x3C
      Serial.begin(115200);
    }
    /*------------------------------------------------*/
    void loop() {
      display.clearDisplay(); // очистка дисплея
      display.setTextColor(WHITE); // установка цвета текста
      display.setTextSize(1);  //  задаем шрифт
      display.setCursor(0, 0); // установка курсора в позицию X = 0; Y = 0
      display.print ("BTC/USDT - BTC/USD - "); // записываем в буфер памяти дисплея нашу фразу
      display.display(); // и её выводим на экран

      if(Serial.available()){
        String phrase="";
        String Var="";
        while (!Serial.available()) delay(20);
          delay(400);
        while (Serial.available())
     
        Var = Var + (char)(Serial.read());
        price = Var.substring(Var.indexOf("{")+1,Var.indexOf("}"));
        int SZ = price.length();
        Serial.print("size: ");
        Serial.println(SZ);
        if(SZ == 4){
         char Format_price[5] = {price[0], ',' ,price[1], price[2], price[3]};
         phrase = String(phrase + Format_price+"$");
        }
        else if(SZ == 5){
          char Format_price[7] = {price[0], price[1], ',', price[2], price[3], price[4], '$'};
          phrase = String(phrase + Format_price);
        }
        Display_text = phrase;
        Serial.println(Display_text);
    }
        display.setTextSize(2);
        display.print (Display_text);
        display.display();

      display.startscrollleft(0x00, 0x0F);
      delay(4250);
      //display.stopscroll();

    }
    /*------------------------------------------------*/
     
    Последнее редактирование модератором: 26 июл 2019
  2. NikitOS

    NikitOS Король шутов Администратор

    Показать как код вставлять? :)
     
  3. KindMan

    KindMan Гуру

    А текст ошибки какой?
     
  4. NikitOS

    NikitOS Король шутов Администратор

    exit status 1

    @3a4em, включите подробный вывод при компиляции/загрузке, это можно сделать в настройках IDE
     
  5. 3a4em

    3a4em Нуб

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp: In member function 'availableForWrite':

    C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp:203: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\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avr-gcc returned 1 exit status

    compilation terminated.

    c:/program files/windowsapps/arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt/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

    Несколько библиотек найдено для "Wire.h"
    Используется: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\Wire
    Не используется: C:\Users\UserVBGT\Documents\Arduino\libraries\Wire
    Используем библиотеку SPI версии 1.0 из папки: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\SPI
    Используем библиотеку Wire версии 1.0 из папки: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\libraries\Wire
    Используем библиотеку Adafruit_GFX_Library версии 1.5.0 из папки: C:\Users\UserVBGT\Documents\Arduino\libraries\Adafruit_GFX_Library
    Используем библиотеку Adafruit_SSD1306-master версии 1.2.9 из папки: C:\Users\UserVBGT\Documents\Arduino\libraries\Adafruit_SSD1306-master
    exit status 1
    Ошибка компиляции для платы Arduino Pro or Pro Mini.
     
  6. KindMan

    KindMan Гуру

    Не выполнена инициализация. Попробуйте добавить = ""
     
  7. Asper Daffy

    Asper Daffy Иксперд

    arkadyf нравится это.
  8. 3a4em

    3a4em Нуб

    С этой переменной проблем нет.

    Спасибо, оставлю закладку на крайний случай. Что-то сломать, чтобы что-то починить - так себе перспектива на мой взгляд. По большому счету моя проблема не критична именно в этом случае, но смущает то, что так быть явно не должно и в другой раз будет тяжко найти проблемную строку, тк явной ошибки в коде нет(. В любом случае всем спасибо
     
  9. Asper Daffy

    Asper Daffy Иксперд

    Не сломать, а отключить сложную опцию в реализации которой допущен баг в компиляторе/линкере.
     
    arkadyf нравится это.