Guten Abend, ich frage mich gerade ob es eine Alternative gibt für die Arduino IDE um z.b. die ganzen anderen Boards wie ESP8266m, ESP32, Nucleos, ChipKIT etc... Ich würde gerne versuchen einen anderen Compiler bzw IDE zu verwenden! Atmel Studio ist ja ganz nett, aber kann man da auch Files einfügen um für z.b. STM32F zu compilieren? Was am wichtigsten wäre ist die Programmer-Unterstützung. Bei Arduino wählt man aus was man hat und wartet bis der Code im Chip ist. Ganz elegant bei dem ESP, da dessen Eigensoftware Dreck ist... PS: dabei meine ich nicht den bestehenden Tread ""Alternativen zur Arduino IDE!"
make und EMACS sind nicht nur Compiler-agonistisch (aka: kommen mit jeder Zielplatform klar) sondern auch hochgradig portabel über viele Hostumgebungen. Beides sind beste Grundlage für DIE höchsflexible IDE schlechthin.
Marc Horby schrieb: > Atmel Studio ist ja ganz nett, aber kann man da auch Files einfügen um > für z.b. STM32F zu compilieren? Welches Interesse sollte Atmel daran haben die harte Konkurrenz zu unterstützen? Für Eclipse gibt es viele PlugIns, das ist aber keine Ein Klick Installation wie bei Arduino. Dann gibt es noch Anbieter wie Keil oder Segger die da viel Manpower reinstecken aber das natürlich entsprechend bezahlt haben wollen.
Sid schrieb: > make und EMACS sind nicht nur Compiler-agonistisch "agnostisch" wenn Du schon mit Fremdworten um Dich wirfst. Ansonsten ist Deine Argumentation zutreffend, nur EMACS würd ich heutzutage durch nen vernünftigen Editor ersetzen, zum Beispiel vscode.
hab mir das mal angeschaut. Es wird als cross plattform bezeichnet, okay. Liest man sich in die Doku ein stellt man fest, es ist nur ein "Megaplugin" welches es für sämtliche bekannten IDEs gibt. Ich verstehe den Sinn nicht. Man muss ja doch alles und jedes installieren und das "cross plattform plugin" zusätlich oben drauf.
Eclipse für Arduino gibt es fertig konfiguriert bei sloeber, http://eclipse.baeyens.it/ Die Videos von dem Entwickler sind ganz lustig und gut gemacht. Ich freunde mich selber gerade mit VSCode an obwohl ich schon mehrere Jahre Eclipse benutze. VSCode ist erstmal spartanischer, die Konfiguration erfolgt nicht über Dialoge sondern über eine endlose Settings Liste, die aber hierarchisch ist und Kommentare zu den Einstellungen hat. Die Magie steckt in den PlugIns, für Arduino gibt es eines von MS. Die Installation ist über die Extensionliste einfach, danach muss noch der Arduino IDE Pfad angegeben werden. Vielleicht wird der automatisch gefunden, ich habe aber die Arduino Version aus dem Windows Store für Win10 installiert und das klappt nicht, steht allerdings auch in der Installationsanleitung die man immer erst hinterher liest... Für Intellisense muss man noch den Pfad zu den Libraries angeben, dann läuft es richtig gut. Zum Kompilieren gibt es keinen Button, das muss man über das Kommando Arduino:Verify anstossen (F1 öffnet Kommandoeingabe). Debugging soll mit einigen Cortex-M Arduinos funktionieren, habe ich nicht ausprobiert. Eine PlatformIO Extension gibt es auch, die ist weiter entwickelt und macht einiges anders, hat evtl. ein eigenes Buildsystem und kann auch mbed nutzen. Aber das ist mir wieder zu undurchsichtig und für mbed kann ich eine einfache Extension benutzen oder den Build/Debug Prozess über das VSCode Tasks Konzept benutzen. Das ist alles wesentlich einfacher durchschaubar als bei Eclipse wo jeder Bildschirmpixel konfiguriert werden kann aber so wichtiges wie die CDT generierten makefiles kaum beeinflusst werden können. Die VSCode Extensions sind wie VSCode in Javascript/Typescript geschrieben und können mit VSCode selber entwickelt und entwanzt werden, sehr cool.
VScode hatte ich für Arduino probiert. Installieren und Arduino Plugin geht einfach. Danach wird es jedoch Mist. Für jeden Upload oder kompilieren muss man hoch und den Befehl dafür eintippen. Geht gar nicht wenn man schon Buttons gewöhnt ist. Das ist mir alles auch viel zu undurchsichtig. Das Problem haben alle IDEs die Multikulti sein wollen. Die Konfigurationsanleitungen sind auch meistens veraltet. Man muss zuviel Hand anlegen.
Als plattformübergreifende IDE nehme ich gern Geany. Da kann man auch Make-Befehle festlegen.
Fauli schrieb: > Für jeden Upload oder kompilieren muss man hoch und den Befehl dafür > eintippen. Naja, es ist F1 + ein Klick weil die letztbenutzten Kommandos in der Liste oben bleiben. Ein Symbol in der Statuszeile zu erzeugen sind wenige Zeilen Code in der Extension, es wundert mich das es nicht drin ist. Aber die Entwicklergemeinde da ist groß und dynamisch, das ist mit Sicherheit nur eine Frage der Zeit.
Ich kann eigentlich nicht gut nachvollziehen warum man die Arduino IDE wirklich so sehr haßt. Arduino Programme sind meist relativ klein, so daß die einfache Umgebung nicht unbedingt ein großer Nachteil ist. Die Einfachheit dieser Umgebung und die Portabilität und die problemlose Installation auf vielen Rechnern sind doch auch Vorteile die anerkennungswürdig sein könnten. Einzig und allein das Fehlen eines Debuggers ist ein Manko. Das GCC Toolset erlaubt auch eigene Lösungen ohne unbedingt von den Bibliotheken abhängig sein zu müssen, wenn auch die Vielzahl der publizierten Bibliotheken das schnelle Testen neuer Peripheien erlaubt. Wir arbeiteten vor zwei Jahren an einem größeren Projekt mit schätzungsweise über 30 Source und Header Dateien und es ließ sich immer noch einigermaßen flüssig mit dem Arduino IDE arbeiten. Auch in externer Editor funktionierte gut mit dem ID zusammen. Die complierte FW war an die 200KB groß auf einem MEGA256 mit Graphic Display für ein Protyp Meßgerät Proof of Concept und wir hatten kaum Probleme damit. Das Fehlen eines Debuggers ist ein viel größerer Nachteil und wäre für mich ein Grund einen uC mit JTAG wie z.B einen STM32 o.ä. zu bevorzugen. Ich persönlich finde das Arduino IDE, wenn auch nicht ideal, aber durchaus sehr brauchbar um schnell etwas zum Laufen zu bringen. Das Fehlen des Debuggers ist die wirklich einzige Schwäche. Ich sehe die Thematik Arduino eher locker. Nicht jeder muß professionelle, sicherheitskonforme SW und HW entwickeln. Viele Arduino Projekte verbleiben als reine Experimental Aufbautn um den ihnen zugedachten Zweck mehr oder weniger gut zu erfüllen. Professionellen Entwicklern wird ja in der Regel auch nicht zugemutet mit solchen Werkzeugen zu arbeiten. Arduino befriedigt aber bestimmt viele Erwartungen für die gedachte Zielgruppe von Elektronik Interessenten und Studenten. Es ist ja jedem freigestellt wie tief und gründlich in die weitere Thematik und Grundlagen der uC Technik er sich einarbeiten möchte oder muß. Was mich betrifft hat die Arduino Bewegung die Elektronikwelt in positivem Maße bereichert. Die Arduino IDE beinhaltet alles wichtige um funktionierende SW damit herstellen und herunterladen zu können. Ich bin mir sicher, daß die Entwickler genau wußten was zwingend für das Aduino Ökusystem notwendig war und was man weglassen konnte.
Gerhard O. schrieb: > Arduino Programme sind meist relativ klein, Auch kleine Programme können große Probleme machen... Allein das fehlende Intellisense / Code Completition kostet unnötig Zeit für vermeidbare Fehler. Da setzt der Eclipse Parser immer noch hohe Maßstäbe weil der auch defines berücksichtigt, also weiß ob etwas bedingt gar nicht ausgewertet werden muss. GDB Support ist in VSCode auch drin und kann über OOCD oder andere Schnittstellen angeflanscht werden.
Fauli schrieb: > VScode hatte ich für Arduino probiert. Installieren und Arduino Plugin > geht einfach. Danach wird es jedoch Mist. Für jeden Upload oder > kompilieren muss man hoch und den Befehl dafür eintippen. Geht gar nicht > wenn man schon Buttons gewöhnt ist. Das ist mir alles auch viel zu > undurchsichtig. Das Problem haben alle IDEs die Multikulti sein wollen. > Die Konfigurationsanleitungen sind auch meistens veraltet. Man muss > zuviel Hand anlegen. Mit PlatformIO (Plugin für VSCode/Atom) bekommst du deine gewünschten Buttons wieder (Upload, Build, Monitor...) Ansonsten via Aufgabe ausführen (Strg + Alt + T). Und mit dem integrierten Library Manager bekommst du all das was Arduino IDE auch bietet und eben noch viel mehr. Ich finds super. Benutze es inzwischen für AVR, ESP8266, ESP32 und STM32. Egal welche Platform man verwendet, die Bedienung bleibt gleich.
:
Bearbeitet durch User
Gerhard kann ich in seiner Aussage nur zustimmen. Der Debugger des kleinen Mannes heißt "serielle Ausgabe". Ist eigentlich ausreichend für den Hobbyprogrammierer. Ich hatte noch nicht das Bedürfnis den Bits zuschauen zu müssen. :-) Und die Arduinoboards selbst können auch die Profis unter euch zum entwickeln verwenden mit der gewohnten IDE. ISP Pfostenstecker sind überall vorhanden. Timmo, vielleicht probiere ich VScode mit dem Plattform I/O Plugin nochmal aus - irgendwann. Danke für den Nachtrag, sonst hätte das bei mir immer im schlechten Licht gestanden, scheinbar zu unrecht.
Gerhard O. schrieb: > Ich kann eigentlich nicht gut nachvollziehen warum man die Arduino IDE > wirklich so sehr haßt. Eine Funktion, die es dort nicht gibt (oder die gut verborgen ist), ist ein "gehe zur Definition/Deklaration eines Symbols" oder die "öffne die #include-Datei, auf deren Namen gerade der Mauszeiger zeigt". Gerade das aber ist zum Verstehen von sogenannten """"Libraries"""" * wichtig, denn die "Dokumentation", die es gibt, ist oftmals sehr unvollständig bis lausig. Ein "mache eine Volltextsuche nach dem markierten Begriff in allen zum Projekt gehörenden bzw. von ihm referenzierten Dateien" wäre ja auch schon etwas, aber auch das scheint es in der Ardunio-IDE nicht zu geben. *) die vielen Anführungszeichen stehen dafür, daß der Begriff hier von den Arduino-Schöpfern in dümmlicher Weise falsch missbraucht wird, aber das ist eine andere Geschichte, die schon an anderer Stelle ausreichend ausdiskutiert wurde.
Rufus Τ. F. schrieb: > falsch missbraucht wird Wäre es in Ordnung, wenn sie den Begriff richtig missbrauchen würden? Rufus Τ. F. schrieb: > Ein "mache eine Volltextsuche nach dem markierten Begriff in allen zum > Projekt gehörenden bzw. von ihm referenzierten Dateien" Das kann ja selbst Geany. Und da kann man auch Makefiles zum Compilieren und Avrdude zum Brennen konfigurieren. Das Einzige was fehlen würde wäre ein Uart-Terminal, aber dafür gibts auch genug Ersatz, zumindest unter Windows.
Rufus Τ. F. schrieb: > Ein "mache eine Volltextsuche nach dem markierten Begriff in allen zum > Projekt gehörenden bzw. von ihm referenzierten Dateien" wäre ja auch > schon etwas, aber auch das scheint es in der Ardunio-IDE nicht zu geben. ...bislang dachte ich eigentlich, <Strg>-F täte genau dies (sofern man dort "alle Tabs" angekreuzt hat)?
Karl K. schrieb: > Wäre es in Ordnung, wenn sie den Begriff richtig missbrauchen würden? Besser wäre es, wenn sie ihn richtig gebrauchen würden, aber der Zug ist abgefahren, Generationen von arduino-verseuchten Programmierern werden eine harte Zeit haben, wenn sie es richtig lernen müssen, ganz wie die Kinder, die in der Schule "Schreiben nach Hören" lernen. Jan L. schrieb: > ...bislang dachte ich eigentlich, <Strg>-F täte genau dies (sofern man > dort "alle Tabs" angekreuzt hat)? Wenn man "alle Tabs" ankreuzen kann, macht es offensichtlich was anderes - es sucht in allen offenen Dokumenten, nicht aber in allen, die zum Projekt gehören bzw. davon referenziert werden.
Rufus Τ. F. schrieb: > ganz > wie die Kinder, die in der Schule "Schreiben nach Hören" lernen. Ach Gottchen, wir sind wieder bei "früher war alles besser" und "die Jugend von heute" angekommen.
Rufus Τ. F. schrieb: > > Wenn man "alle Tabs" ankreuzen kann, macht es offensichtlich was anderes > - es sucht in allen offenen Dokumenten, nicht aber in allen, die zum > Projekt gehören bzw. davon referenziert werden. Das bedeutet demnach, dass andere IDEs z.B. sämtliche Libraries, die im Code referenziert werden, per Volltext durchsuchen, aus der IDE heraus? Oder was bedeutet hier dann ‚referenziert‘? Die Arduino-IDE macht zumindest mal automatisch alle Dateien auf, die im Projektverz. liegen, und ‚zulässige‘ Endungen haben. Dürfte in den meisten Fällen genügen, imo...
Bei den besseren IDE ist das nicht nur eine dumme Volltextsuche sondern ein sprachabhängiges parsen der Quellen. Das bietet dann auch Codevervollständigung und zeigt Syntaxfehler schon bei der Eingabe an, ohne Kompilieren zu müssen. Am besten hat das noch der Indexer vom Eclipse CDT drauf, der berücksichtigt nämlich auch #defines was gerade bei Quelltexten die für mehrere Targets geschrieben sind sehr hilfreich ist. Versuch mal den Code von IRMP ohne so ein Feature nachzuvollziehen.
Rufus Τ. F. schrieb: > Gerhard O. schrieb: > Eine Funktion, die es dort nicht gibt (oder die gut verborgen ist), ist > ein "gehe zur Definition/Deklaration eines Symbols" oder die "öffne die > #include-Datei, auf deren Namen gerade der Mauszeiger zeigt". > > Gerade das aber ist zum Verstehen von sogenannten """"Libraries"""" * > wichtig, denn die "Dokumentation", die es gibt, ist oftmals sehr > unvollständig bis lausig. Genau, gerade bei den ganzen Methoden mit Vererbungen noch und nöcher, ist das schon sehr Hilfreich. Einfach die Methode markieren F12 Drücken oder "gehe Zu Definition" und ggf. noch zwischen Header und Source switchen und natürlich die Auflistung bei der Eingabe aller verfügbaren Methoden und Überladungen ist schon extrem hilfreich. Das hat mir schon unzählige Stunden an Durchsuchen der Quellen gespart (weil das mit der Arduino IDE halt nicht möglich ist). Ich bin ja eh kein Fan von C++, aber sowas wie Intellisense ist schon eine Erleichterung insb. dann wenn man mit fremden Quellen/Libs arbeitet.
:
Bearbeitet durch User
Jan L. schrieb: > Das bedeutet demnach, dass andere IDEs z.B. sämtliche Libraries, die im > Code referenziert werden, per Volltext durchsuchen, aus der IDE heraus? Libraries (*.a bzw. *.lib) im Volltext zu durchsuchen wäre Unfug, das sind Binärdateien. Aber alle zum Projekt dazugehörenden Dateien (*.c, *.cpp, *.h etc.) sowie alle von diesen Dateien includierten Dateien. Ja, das können vernünftige IDEs. > Die Arduino-IDE macht zumindest mal automatisch alle Dateien auf, die im > Projektverz. liegen, und ‚zulässige‘ Endungen haben. Dürfte in den > meisten Fällen genügen, Das tut es genau dann nicht, wenn man eine Definition von etwas sucht, was eben nicht im Projektverzeichnis liegt. Sei es, weil es in einer zur Laufzeitumgebung gehörenden Include-Datei definiert ist, sei es, weil es in einer sogenannten (Diskussion s.o.) """"Library"""" liegt.
:
Bearbeitet durch User
Läuft PlatformIO auch mit aktuellen Python 3.x oder nur mit Python 2.7?
"Python 2.7 is required. PlatformIO does not support Python 3."
Als ich das letzte mal was mit Arduino (ESP32 und ESP8266) etwas gemacht habe, viel meine Wahl auf VisualMicro. Gibt es für AtmelStudio und dem normalen VisualStudio als Extension. Lief ganz ordentlich. PlatformIO hab ich auch mal getestete mit VsCode, als auch mit Atom. Hat mich nicht sehr überzeugt und hab es deshalb auch schnell wieder verworfen. Heute benutze ich für die ESPs das Espressif SDK und VsCode ohne PlatformIO. Zum flashen und kompilieren einfach make bzw. make flash in das Terminal (innerhalb von VsCode) und fertig.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.