Software-Architektur für Embedded SW

Gast #1428199
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren