Forum: Mikrocontroller und Digitale Elektronik Starthilfe: ARM9 Betriebssystem ja/nein


von Bernd (Gast)


Lesenswert?

Hallo,
ich habe bisher nur mit AVR gearbeitet und diese in C geproggt.
Jetzt habe ich eine neue Aufgabenstellung. µC mit TFT.
Ich habe mir zum lernen bei Taskit was rausgesucht (Panel-Card 57 mit µC 
Modul). Ich möchte Grafik, Touchscreen, SDCARD, Audio und Uart benutzen.
Welche Vorteile/Nachteile bringt da ein Betriebssystem?
Wie kann ich mir das programmieren mit einem Betriebssystem vorstellen?

Kann mir vielleicht mal jemand an einen simplen Beispiel (Pin x auf high 
setzen) zeigen, wie man das mit und ohne Betriebssystem programmieren 
würde.

Danke im Vorrau

von Jens B. (sio2)


Lesenswert?

Überlegmal was dir ein Betriebssystem auf dem PC bringt. So ists dort 
genauso. Einfachere Verwaltung der HW. Andre sachen sind wieder 
Schwieriger.
Pin Togglen? versuche es mal unter DOS und Windows am Parallelport oder 
RS232. Da siehst du schon gut die Unterschiede.

von Bernd (Gast)


Lesenswert?

Verwaltung der HW, OK. Aber wie kann ich mir das vorstellen, wird da 
z.B. der Memory automatisch eingerichtet oder ???

Pin Togglen ist schwierig? Also Einfaches ist schwierig, Schwieriges 
einfach?


Wie gebe ich z.B. mit einem Betriebssystem ein Bild auf dem TFT aus?
Unter C, kann ich es mir ja noch vorstellen, aber mit Betriebssystem?

von mampf (Gast)


Lesenswert?

Ein (gutes) Betriebsystem bietet auch
-Prozesse und Tasks mit verschiedenen Prioritäten
-Interprozess/taskkommunikation
-Speicherverwaltung

Dafür ist wie bereits genannt die Hardware i.d.R. schwierig 
anzusprechen.

von Jens B. (sio2)


Lesenswert?

"Wie gebe ich z.B. mit einem Betriebssystem ein Bild auf dem TFT aus?
Unter C, kann ich es mir ja noch vorstellen, aber mit Betriebssystem?"

cat /home/myName/myPics/tanja.bmp >> /dev/fb0 ;)
Framebuffer öffnen, bild reinschreiben, fb schliessen. Fertig.

von Bernd (Gast)


Lesenswert?

Das sieht jetzt natürlich einfach aus :-)

Das ist Linux/unix oder?

Geht das auch so einfach, wenn man mehrere kleinere Bilder nebeneinander 
haben möchte, ich denke da an Schaltericons, die dann mit dem 
Touchscreen gedrückt werden?

von Falk (Gast)


Lesenswert?

Bei deinen Schalter Icons kommen wir dann in Richtung GUI.
Hierbei hast du unter Linux eine GUI im embedded Bereich z.B. Qt mit 
deren Hilfe du dein "Icon Menü" in C oder so schreibst und die GUI 
regelt dann deine Benutzeroberfläche.

von horst (Gast)


Lesenswert?

> Also Einfaches ist schwierig, Schwieriges einfach?

Die Hardware wird abstrahiert. Konkretes wird schwieriger.
Alles, wo du einen Treiber dafür hast, wird einfacher. Ansonsten heißt 
es selber Treiber schreiben.
Ich gehe jetzt mal von einem "höheren" OS aus und nicht von einem 
einfachen Taskmanager.

Wenn du z.B. unter Linux programmierst, dann ist das dem Programmieren 
unter Linux am PC ähnlicher als der Programmierung eines nackten AVR.

von Klaus W. (mfgkw)


Lesenswert?

Wobei man auf einem mC hoffentlich kein DOS laufen lassen will.
Wenn es sauber gemacht ist, geht der Zugriff auf Pins auf
einem sinnvollen OS auch recht einfach (z.B. Schreiben nach
dev...).

von ... (Gast)


Lesenswert?

Bernd schrieb:
> ich habe mir zum lernen bei Taskit was rausgesucht (Panel-Card 57 mit µC
> Modul).

Mit 548,- bis 811,-Euro bist du bei Taskit aber als Anfänger teuer 
dabei...

Du solltest dir erst mal darüber klar werden mit welchem Controller du 
arbeiten willst,
AVR32 oder ARM oder..... Dann dir das entsprechende Board suchen. Dabei 
solltest du berücksichtigen: Mit welchen Tools kann ich das Board 
programmieren. Welchen Programmieradapter brauche ich. Welche 
Betriebssysteme laufen darauf. Brauche ich ein Betriebssystem oder kann 
ich den Controller auch zu Fuß programmieren.

von ... (Gast)


Lesenswert?

... schrieb:
> Du solltest dir erst mal darüber klar werden mit welchem Controller du
> arbeiten willst,

Ups, sorry, hab die Überschrift überlesen. Aber auch bei ARM9 gibt es 
günstigere Boards.

von Bernd (Gast)


Lesenswert?

Bei dem Taskit Board habe ich halt schon ein größeres TFT.
Bisher hatte ich mir Crossworks rausgesucht. Da gibt es ja auch diese 
Task- Geschichte...
Dann habe ich an anderer Stelle wieder gelesen, das man ARM9 ohne OS 
nicht betreiben sollte, weil der Programmieraufwand zu hoch sei. Daher 
meine Frage ob oder ob nicht.

von Robert T. (robertteufel)


Lesenswert?

Nur mal ein Grund warum ein OS fuer einen ARM9 sinnvoll ist. 
Cache-Verwaltung! Ohne Cache sind die meisten ARM9 lahme Kruecken, der 
Cache macht einen Riesenunterschied in der Performance. Wenn man den 
allerdings selbst verwalten muss, viel Spass! Keine Ahnung wovon ich 
spreche? Dann ist das OS ein MUSS.

Robert

von Max (Gast)


Lesenswert?

http://picoos.sourceforge.net/
http://micrium.com/page/support/bookstore

Am besten mal die Grundlagen durchgehen, um eine Übersicht zu bekommen.

von Purzel H. (hacky)


Lesenswert?

Ein Betriebsystem beinhaltet ein Programmloader, Treiber hier genannt 
API fuer die Peripherie, falls die CPU eine MMU hat ist ein 
Memorymanagement dabei. Ein Realtime Betriebssystem enthaelt auch die 
ganze Infrastruktur fuer Taskwechsel auf Multiprogrammebene.
Eine abgespekte Variante ist ein Realtimekernel. Das ist eine zu einer 
einzelnen Applikation zulinkbare Library, die die Taskwechsel 
Infrastruktur enthaelt. Ohne OS hat man so genau nur eine Applikation am 
Laufen, welche aus mehreren Task besteht, das Memory Managment wird in 
diesem Fall auch durch den Realtimekernel bereitgestellt.

von Bernd (Gast)


Lesenswert?

OK, es wäre nett, wenn mir da jemand erklären könnte, wie ich da 
anfange. Gibt es da Bücher oder Tutorials, die wirklich bei Null 
starten?
Ich kann bisher nur etwas C, möchte das aber wirklich lernen!
Dank im Voraus.

von Hans S. (hhasch)


Lesenswert?

Hallo Bernd,

falls Du immer noch ein passendes ARM9 Board suchst schau dir mal das
neue BMSKTOPAS900 Starterkit von Toshiba an. Das ist peripheriemäßig
sehr gut bestückt.
BMSKTOPAS900-http://glyn.de/content_xl.asp?wdid=2337&sid=000000...
Das habe ich selbst vor kurzem für 179€ plus MwSt. über Glyn bezogen,
allerdings geht das nur als Firma. Falls Du dazu keine Möglichkeit hast
gib mir per PM Bescheid.
Was das Programmieren in C unter Linux und Linux auf Embedded-Systemen
angeht findest Du einiges im Netz. In Papierform kenne ich auch nix
griffiges zum Thema, aber vielleicht jemand anders hier im Forum wenn
die Urlaubszeit vorbei ist ;-)
Auf jeden Fall hast Du einiges vor Dir egal ob du die Hardware direkt
oder über ein Betriebsystem ansprechen willst. Bei Verwendung eines
Grafik-Displays, USB-Ports etc. würde ich persönlich auf jeden Fall ein
Betriebssystem als Unterbau vorziehen, da es "zu Fuß" ein arg steiniger
Weg ist.

Viel Erfolg
Hans

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.