Hinweis/Aufruf wegen - GCC11 könnte das AVR Backend verlieren

Hallo AVR Programmierer,

ich möchte Euch hiermit informieren, dass es wahrscheinlich einen Rauswurf des AVR Backends ab Version 11 des GCC Compilers geben könnte. Um drin zu bleiben müßte der gesamte Unterbau aktualisiert werden. Genaueres dazu kann man hier nachlesen:

https://www.mikrocontroller.net/topic/483643#new https://gcc.gnu.org/PR92729 https://gcc.gnu.org/ml/gcc-patches/2019-09/msg01256.html

Nichts genaues weiß man nicht. Es könnte sein das es der Programmierer der die Anpassung für Motorola (Spendensammlung) gemacht hat auch die AVR Anpassung in Angriff nehmen könnte. Es steht eine benötigte Summe von 5000 Dollar im Raum. Es gibt dafür eine Spendensammlung auf BountySource.

https://www.mikrocontroller.net/topic/483643#6108498 https://www.bountysource.com/issues/84630749-avr-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases

Es liegt jetzt mit an uns dem auf die Sprünge zu helfen.

Ich habe den Beitrag mal nach nebenan verlinkt.

Gruß Tommy

Edit: Ob die das bei Arduino auch schon wissen? Die wären ja mit am meisten betroffen und könnten die 5000 $ wohl locker stemmen.

Hallo,

Danke Tommy.

Im Grunde könnte das Microchip aus der Kaffeekasse bezahlen. Oder die stellen einen eigenen Programmierer dafür ab. Hatte die schon angeschrieben, höre aber keinen Mucks von denen. Nur wie man hört kümmern die sich schon lange nicht mehr darum. Arduino.cc anzuschreiben dachte ich auch schon dran. Nur müßte man dann alle AVR Boardhersteller anschreiben, wollen ja schließlich alle damit Geld verdienen. Chinesen :) Wo fängt man an wo hört man auf? Es bleibt eine unschöne Sache. Irgendwie müssen die die weiterhin ambitioniert programmieren wollen da durch. Was passiert wenn AVR keine GCC Unterstützung mehr hat weiß ich nicht. Auf alle Fälle bleibt dann alles auf Stand gcc10 erstmal stehen. Was danach passiert ist ungewiss. Auf jeden Fall geben uns die gcc Macher sehr viel Zeit vorab zum handeln die nicht ungenutzt bleiben sollte. Danke dafür. Mehr wie bekannt geben kann ich das nicht. Meinen Teil gespendet habe ich natürlich. Logisch. ;)

Ich denke, auch für Arduino als Firma sind 5000$ Portokasse. Es ist halt ihre Einsteigerprozessorfamilie, mit der sie viele Leute erreichen.

Wenn sie das nicht wollen, können wir ja auch alle zu ESP abwandern.

Ich denke es dürfte für sie im Endeffekt ein Imageproblem werden. Ob sie es allerdings begreifen, steht auf einem anderen Blatt.

Gruß Tommy

Es wird aber noch dauern bis sich das bemerkbar macht. Arduino ist im Moment erst bei GCC 5.4. Da hat man noch nie die neuesten Versionen verwendet. Was auch nicht unüblich ist, da die wie andere Software auch Bugs haben und ältere Versionen sicherer sind

Ein Einsteiger braucht keinen super-duper aufgemotzten Compiler mit den neuesten C++ Features ever, da reicht das Einfrieren auf einem noch funktionierenden Stand.

Für höhere Ansprüche sollte AVRStudio benutzbar bleiben, und falls nicht sollte man sowieso rechtzeitig zu einem besser unterstützten und moderneren Controller wechseln.

DrDiettrich: Ein Einsteiger braucht keinen super-duper aufgemotzten Compiler mit den neuesten C++ Features ever

Das neueste braucht man nicht unbedingt, aber es war schon super als endlich C++11 unterstützt wurde. Da sind auch Dinge dabei die als Anfänger sehr nützlich sind

Hallo,

über solche Aussagen kann ich mich ehrlich gesagt nur wundern. Ja in der Arduino IDE wird nicht der aktuellste Compiler mitgeliefert. In Atmel Studio übrigens auch nicht. Es gibt aber keinen Grund dafür. Alter Compiler bedeutet nicht das er ausgereift ist. Es bedeutet nur das er nicht mehr weitergepflegt wird. Übrigens kann man sich den gcc 7.3 mittels IDE Erweiterung einfach installieren. Man könnte für beide IDEs locker den gcc 8.3 bereitstellen.

Auch die Aussage warum ein aktueller bzw. neuerer Compiler nur Atmel Studio zugesprochen wird kann ich nicht verstehen. In der Arduino IDE kann man auch den vollen Umfang vom Compiler anwenden. Zudem aus Anfängern hin und wieder ambitionierte Programmierer werden.

Alles in allen, egal wie man es dreht und wendet, ist es nur eine Frage der Zeit bis die Entwicklung stehen bleiben könnte. Ob das jetzt 1 Jahr ist oder 5 Jahre sind spielt keine Rolle. Man wird sicherlich mit gcc10 noch weitere 5-10 Jahre wunderbar programmieren können. Nur man muss sich bewusst sein das man dann auf einem toten Gleis ackert.

Ein Bsp. was hoffentlich bekannt ist. avr gcc 5.4 und der segmentation fault ist ein Toolchain Problem. Manche Leute haben das Problem mit ihrem Rechner, hatte ich auch. Wenn das der letzte Stand gewesen wäre hätten ich und andere große Probleme gehabt. Konnte man zum Glück mit neuer Toolchain beheben. Andere Probleme lauern vielleicht dann bei Euch irgendwann. Welche Meinung habt ihr dann ...

Übrigens, wenn gcc irgendwann für avr wegfällt, dann muss man auch auf solche netten Features wie switch case range verzichten. Oder letztens lokales Array zur Laufzeit festlegen ginge auch nicht mehr. Wer will das schon vermissen.

Also seit bitte nicht so steif in Euren Ansichten.

Wer will das alles den Newbies beibringen, und wofür? Läuft das denn alles sinnvoll auf einem Uno? Zum Abfragen von Schaltern und Analogeingängen und Ansteuern von LEDs reicht eigentlich schon K&R.

Hi

Naja - der Stand von Heute wird morgen auch noch funktionieren, oder? Wenn ich mein System nicht alle drei Minuten update, sollte der IST-Zustand auch die nächsten fünf Jahre überdauern. Ob dann mein Win7 'in der Box' noch will - andere Frage. Klar, bei einem Segment-Fault hat man irgend etwas entdeckt, was den Machern unentdeckt blieb - oder eben nicht mehr gefixt wurde. Das nennt man halt Pech. Da diese Fehlermeldungen nun aber auch nur sehr vereinzelt auftreten, kann davon ausgegangen werden, daß diese Funktionalität selten gebraucht wird. Unwahrscheinlich, daß ich der Einzige bin, Der 'Das' programmieren wollte, also wird Es wohl Möglichkeiten geben, den Fault zu umgehen. Oder ich habe ein explizit ausgefallenes Problem, Das ich zu Lösen versuche - dann kommen wir wieder zu 'Pech gehabt'.

MfG

PS: Wer ist K&R? Try&Error kenne ich ja schon ...

PS: Wer ist K&R?

:smiling_imp: Irgend so ein Steinzeit Zeugs, :smiling_imp:

Brian W. Kernighan und Dennis M. Ritchie

Da diese Fehlermeldungen nun aber auch nur sehr vereinzelt auftreten, kann davon ausgegangen werden, daß diese Funktionalität selten gebraucht wird.

Du irrst. Das auftreten des Fehlers hat NICHTS/wenig mit dem geschriebenen Code zu tun. Selbst mit identischem Code kann es auf einem PC laufen und auf dem anderen nicht.

combie: Du irrst. Das auftreten des Fehlers hat NICHTS/wenig mit dem geschriebenen Code zu tun. Selbst mit identischem Code kann es auf einem PC laufen und auf dem anderen nicht.

Gerade dann habe ich doch Alles, was ich brauche. Wenn 'mein Kram' derzeit funktioniert, wird's auch in 10 Jahren noch funktionieren. Da 'mein Kram' in der VirtualBox läuft, sollte 'der PC' auch bei Wechsel identisch bleiben.

MfG

Hallo,

nehmt mir es nicht übel, aber ich bereure es jetzt schon den Hinweis hier jemals gebracht zu haben. Man merkt das es manchen Leuten am notwendigen Weitblick und Verständnis für bestimmte Dinge und Zusammenhänge fehlt. Genau das stimmt mich sehr traurig, nämlich das man sein Werkzeug unter Haube nicht ernst nimmt. Nur weil man es nicht sieht heißt es nicht das es nicht wichtig ist.

Damit entferne ich mich aus diesem Thread. Ich habe alles gesagt was ich für notwendig halte.

Hi

Da Du Dich bereits entfernt hast, wird Das wohl ein Monolog ... Was stört Dich daran, daß 'der Arduino-Kram' derzeit funktioniert? Was, daß Das auch in Zukunft passieren wird? Was, daß ich, für mich als Hobby-Astronaut, keine Gefahr auf mich zukommen sehe? Sollte Es mir dennoch irgendwann in der Zukunft versagt werden, meinen AVRs Leben einzuhauchen, suche ich mir ein neues Hobby oder einen anderen Rechenknecht, Der eben in diese Lücke passt.

Es gibt so viel auf der Welt, worin ich mein Geld versenken könnte, ohne auch nur den Hauch einer Chance auf Änderung herbeiführen zu können, wo ich wohl mehr von hätte, als hier. Sorry- bei mir hängen absolut keine monetären Interessen an µC/AVR/Arduino - somit sehe ich mich, diesbezüglich, absolut nicht in der Schuld.

MfG

Es ist wohl heute der Lauf der Welt. Ich komme ja aus der Kommunikationstechnik. Die ersten Telefonanlagen die ich nach meiner Lehrzeit als rel. "neue Technik" erlebt habe, haben noch locker 20-25 Jahre weiter funktioniert und es gab auch locker so lange Unterstützung vom Hersteller. Bald ist dann die Unterstützungszeit für ein neues System auf 10-15 Jahre zurück gegangen. Dann auf unter 10 Jahre. Dann 5 Jahre, heute eher 3 Jahre. Und ich rede nicht von billigkram aus China. Sondern das waren Anlagen von Siemens, DeTeWe, später Aastra, Mitel, u.s.w. Also Dinge die im Vergleich zu unserem Spielzeug richtig Kohle gekostet haben. Wenn man als Kunde gute Telefone wollte, kostete ein Arbeitsplatz schnell mal 500,- bis 700,- Euro. Ich habe auf dem Markt trotz schwerer Krankheit 45 Jahre gestrampelt um immer wieder mit an Bord zu sein. Aber vor einem Jahr bin ich dann ausgestiegen, weil neue Systeme schon nach 2-3 Jahren vom Hersteller nicht mehr unterstützt wurde. Das konnte und wollte ich als Ehrliche Haut, die ich nun mal bin, den Kunden nicht mehr vermitteln. Und habe den ganzen Kram hingeschmissen. Das was da heute abläuft, ist nicht mehr meine Welt. Überall an den führenden Stellen in Industrie und Politik sitzen Halsabschneider, die für ihren Gewinn über Leichen gehen.

Deshalb finde ich es zwar traurig dass es so ist, dass man immer wieder mit seinen Systemen in der Sackgasse landet, weil irgend eine große Firma ohne Not entscheidet, das System nicht mehr weiter zu unterstützen, aber es wundert mich nicht. Stimmt der Gewinn nicht mehr, weil man mit einem anderen Produkt mehr verdienen kann, dann wird die Reißleine gezogen, Ende Gelände. Die, die weiter in dem Zug bleiben, hocken dann eben am Abstellgleis. Die, die weiter mit wollen, müßen wieder Geld für die neue Ausrüstung abdrücken.

Da das für mich mehr das Hobby ist, kann ich damit leben. Es wird eh keiner Fragen ob ich das gut finde und sich dann danach richten:). Und wie schon gesagt wurde, ich denke auch, es gibt in dem Segment ja auch Hersteller, die sehr daran interessiert sind, dass es weiter geht. Und für die sind 5000,- Euro eher ein Betrag, der in der Portokasse zu finden ist. Die können solche extra Ausgaben auch locker über den Verkauf ihrer Systeme wieder reinbringen. Dafür braucht es keine Spender. Und wenn die das nicht mehr unterstützen, dann ist klar, dass wir eh bereits auf einem toten Pferd sitzen.

Franz

Der Unterschied ist, dass hinter dem GCC keine Firma steht. In der OS-Welt wird viel über Spenden gemacht, wenn man bestimmte Entwickler einsetzen will/muss.

Wobei ich dir Recht gebe, dass die Firmen hinter den AVR-Prozessoren das mit Links aus der Portokasse bezahlen könnten. Das hatte ich ja auch schon angesprochen.

Gruß Tommy

Ja, das meine ich. Und wenn die das “Geschäft” ziehen lassen, ist es wohl kein Geschäft mehr.

Franz

Franz54: Ich habe auf dem Markt trotz schwerer Krankheit 45 Jahre gestrampelt um immer wieder mit an Bord zu sein. Aber vor einem Jahr bin ich dann ausgestiegen, weil neue Systeme schon nach 2-3 Jahren vom Hersteller nicht mehr unterstützt wurde.

Ich sehe nicht, daß die AVR Controller sich so ändern, daß Updates der Bibliotheken notwendig werden - und wenn, dann hat das mit dem gcc nichts zu tun. Der Compiler läuft auch auf 64 Bit Systemen, der sollte also auch ausreichend zukunftssicher sein. Bei Programmen für Multi-Core Prozessoren auf Multitasking... Plattformen hat man ganz andere Probleme, wenn sich System-APIs oder irgendwelche Protokolle ändern, da muß man sich ständig drum kümmern.

Genaugenommen ist die Arduino IDE ein Cross-Entwicklungssystem, das auf einem Rechner (PC) läuft und Code für ein ganz anderes System bzw. nackte Hardware erzeugt. Da können die gcc Entwickler durchaus mal Support für exotische Prozessoren einstellen, wenn eine Änderung der Compiler Infrastruktur größere Anpassungen notwendig macht. Unterstützt der gcc denn noch den 8086 im Real Mode? Vielleicht kann ich helfen, die anstehende Änderung durchzuziehen, aber nicht alleine und reißen tu ich mich darum auch nicht - zumal C nicht meine bevorzugte Programmiersprache ist.

Was Compilerfehler betrifft, da ist man auf den Goodwill der Entwickler angewiesen, ob und wann ein Fehler behandelt wird. Dabei würden mir auch weniger irgendwelche Compiler-Abstürze Kopfzerbrechen machen, denn die sollten von den Entwicklern sowieso gefixt werden. Aber beim Einbauen größerer Neuerung der Sprache kann es zu neuen Fehlern im Compiler kommen, die vorher nicht da waren. Deshalb traue ich einem älteren (einfacheren) Compiler mehr als einem neueren, mit neuen Sprachelementen.

Und was das Backend betrifft, wer weiß denn schon welche neuen Features der Sprache auf die AVR Controller überhaupt brauchbar anwendbar sind? Auf einem AVR 8-Bitter ist dynamischer Speicher ja eher ein Unding, und auch Garbage-Collection kommt nicht in Frage. Insofern könnte ein Update ganz einfach nur die Liste der Features erweitern, die für diese Hardware überhaupt nicht verfügbar sind. Aber wenn das (aktuell) zugleich eine Anpassung an einen neuen Unterbau bedeutet, kommt man um eine Anpassung nicht herum.

Nach einem Studium der Unterlagen zum anstehenden Update (CC0 in MODE_CC) sehe ich mich nicht in der Lage, irgendwas dazu beizutragen :-(

Ich verstehe den Doc_Arduino in diesem Fall ganz gut.....

C++11 hatte ich bei mir schon aktiviert, als Arduino das noch nicht so ausgeliefert hat. Im Augenblick reite ich C++17 und warte, mit leichter Erregung, auf die erste Toolchain mit vollständiger C++2X Unterstützung.

Mit dynamischer Speicherverwaltung hat das erstmal gar nichts zu tun. Die gabs schon vor C++11 und wirds auch nach C++2X geben. An dessen Nützlichkeit wird sich auch nichts ändern. Auch schlagen diese Probleme hauptsächlich bei den Zwergen zu, den 8Bit Dingern.

Auf 32Bit+64Bit Arduinos und kompatible, steht sowieso, auch jetzt schon, das volle Programm zur Verführung. Z.B. die STL(mittlerweile in der C++ STD Lib integriert) mit allen ihren Features.

Interessant sind, die Dinge, welche man zur Kompilezeit erledigen kann. Da kommen von Version zu Version viele nützliche Dinge dazu. Wenn ich daran denke, dass man "mich" von diesen Neuerungen in der Zukunft abschneidet, dann bekomme ich schon fast Pipi in die Augen.

Ansonsten ist diese Arduino Programmiererei auch irgendwie ein Spiegel der Menschheit.

Die Anfänger starten auf einem Niveau, welches mich irgendwie an "Rollrasen" erinnert.

Es wird immer welche geben, die sich selber treiben, um an der Grenze der Erkenntnis zu arbeiten, mit den neuesten Versionen.

Dann gibts natürlich die Fraktion:

Das haben wir schon immer so gemacht! Ich denke nicht mal daran, mein Vorgehen zu überdenken. Die neuen Features ignoriere ich noch nicht einmal.

Das sind die 3 Fraktionen, für die ich volles Verständnis habe: Anfänger, Progressive, Konservative

Dann gibts noch die Fraktion mit der ich auf Kriegsfuß stehe!

Oh, ist das ein schöner Apfel auf dem Baum da! Och, der hängt aber hoch.. wie soll ich denn da ran kommen... Der ist bestimmt total sauer, da ist sicherlich ein Wurm drin. Ach , wenn der einen Wurm hat und so sauer ist, dann will ich den nicht. Soweit ist noch alles halbwegs ok...

Aber dann folgt das (fast) unvermeidliche, da wo der SichSelbstVerarscher zum Priester wird:

Hey, ihr Anderen, vergesst den Appel, der taugt nix. Dann ist der Punkt gekommen, wo sich mir die Nackenhäärchen aufstellen.