Firmware: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Mit Firmware wird die Software bezeichnet, die mit einem Gerät an den Anwender ausgeliefert wird. Im eigentlichen Sinn des Wortes ist es nur die Software, die…“) |
K |
||
Zeile 4: | Zeile 4: | ||
=Entwicklungsumgebung= | =Entwicklungsumgebung= | ||
+ | ==Allgemeines== | ||
Heutzutage werden von den meisten Mikrocontroller-Herstellern die Software-Entwicklungssysteme kostenlos zur Verfügung gestellt. Hat sich ein Gerätehersteller auf den Einsatz eines bestimmten Mikrocontrollers bzw. einer bestimmten Mikrocontroller-Familie festgelegt, so ist das zugehörige Entwicklungssystem sicher eine sehr gute Wahl für die Softwareentwicklung. | Heutzutage werden von den meisten Mikrocontroller-Herstellern die Software-Entwicklungssysteme kostenlos zur Verfügung gestellt. Hat sich ein Gerätehersteller auf den Einsatz eines bestimmten Mikrocontrollers bzw. einer bestimmten Mikrocontroller-Familie festgelegt, so ist das zugehörige Entwicklungssystem sicher eine sehr gute Wahl für die Softwareentwicklung. | ||
Für die Ausbildung und/oder im Rahmen eines universell anwendbaren Projektes ist die Festlegung auf einen bestimmten Mikrocontroller und das zugehörige Entwicklungssystem allerdings der falsche Weg. Hier ist der richtige Ansatz, ein bestimmtes Entwicklungssystem gut zu beherrschen und das für die Softwareentwicklung mit beliebigen Mikrocontrollern einzusetzen. Sehr gute Ansätze sind dabei u.a. die Konzepte von [https://www.arduino.cc/ '''Arduino'''] und [http://platformio.org/ '''PlatformIO''']. Beide lassen sich auch mit anderen Freeware-Entwicklungssystemen wie [https://www.eclipse.org/ '''Eclipse'''] oder mit Programm-Editoren wie [https://code.visualstudio.com/ '''Visual Studio Code'''] kombinieren. | Für die Ausbildung und/oder im Rahmen eines universell anwendbaren Projektes ist die Festlegung auf einen bestimmten Mikrocontroller und das zugehörige Entwicklungssystem allerdings der falsche Weg. Hier ist der richtige Ansatz, ein bestimmtes Entwicklungssystem gut zu beherrschen und das für die Softwareentwicklung mit beliebigen Mikrocontrollern einzusetzen. Sehr gute Ansätze sind dabei u.a. die Konzepte von [https://www.arduino.cc/ '''Arduino'''] und [http://platformio.org/ '''PlatformIO''']. Beide lassen sich auch mit anderen Freeware-Entwicklungssystemen wie [https://www.eclipse.org/ '''Eclipse'''] oder mit Programm-Editoren wie [https://code.visualstudio.com/ '''Visual Studio Code'''] kombinieren. | ||
− | Es soll im Rahmen dieses Projektes keine | + | Es soll im Rahmen dieses Projektes keine Bewerbung eines bestimmten Entwicklungssystems oder Mikrocontrollers passieren. Das beste Entwicklungssystem ist immer das, mit dem der Anwender am besten umgehen kann und das er ohne unverhältnismäßig großen Aufwand für die Programmierung beliebiger Mikrocontroller anpassen kann. Hier werden die Entwicklungssysteme (bzw. Konzepte) vorgestellt, mit denen der eine oder andere Teilnehmer am Projekt der dezentralen Heimautomatisierung gute Erfahrungen gemacht hat. |
+ | |||
+ | ==Verwaltung/Organisation der Software== | ||
+ | Ein sehr großes Problem beim Einsatz typischer Software-Entwicklungssysteme (IDE) ist deren Fixierung auf eine bestimmte Verwaltung der Programme bzw. Programmteile und Bibliotheken. | ||
+ | |||
+ | ==Sloeber/Eclipse== | ||
+ | Nach ersten Erfahrungen mit der [https://www.arduino.cc/en/Main/Software '''Arduino IDE'''] fehlten mir die Möglichkeiten, an die ich mich bei der Programmierung in C# mit Visual Studio 2010 gewöhnt hatte (ich brauchte bis heute noch kein Update, was aus meiner Sicht ein besonderes Lob für eine Software ist). Vor vielen Jahren hatte ich mich trotz mit Visual Studio vergleichbarer Eigenschaften gegen Eclipse entschieden, weil es auf meinem PC einfach zu langsam war. Aber inzwischen hat die Geschwindigkeit typischer PCs derart zugenommen, dass man auch mit Eclipse sehr gut arbeiten kann. |
Version vom 7. Oktober 2017, 10:29 Uhr
Mit Firmware wird die Software bezeichnet, die mit einem Gerät an den Anwender ausgeliefert wird. Im eigentlichen Sinn des Wortes ist es nur die Software, die auf dem Gerät selbst fest eingespeichert ist und ggf. durch ein sog. Update verändert werden kann. Es werden hier aber auch die Softwareanteile dazu gerechnet, die ein Gerät spezifisch bedienen, also z.B. eine spezielle APP auf einem Smartphone für die Wartung eines bestimmten Gerätes.
Aber auch die Software, mit der Standardgeräte (Smartphones, Tablets, PCs, Smart Watches, Wearables, etc.) in die dezentrale Heimautomatisierung integriert werden, fallen hier unter den Begriff Firmware. Damit wird die Unterscheidung zu der Software getroffen, die ein Anwender selbst entwickeln kann, um seine Heimautomatisierung an individuelle Vorstellungen anzupassen. Die Gestaltung einer entsprechenden Programmierschnittstelle ist wiederum ein Bestandteil der Firmware.
Inhaltsverzeichnis
Entwicklungsumgebung
Allgemeines
Heutzutage werden von den meisten Mikrocontroller-Herstellern die Software-Entwicklungssysteme kostenlos zur Verfügung gestellt. Hat sich ein Gerätehersteller auf den Einsatz eines bestimmten Mikrocontrollers bzw. einer bestimmten Mikrocontroller-Familie festgelegt, so ist das zugehörige Entwicklungssystem sicher eine sehr gute Wahl für die Softwareentwicklung.
Für die Ausbildung und/oder im Rahmen eines universell anwendbaren Projektes ist die Festlegung auf einen bestimmten Mikrocontroller und das zugehörige Entwicklungssystem allerdings der falsche Weg. Hier ist der richtige Ansatz, ein bestimmtes Entwicklungssystem gut zu beherrschen und das für die Softwareentwicklung mit beliebigen Mikrocontrollern einzusetzen. Sehr gute Ansätze sind dabei u.a. die Konzepte von Arduino und PlatformIO. Beide lassen sich auch mit anderen Freeware-Entwicklungssystemen wie Eclipse oder mit Programm-Editoren wie Visual Studio Code kombinieren.
Es soll im Rahmen dieses Projektes keine Bewerbung eines bestimmten Entwicklungssystems oder Mikrocontrollers passieren. Das beste Entwicklungssystem ist immer das, mit dem der Anwender am besten umgehen kann und das er ohne unverhältnismäßig großen Aufwand für die Programmierung beliebiger Mikrocontroller anpassen kann. Hier werden die Entwicklungssysteme (bzw. Konzepte) vorgestellt, mit denen der eine oder andere Teilnehmer am Projekt der dezentralen Heimautomatisierung gute Erfahrungen gemacht hat.
Verwaltung/Organisation der Software
Ein sehr großes Problem beim Einsatz typischer Software-Entwicklungssysteme (IDE) ist deren Fixierung auf eine bestimmte Verwaltung der Programme bzw. Programmteile und Bibliotheken.
Sloeber/Eclipse
Nach ersten Erfahrungen mit der Arduino IDE fehlten mir die Möglichkeiten, an die ich mich bei der Programmierung in C# mit Visual Studio 2010 gewöhnt hatte (ich brauchte bis heute noch kein Update, was aus meiner Sicht ein besonderes Lob für eine Software ist). Vor vielen Jahren hatte ich mich trotz mit Visual Studio vergleichbarer Eigenschaften gegen Eclipse entschieden, weil es auf meinem PC einfach zu langsam war. Aber inzwischen hat die Geschwindigkeit typischer PCs derart zugenommen, dass man auch mit Eclipse sehr gut arbeiten kann.