OS funktionalität auf MCU

Gast #1749441
Hallo,

das Thema wurde bestimmt schon viele male angesprochen. Sehe ich das 
richtig das eine "Betriebssystem" für eine MCU (egal ob C51 ARM7 oder 
andere) lediglich Tasks verwaltet?
Bei uns geht jemand davon aus das eine Betriebssystem für eine MCU das 
gleiche übernimmt wie ein DOS oder Linux sprich Hardwareunabhängigkeit 
(in besonderer Hinsicht auf Schnittstellen; COM; I2C; CAN; LCD 
Ansteuerung... ).
Ich kenne allerdings kein OS welches diese Funktionalität bereitstellen 
würde. Gibt es solche Betriebssysteme für eine MCU welche die 
Ansteuerung der Hardware übernimmt?


Grüße

McReaper
Die Hardwareunabhängigkeit macht nicht das OS.

Das OS bietet Dir nur die Möglichkeit, Treiber (DLL) zu installieren, 
die dann speziell auf die Hardware zugeschnitten sind.
Oftmals braucht man dazu noch nen SW-Treiber, der dann darauf 
Protokollschichten implementiert.

Das alles macht man bei nem MC einfach durch ne Bibliothek.

Da aber die HW auf nem MC nicht standardisiert ist, sondern man quasi 
alles dranklatschen kann, findest Du oft nicht eine fertige Bibliothek, 
sondern mußt sie selber schreiben.


Peter
Gast
Das mit der Hardwareunabhängigkeit sollte nur eine Beispiel sein.
Natürlich kann man Dos nicht einfach auf einen C51 packen. ^^

Aber gibt es denn ein Betriebssystem für MCU's was eine 
"Hardware-Abstarktion" bereitstellt?
Gast
Also muss man zwangsläufig entweder eine Bibliothek für das 
entsprechende OS (z.B. FreeRtos) finden oder sie wie gehabt selber 
schreiben.

Man hat im eigentlichen Sinne keine Hardwareunabhängigkeit sodern ist 
immer noch an eine MCU bzw. eine Serie gebunden. Wenn man beispielsweise 
von einem ARM7 auf einen Cortex wechseln würde, hat man eigentlich keine 
Möglichkeit sich das schreiben der "Hardware-Treiber" zu ersparen oder?

Gibt es denn ein OS welches viele Bibliotheken bereitstellt?
McReaper schrieb:

> Aber gibt es denn ein Betriebssystem für MCU's was eine
> "Hardware-Abstarktion" bereitstellt?

Kommt auf deine Definition von "MCU" an. Linux gibt's in allerlei 
Varianten auch auf 32-Bit Controllern, uCLinux auch auf solchen ohne 
MMU.

Generell sind aber RTOS für kleine MCUs typischerweise eher eng 
definiert, auf Task-und ggf. Speicherverwaltung begrenzt. Der Rest ist 
dann Sache der Anwendung. Ein formales Treiberkonzept existiert mitunter 
für Datenstrominterfaces wie UART. Dafür finden sich dann teilweise auch 
Treiber oder Beispiele für solche.
Gast
Auf größeren MCU vielleicht Linux ansonsten nichts. Ein bisschen 
Hardwareanpassung muss eigentlich immer gemacht werden, wie soll das 
auch sonst funktionieren? Schau dir doch mal embOS von Segger an 
(segger.com), die haben auch eine Menge Bibliotheken für GUI, 
Filesystem, TCP/IP, USB, ...

Beim Cortex M3 gibt es den Standard CMSIS, um die Hardware Sachen zu 
vereinfachen, da bekommst du dann vom Chiphersteller fertige 
Bibliotheken.
Die Segger Sachen sind natürlich auch CMSIS kompatibel.
Gast
CP/M ist zwar ein recht altes OS, aber dadurch das es da eine 
Hardware-Abstraktionsschicht gibt ist es schon ein vergleichbares OS. 
Wenn auch viel viel kleiner als ein Linux/DOS/Windows. Aber das Prinzip 
dahinter ist schon interessant. Vor allem für kleine uC's.
Gast
"Generell sind aber RTOS für kleine MCUs typischerweise eher eng
definiert, auf Task-und ggf. Speicherverwaltung begrenzt."

Hmm das hab ich mir schon gedacht. Beispiele hab ich mir schon viele 
angeschaut allerdings sind diese dann meist auf genau einen Prozessor 
zugeschnitten.

Was ich suchen wäre entweder eine "Betriebssystem" mit 
Hardwareabstraktion (von mir aus uCLinux) oder Bibliotheken die mir die 
Aufgabe abnehmen das ich jede Schnittstelle selber ansprechen muss. Das 
ganze halt für einen Cortex M3. Hat da jemand vielleicht ein Paar 
hilfreiche Links? Danke für die Hinweise, CMSIS und CP/M schau ich mir 
gleich einmal an.

Falls es so etwas nicht geben sollte, wäre ein Tutorial zu ARM7 
hilfreich. Ich habe mich bisher nur mit C51 Prozessoren beschäftigt mit 
denen ich mich auch gut genug auskenne. Der umstieg auf 32 bit ist ein 
wenig gewöhnungsbedürftig. Ich hab mir das AVR Tutorial auch schon 
angeschaut. Es ist ziemlich gut geschrieben allerdings fehlt mir dich 
Architektur Beschreibung. Ich kann leider absolut kein Assembler... Mich 
stört es ein wenig das ich relativ wenig von den Startupfiles verstehe 
die mir vom Compiler (Keil) oder von Beispielprojekten (z.b. für WinARM) 
vorgelegt werden.
Was mich gleich zu nächsten frage bringt: Welcher Kompiler ist für ARM7 
Prozessoren zu empfehlen?

Ich schweife grade ein wenig vom Titel Thema ab,..
Also mit Hardwareabhängigkeit siehts bei MCs wohl schlecht aus, da diese 
alle sehr unterschiedlich aufgebaut sind. Vielleicht kann man ein 
Programm hardwareunabhängig für verschiedene MCs einer Bauhreihe machen 
(z.b. Atmels ATmega Serie) wobei man sich da auch auf die Leistungen des 
schwächsten beschränken müsste, und das funktioniert auch, ohne das 
Programm anzupassen. Um Unabhängig zu sein muss jede Plattform gewisse 
Vorraussetzungen erfüllen. In der MC-Welt hat eben jeder Controller und 
jede Controllerserie seine/ihre Vorzüge, die man auch ausnutzen sollte. 
Beim PC ist das anders.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.