Little Robot Friends + Ubuntu

Тема в разделе "Arduino & Shields", создана пользователем Nitro77rus, 8 янв 2015.

  1. Nitro77rus

    Nitro77rus Гик

    Есть такое и комп с Ubuntu. Arduino IDE работает нормально, док станцию видит, но при попытке залить скеч (любой) выдаёт ошибку:
    Код (Text):
    In file included from /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSongData.cpp:24:0:
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSongData.h:31:52: error: variable ‘lrfSong’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
    extern LRFSoundStruct PROGMEM lrfSong[LRF_SONG_SIZE];
                                                        ^
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSongData.cpp:26:45: error: variable ‘lrfSong’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
    LRFSoundStruct PROGMEM lrfSong[LRF_SONG_SIZE] = {
                                                ^
     
  2. Unixon

    Unixon Оракул Модератор

    УМВР

    Можно попробовать добавит const перед LRFSoundStruct внутри LRFSongData.h:31 и LRFSongData.cpp:26
     
  3. Nitro77rus

    Nitro77rus Гик

    Теперь так...

    Код (Text):

    In file included from /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:24:0:
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.h:47:71: error: variable ‘lrfSignaturePatterns’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
    extern LRFPatternStruct PROGMEM lrfSignaturePatterns[LRF_SIGNATURE_MAX];
                                                                          ^
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.h:48:95: error: variable ‘lrfSignatureSounds’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
    extern LRFSoundStruct PROGMEM lrfSignatureSounds[LRF_SIGNATURE_MAX * LRF_SIGNATURE_SOUND_COUNT];
                                                                                                  ^
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:26:64: error: variable ‘lrfSignaturePatterns’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
    LRFPatternStruct PROGMEM lrfSignaturePatterns[LRF_SIGNATURE_MAX] =
                                                                    ^
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:41:88: error: variable ‘lrfSignatureSounds’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
    LRFSoundStruct PROGMEM lrfSignatureSounds[LRF_SIGNATURE_MAX * LRF_SIGNATURE_SOUND_COUNT] =
                                                                                            ^
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFOctave’ [-fpermissive]
    };
    ^
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFIntonation’ [-fpermissive]
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFDuration’ [-fpermissive]
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFDuration’ [-fpermissive]
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFOctave’ [-fpermissive]
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFIntonation’ [-fpermissive]
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFDuration’ [-fpermissive]
    /home/alexey/sketchbook/libraries/LittleRobotFriends/LRFSignatureData.cpp:115:1: error: invalid conversion from ‘int’ to ‘LRFDuration’ [-fpermissive]
     
     
  4. Unixon

    Unixon Оракул Модератор

    Ну опять, первая часть ошибок связана с пропуском const, а вторая с неявным приведением int к enum, что в общем случае действительно некорректно. Либо включайте -fpermissive, либо правьте код.