atmelmegaavr installs toolchain-atmelavr@1.70300.191015 instead of platformio/toolchain-atmelavr@3.70300.220127 by default. The old version of gcc lacks the spec files, includes, and libraries needed for the new AVR Dx parts and many of the newer ATtiny parts. This can be worked around by adding the following line to platformio.ini:
But why isn't it installing the latest version by default?
BTW, if platformio.ini includes framework = arduino, then both versions of GCC will get installed and it will use the new one by default, so you may not notice the issue. But if you are doing native development (e.g., using the native-blink example), it won't compile for newer parts without explicitly specifying the newer gcc version. See this thread for more details.
atmelmegaavr installs toolchain-atmelavr@1.70300.191015 instead of platformio/toolchain-atmelavr@3.70300.220127 by default. The old version of gcc lacks the spec files, includes, and libraries needed for the new AVR Dx parts and many of the newer ATtiny parts. This can be worked around by adding the following line to
platformio.ini
:But why isn't it installing the latest version by default?
BTW, if
platformio.ini
includesframework = arduino
, then both versions of GCC will get installed and it will use the new one by default, so you may not notice the issue. But if you are doing native development (e.g., using the native-blink example), it won't compile for newer parts without explicitly specifying the newer gcc version. See this thread for more details.