mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Software-Architektur für Embedded SW


Autor: Software Engineer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Soeren A. (abraxa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du so machen, aber warum die Arbeit? Es gibt freie embedded-OS 
(bspw. freeRTOS), die dir die Abstrahierung abnehmen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.