Software-Architektur für Embedded SW

Gast #1428199
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.