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
Ü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.
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?
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.
"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.
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?
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.
> 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.
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...).
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.
... 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.
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.
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
http://picoos.sourceforge.net/ http://micrium.com/page/support/bookstore Am besten mal die Grundlagen durchgehen, um eine Übersicht zu bekommen.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.