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


von Software Engineer (Gast)


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

von Soeren A. (abraxa)


Lesenswert?

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
Noch kein Account? Hier anmelden.