Closed InstantMuffin closed 2 years ago
Okay, a little update. So as shown in the list above there no CPU targets for any of the 2nd generation MCUs. The other non-optiboot entries respective to the ones with the error work because the CPU target is always a 1st generation MCU.
Looking at the boards.txt and compile_commands.json the CPU target is always the first CPU entry in boards.txt for the respective compile-target/MCU-family entry. I tested this by checking the specified CPU target in compile_commands.json after selecting different entires under "Tools/Chip/" (which didn't change the target in compile_commands.json), and then by exchanging the order the CPU entries are defined under boards.txt.
Mentioning https://github.com/arduino/arduino-ide/issues/31 as this is all the same bug it seems.
Maybe not a fix but a workaround can be found and implemented for the time being?
even though you select the "3226" under "Tools/Chip/" it uses "3216" in the entire params (for example "-mmcu=attiny3216").
This bug is being tracked here: https://github.com/arduino/arduino-ide/issues/1029
Thanks for that info Per!
Since this is a confirmed bug in the IDE, not a defect in the core, I'm going to close this one.
Hello,
using XUbuntu 22.04 LTS, Arduino IDE 2.0.0-rc8 and megaTinyCore 2.5.11 editor suggestions do not work for the following board entries:
Initially suspecting it affected all "w/Optiboot" postfixed entries, I went through all boards of this extension to verify and actually came up with the above mentioned list of entries that have this issue.
For keywords that already exist in the sketch (like in this example "digitalWrite"), this is the behavior:
Otherwise nothing is being suggested. Compilation (and upload) works fine.
I attached logfiles from the language server.
languageserverlog.zip
Relevant error from inols-clangd-err.log seems to be:
V[11:37:29.057] Ignored diagnostic. unknown target CPU 'attiny3226' V[11:37:29.057] Ignored diagnostic. valid target CPU values are: avr1, avr2, avr25, avr3, avr31, avr35, avr4, avr5, avr51, avr6, avrxmega1, avrxmega2, avrxmega3, avrxmega4, avrxmega5, avrxmega6, avrxmega7, avrtiny, at90s1200, attiny11, attiny12, attiny15, attiny28, at90s2313, at90s2323, at90s2333, at90s2343, attiny22, attiny26, at86rf401, at90s4414, at90s4433, at90s4434, at90s8515, at90c8534, at90s8535, ata5272, attiny13, attiny13a, attiny2313, attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny441, attiny461, attiny461a, attiny841, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88, attiny828, at43usb355, at76c711, atmega103, at43usb320, attiny167, at90usb82, at90usb162, ata5505, atmega8u2, atmega16u2, atmega32u2, attiny1634, atmega8, ata6289, atmega8a, ata6285, ata6286, atmega48, atmega48a, atmega48pa, atmega48pb, atmega48p, atmega88, atmega88a, atmega88p, atmega88pa, atmega88pb, atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata5790, ata5795, atmega16, atmega16a, atmega161, atmega162, atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa, atmega168, atmega168a, atmega168p, atmega168pa, atmega168pb, atmega169, atmega169a, atmega169p, atmega169pa, atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega324pb, atmega325, atmega325a, atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p, atmega328pb, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, atmega645a, atmega645p, atmega649, atmega649a, atmega649p, atmega6450, atmega6450a, atmega6450p, atmega6490, atmega6490a, atmega6490p, atmega64rfr2, atmega644rfr2, atmega16hva, atmega16hva2, atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega64hve, at90can32, at90can64, at90pwm161, at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at90scr100, at94k, m3000, atmega128, atmega128a, atmega1280, atmega1281, atmega1284, atmega1284p, atmega128rfa1, atmega128rfr2, atmega1284rfr2, at90can128, at90usb1286, at90usb1287, atmega2560, atmega2561, atmega256rfr2, atmega2564rfr2, atxmega16a4, atxmega16a4u, atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c4, atxmega32d4, atxmega32e5, atxmega16e5, atxmega8e5, atxmega32x1, atxmega64a3, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64c3, atxmega64d3, atxmega64d4, atxmega64a1, atxmega64a1u, atxmega128a3, atxmega128a3u, atxmega128b1, atxmega128b3, atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega192c3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3, atxmega128a1, atxmega128a1u, atxmega128a4u, attiny4, attiny5, attiny9, attiny10, attiny20, attiny40, attiny102, attiny104, attiny202, attiny402, attiny204, attiny404, attiny804, attiny1604, attiny406, attiny806, attiny1606, attiny807, attiny1607, attiny212, attiny412, attiny214, attiny414, attiny814, attiny1614, attiny416, attiny816, attiny1616, attiny3216, attiny417, attiny817, attiny1617, attiny3217 E[11:37:29.057] Indexing /home/sigi/.arduino15/packages/megaTinyCore/hardware/megaavr/2.5.11/cores/megatinycore/UART.cpp failed: Couldn't build compiler instance
So, naturally, I was curious and been wondering what the difference between a working and a non-working entry is. So I compared
"ATtiny3226/1626/826/426 w/Optiboot" with the "3226" entry without optiboot (which includes the 3216 as well - Please don't make my manually type in the entry name...)
And it seems that according to
/tmp/arduino-language-server[YOURFREENUMBERSHERE]/compile_commands.json
even though you select the "3226" under "Tools/Chip/" it uses "3216" in the entire params (for example "-mmcu=attiny3216").
Maybe this helps, I'm completely unfamiliar with all of this, and I find that bit very odd, so I thought I'd mention it as well.