-->
Page 1 of 1

PROGMEM causes section type conflict

PostPosted: Fri Apr 21, 2017 9:02 am
by mwinther
Hi, I'm trying to compile a piece of code using PlatformIO and espressif8266 arduino framework.

This code used to compile fine in the past, but with the current PlatformIO install it fails.

This is the line that causes the error:
Code: Select allstatic const int8_t enc_states [] PROGMEM = {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0};  //encoder lookup table


This is the error I'm getting:
src\main.cpp:66:21: error: enc_states causes a section type conflict with __c
const static int8_t enc_states [] PROGMEM = {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0}; //encoder lookup table


If I remove the const keyword it will just proceed to the next place where const and PROGMEM is used, ex.:

In file included from .piolibdeps\ESP8266_SSD1306_ID562/OLEDDisplay.h:32:0,
from .piolibdeps\ESP8266_SSD1306_ID562/SSD1306Wire.h:31,

from .piolibdeps\ESP8266_SSD1306_ID562/SSD1306.h:30,
from src\main.cpp:40:
.piolibdeps\ESP8266_SSD1306_ID562/OLEDDisplayFonts.h:851:12: error: ArialMT_Plain_24 causes a section type conflict with __c
const char ArialMT_Plain_24[] PROGMEM = {


I suspect that the installation is corrupted somehow (I've tried on two different computers, same results) but I have not idea where to look to get it fixed..

Any recommendations?

Re: PROGMEM causes section type conflict

PostPosted: Thu Jul 13, 2017 10:15 pm
by AgroMe
I believe the correct declaration should be:

Code: Select allconst PROGMEM int8_t enc_states [] static const int8_t enc_states [] = {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0};