en
de

Iterativ-inkrementelle Software-Entwicklung und die Hardware

16 September 2013
| |
Lesezeit: 2 Minutes

Wer Embedded Software iterativ-inkrementell entwickelt, stößt sehr schnell auf die Hardware als vermeintlichen Hinderungsgrund. Die Hardware ist ja erst nach vielen Monaten Entwicklungs- und Fertigungszeit verfügbar. Dann erst wären eine System-Integration und eine Demonstration des Fortschrittes in der Software möglich. Aber „Software before Hardware“ ist möglich – zwei Lösungswege, die wir regelmäßig praktizieren, will ich hier aufzeigen.

Lösungswege

  • Die Firmware wird auf dem PC zur Ausführung gebracht. Dazu muss die Software-Architektur einen HAL (Hardware Abstraction Layer) vorsehen, der zwischen PC und Ziel-Hardware einfach ausgetauscht wird. Der HAL für den PC sollte dabei das Verhalten der Treiber auf der Ziel-Hardware möglichst gut imitieren. Nebeneffekte dieser Maßnahme sind eine nachweislich gute Portabilität der Firmware und die komfortablere Entwicklungsumgebung auf dem PC. Eine Emulation der Ziel-Hardware ist  auch denkbar, aber meistens zu aufwendig.
  • Ein Evaluation Kit ist für die meisten Prozessoren schnell beschafft. Die fehlende Elektronik lässt sich manuell ergänzen oder mit Komponenten der Automatisierungstechnik simulieren. Am besten baut man sowieso ein HIL-Testsystem (Hardware in the loop), das in erster Instanz an das Evaluation Kit adaptiert wird. Nebeneffekt ist die Möglichkeit automatisierter Systemtests. Durch die Simulation der umgebenden Elektronik wird auch das Problem der fehlenden Mechanik gelöst.

Die Entwicklung einer PC-Simulation lohnt sich schon allein aufgrund der Nebeneffekte. Wie weit man die zweite Option ausreizt hängt davon ab, wie wichtig das Vorziehen der Software-Entwicklung und damit die Dauer der System-Integration nach Fertigstellung der Hardware sind. Bei einem besonders zeitkritischen Projekt konnten wir den Zeitaufwand für die Integration mit der neuen Hardware ohne gewaltige Kosten auf wenige Stunden reduzieren!

Bei der Demonstration des Fortschrittes in der Software am Iterationsende muss man allerdings etwas Flexibilität zeigen und diese stattdessen mit der PC-Simulation an der simulierten Peripherie oder im HIL-Teststand durchführen.

Oft bleibt es aber nicht bei der ersten Hardware-Version, weitere folgen geplant oder ungewollt. Während die neue Hardware noch in der Entwicklung oder Fertigung ist, kann schon die Umgebung für die Weiterentwicklung der Software geschaffen werden:

  • In der PC-Simulation einfach durch Änderung des HAL
  • Durch manuelle Änderung des Evaluation Kits oder der alten Hardware
  • Durch Umbau des HIL-Testsystems

Eventuell sieht die Hardware auch eine einfache Änderbarkeit durch Aufsteckboards und andere Möglichkeiten der modularen Elektronik-Entwicklung vor.

Ist dieser Lösungsweg für Sie praktikabel? Haben Sie andere Ideen oder Erfahrungen gemacht? Tipps dazu würden mich natürlich brennend interessieren.

Kommentare (1)

Daniel Tobler

Daniel Tobler

27 Oktober 2013 um 23:14

Zentral ist, dass die HW, SW und auch die Mechanik in der Anfangsphase sehr intensiv zusammenarbeiten. Ein kleines, cross-funktionales Team baut einen Prototypen, mit dem die SW dann weiterentwickeln kann, derweil HW und Mechanik ihre Teile produktionsreif machen. Der Protoyp kann nun auf Simulation aufbauen oder eben ein Evalkit gebrauchen. In der Mechanik kann oft die alte Maschine/Roboter angepasst werden.
Bei mir läuten die Alarmglocken, wenn die HW und Mechanik die SW alleine lassen und die SW nicht mit den beiden anderen Stellen sprechen will. Gute und enge Zusammenarbeit und gemeinsame, schnelle Problemlösung sind der Schlüssel für den Erfolg in einem interdisziplinären Produkt. Technische Lösungen sind zweitrangig.

×

Updates

Schreiben Sie sich jetzt ein für unsere zwei-wöchentlichen Updates per E-Mail.

This field is required
This field is required
This field is required

Mich interessiert

Select at least one category
You were signed up successfully.

Erhalten Sie regelmäßige Updates zu neuen Blogartikeln

Jetzt anmelden

Oder möchten Sie eine Projektanfrage mit uns besprechen? Kontakt aufnehmen »