Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.5.11 + Arduino IDE 2.0.0-rc8: Suggestions not working when selecting specific board entries #736

Closed
InstantMuffin opened this issue Jul 9, 2022 · 4 comments
Labels
Not our bug This is a bug in a third party tool and should be raised with the maintainers of that tool, if any.

Comments

@InstantMuffin
Copy link
Contributor

InstantMuffin commented Jul 9, 2022

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:

ATtiny3224/1624/824/424 w/Optiboot
ATtiny3226/1626/826/426 w/Optiboot
ATtiny3227/1627/827/427 w/Optiboot

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:
image

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.

@InstantMuffin InstantMuffin changed the title 2.5.11 + Arduino IDE 2.0.0-rc8: Suggestions not working when selecting "w optiboot" targets 2.5.11 + Arduino IDE 2.0.0-rc8: Suggestions not working when selecting "w/Optiboot" postfix targets Jul 9, 2022
@InstantMuffin InstantMuffin changed the title 2.5.11 + Arduino IDE 2.0.0-rc8: Suggestions not working when selecting "w/Optiboot" postfix targets 2.5.11 + Arduino IDE 2.0.0-rc8: Suggestions not working when selecting specific board entries Jul 9, 2022
@InstantMuffin
Copy link
Contributor Author

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.

@InstantMuffin
Copy link
Contributor Author

InstantMuffin commented Jul 10, 2022

Mentioning arduino/arduino-ide#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?

@per1234
Copy link
Contributor

per1234 commented Jul 10, 2022

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: arduino/arduino-ide#1029

@SpenceKonde SpenceKonde added the Not our bug This is a bug in a third party tool and should be raised with the maintainers of that tool, if any. label Jul 11, 2022
@SpenceKonde
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Not our bug This is a bug in a third party tool and should be raised with the maintainers of that tool, if any.
Projects
None yet
Development

No branches or pull requests

3 participants