Forum: Mikrocontroller und Digitale Elektronik OS funktionalität auf MCU


von McReaper (Gast)


Lesenswert?

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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wen DOS und Linux hardwareunabhängig wären, dann würde sie auch auf 
einem TinyAVR laufen ;P
"Hardware-Abstraktion" kann ein BS bieten muß es aber nicht.

von Peter D. (peda)


Lesenswert?

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

von McReaper (Gast)


Lesenswert?

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?

von McReaper (Gast)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

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.

von TheMason (Gast)


Lesenswert?

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.

von McReaper (Gast)


Lesenswert?

"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,..

von Paul H. (powl)


Lesenswert?

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.

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.