Die Entwicklung von Firmware für eingebettete Systeme erfordert nicht nur viel Wissen über Softwareentwicklung, sondern auch über Hardwareentwicklung. Die Entwicklung von Hardware und Firmware geht also Hand in Hand. Basti, einer unserer Hardware-Entwickler, hat bereits seine Top-Fünf-Tipps für die Entwicklung von Hardware-Prototypen mit Ihnen geteilt. Jetzt ist es an der Zeit, dass Josh und sein Team ihre Top-Fünf-Tipps für die Entwicklung einer Prototyping-Firmware auflisten.
-
Nutzen Sie die Werkzeuge
So einfach dies auch erscheinen mag, aber der Einsatz von Tools ist eines der wertvollsten Dinge. Es gibt viele Tools, die die Entwicklung von Firmware vereinfachen. Eine integrierte Entwicklungsumgebung (IDE) kann eine Menge guter Dinge für Sie tun. Die IDE kann Ihren Code automatisch vervollständigen, die Dokumentation Ihrer Klassen anzeigen, während Sie sie verwenden, den Build-Prozess organisieren, Ihren Code automatisch formatieren, Ihren Code hervorheben, damit er besser lesbar wird und vieles mehr. All diese Dinge machen die Entwicklung ein wenig effizienter und vor allem automatisieren sie die weniger angenehmen Teile der Entwicklung von eingebetteten Systemen. -
Kennen Sie Ihr Betriebssystem
Wenn Sie ein beliebiges Betriebssystem verwenden, müssen Sie eine gute Vorstellung davon haben, was es tut. Schauen Sie sich an, wie Tasks und Zeitpläne funktionieren, überprüfen Sie Ihre Konfigurationen, verschaffen Sie sich einen Überblick darüber, wie die Kommunikation zwischen den Prozessen funktioniert, damit Ihr Code keine seltsamen Fehler und Abstürze durch die Verwendung ungeschützter globaler Variablen produziert. -
Tauschen Sie sich mit anderen Embedded-Entwicklern aus
Sie sind nicht der einzige Embedded-Entwickler da draußen. Wenn Sie das bedenken, können Sie sich viel Zeit und Arbeit ersparen. Prüfen Sie öffentliche Quellkontrollen wie github, gitlab, source forge, um nur einige zu nennen, auf Bibliotheken, die Sie benötigen, bevor Sie Ihre eigenen schreiben. Wenn Sie etwas brauchen, ist die Wahrscheinlichkeit groß, dass es jemand geschrieben hat, und zwar wahrscheinlich schöner und besser, als Sie es in der Kürze der Zeit getan hätten. Achten Sie jedoch auf die Lizenzierung, bevor Sie mit der Verwendung von Bibliotheken beginnen. Ein weiterer hilfreicher Schritt ist es, Ihren Code von einem anderen Entwickler überprüfen zu lassen. -
Beginnen Sie mit dem Schreiben Ihres Codes von oben nach unten
Die grafische Ausarbeitung Ihres Codes ermöglicht es Ihnen, kompliziertere Teile davon zu diskutieren. Eine Möglichkeit ist die Verwendung der Unified Modelling Language. Eines unserer bevorzugten Software-Tools, Mermaid, unterstützt einige UML-Diagramme für Github und Gitlab. Markieren Sie diese Diagramme in Ihrem aktuellen Zweig. Aber auch wenn Sie nur beschriftete Quadrate auf ein Blatt Papier schreiben und diese mit Pfeilen verbinden, wird Ihnen das helfen, Ihre Gedanken zu strukturieren und Klarheit zu gewinnen. Nachdem Sie sich einen Überblick über die Module verschafft haben, beginnen Sie mit dem Schreiben der Header und dann des Quellcodes. Wenn ein Modul Dinge aus einem anderen Modul verwendet, fügen Sie sie in den Header ein und verwenden Sie sie so, als ob sie bereits implementiert wären, damit sich Ihr zukünftiges Ich darum kümmern kann, wie es funktioniert.
Zwei Faustregeln:
– Trennen Sie Klassen, wenn es Sinn macht. Erstellen Sie sofort einen eigenen Header und eine eigene Quelldatei dafür. Eine Klasse steht für ein abstraktes Konstrukt von etwas, das Sie definieren!
– Verwenden Sie aussagekräftige Namen für Variablen und Funktionen. Eine Funktion tut genau das, was sie in ihrem Namen beschreibt. Nicht mehr und nicht weniger. Der Benutzer sollte sich nicht darum kümmern müssen, wie Ihre Funktion funktioniert! -
Verwenden Sie Quellcode und Versionskontrolle
Die Versionskontrolle ist äußerst nützlich, wenn Sie nicht der einzige sind, der die Firmware entwickelt. Alle Beteiligten wissen, was die neueste Version ist, und Sie können den Code leicht verzweigen und zusammenführen. Aber auch wenn Sie alleine arbeiten, kann die Versionskontrolle Ihnen helfen, indem sie ein Fenster in die Vergangenheit bietet, also ein unendliches „STRG „+“Z“ ist.
Lernen Sie, wie man Rebases und Merges handhabt und wie man Git-Flows verwendet. Probieren Sie das erst einmal aus, bevor Sie es bei einem echten Projekt einsetzen, aber es wird Ihnen den enormen Schmerz ersparen, ständig Dinge neu korrigieren und implementieren zu müssen, von denen Sie sicher sind, dass Sie sie bereits erledigt haben.
All diese Tipps mögen sehr einfach klingen, aber am Ende werden Sie einen schönen Code entwickelt haben, der funktioniert und sich später leicht anpassen lässt. Je mehr Zeit Sie in der Entwurfsphase verbringen, desto weniger Rückschritte müssen Sie bei der Entwicklung des Codes machen. Wie bei allem im Leben gilt: Übung macht den Meister. Mit diesen Tipps im Hinterkopf wünsche ich Ihnen viel Spaß beim Entwickeln und hoffe, dass sie Ihnen einige Frustrationen ersparen können.