lexus2k / ssd1306

Driver for SSD1306, SSD1331, SSD1351, IL9163, ILI9341, ST7735, PCD8544, Nokia 5110 displays running on Arduino/ESP32/Linux (Rasperry) platforms
MIT License
651 stars 125 forks source link

pgmspace.h issue since 1.8.3 #142

Open Polohpi opened 2 years ago

Polohpi commented 2 years ago

Describe the bug used in a sketch compiled for cortex M0 chips. Cant compile code. Works with 1.8.2.

Expected behavior Code cant compile for AMD cortex m0.

Please complete the following information:

Additional context libraries/ssd1306/src/ssd1306_hal/arduino/io.h:45:14: fatal error: api/deprecated-avr-comp/avr/pgmspace.h: No such file or directory

include <api/deprecated-avr-comp/avr/pgmspace.h>

          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated. exit status 1 Erreur de compilation pour la carte Seeeduino XIAO

lexus2k commented 2 years ago

Hi,

please try to comment out the lines in src/ssd1306_hal/arduino/io.h source code:

    #include <avr/pgmspace.h>
    #include <avr/interrupt.h>
    //#elif defined(ARDUINO_ARCH_SAMD)
    //#include <api/deprecated-avr-comp/avr/pgmspace.h>
    //#include <api/deprecated-avr-comp/avr/interrupt.h>
    #else
    #include <avr/pgmspace.h>
    #include <avr/interrupt.h>
    #endif

Let me know what it gives you.

lexus2k commented 2 years ago

By the way, what's is the version of board support package for SAMD controllers?

Polohpi commented 2 years ago

By the way, what's is the version of board support package for SAMD controllers?

1.8.2

Polohpi commented 2 years ago

Hi,

please try to comment out the lines in src/ssd1306_hal/arduino/io.h source code:

    #include <avr/pgmspace.h>
    #include <avr/interrupt.h>
    //#elif defined(ARDUINO_ARCH_SAMD)
    //#include <api/deprecated-avr-comp/avr/pgmspace.h>
    //#include <api/deprecated-avr-comp/avr/interrupt.h>
    #else
    #include <avr/pgmspace.h>
    #include <avr/interrupt.h>
    #endif

Let me know what it gives you.

It did work ! thanks. What was the problem with those lines ?

lexus2k commented 2 years ago

Board support package version is not the same thing as Arduino IDE version. Arduino IDE has built-in manager as you know, where you can install support packages for different hardware. Those packages are supported by numerous teams.

Since a developers work on different versions of board support packages, some source files for the same SAMD board may have different location. Probably, you use some old version of the board support packages, because the file <avr/pgmspace.h> was moved to new location in newer releases <api/deprecated-avr-comp/avr/pgmspace.h>.