Hallo, ich befinde mich gerade bei der Konzeption und dem Entwurf der Software Architektur für einen Eingebettes System (ARM7, Timer, Schnittstellen (CAN, LIN, UART, Ethernet, ...)). Dabei können sowohl die Schnittstellen, als auch die Timer HW-Interrupts auslösen. Jetzt stehe ich vor der Problemstellung, wie ich die Interrupts (Events) an die einzelnen Layer weiterleite und diese sozusagen über die Events informiere, um den jeweiligen Anwendungsfall (Funktionsaufruf) zu initieren (triggern). Mein derzeitiges Konzept ist, dass ich eine Art HAL (HW-SW Interface) auf den Timer und die Schnittstellen lege und die Module, die sich in darüberliegenden Schicht befinden, können sich über Funktionspointer registieren. Zeitgesteuerte Events werden in eine Event-Queue (Doppelt verkettete Liste) eingereiht. Das sich eine obere Schicht bei einer unteren Schicht über einen Funktionspointer registrieren kann, möchte ich dann für die weiteren Schichten weiterführen (Design Pattern: Publisher-Subscriber). Das Abpollen von Werten in Schleifen und das Hochzählen von Countern würde ich gerne vermeiden. Ist das so realisierbar ? Gibt es da bessere Konzepte ? Ich glaube ich werde dann auch nicht darum herum kommen die Ausführungszeiten der einzelnen Funktionen zu messen, um dann die Intervall in Abhängigkeit der Max. Ausführungszeit festzulegen. Macht es dann sinn, das Zeitliche Verhalten des gesamten Systems über Sequenzdiagramme zu modellieren ? Über Anregungen und Kritik währe ich sehr dankbar. Ich bin Absolvent und das ist jetzt mein erstes praktischen Projekt in der SW-Entwicklung im Embedded Bereich. Vielen Dank
Kannst du so machen, aber warum die Arbeit? Es gibt freie embedded-OS (bspw. freeRTOS), die dir die Abstrahierung abnehmen.
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.