ошибка компилирования

MDV
Offline
Зарегистрирован: 08.08.2013

при компиляции выдает ошибку

G:\arduino-1.6.2\libraries\GSM\GSM.cpp:76:32: error: variable 'searchStrings' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

буду рад помощи.

Al_Ninyo
Offline
Зарегистрирован: 09.11.2014
MDV
Offline
Зарегистрирован: 08.08.2013
//! Всевозможные строковые ответы, запросы
const char ATE0[] PROGMEM         = "ATE0\r\n";
const char OK[] PROGMEM    = "OK\r\n";
const char RING[] PROGMEM         = "RING\r";
const char CONOK[] PROGMEM        = "CONNECT OK";
const char CR_LF[] PROGMEM        = "\r";
const char MORE[] PROGMEM         = ">";
const char CPIN[] PROGMEM         = "+CPIN: ";
const char CGATT[] PROGMEM        = "+CGATT: 1";
const char SENOK[] PROGMEM        = "SEND OK";
const char NPD[] PROGMEM          = "NORMAL POWER DOWN";
const char CALR[] PROGMEM         = "Call Ready";
const char CMGR[] PROGMEM         = "+CMGR: ";
const char * searchFor;
const char * searchStrings[11] PROGMEM         = {OK, RING, CONOK, CR_LF, MORE, CPIN, CGATT, SENOK, NPD, CALR, CMGR};

Прочитал инфу по ссылке, но у меня видимо другой случай. есть еще идеи?

Datak
Offline
Зарегистрирован: 09.10.2014

Да какие, собственно, идеи то... Вы просите компилятор поместить массив searchStrings  в секцию PROGMEM. Он вам сообщает, что в этой секции может размещать только константы.

Укажите ему явно, что это массив констант - он и успокоится. Сам всё время путаюсь, но кажется так это делается:





const char* const searchStrings[11] PROGMEM = {OK, RING, CONOK, CR_LF, MORE, CPIN, CGATT, SENOK, NPD, CALR, CMGR};

 

MDV
Offline
Зарегистрирован: 08.08.2013

Вы ШАМАН :-)

СПАСИБО лекарство помогло.