Hi, sicher wurde das schon öfters mal hier und da erwähnt, nur so konkret den Überblick hab ich noch nicht. Bisher habe ich mich nur mit den 8-Bit AVRs beschäftigt, möchte aber früher oder später auch Anwendungen umsetzen bei denen mehr Rechenpower gefordert ist (mp3s dekodieren, audio-anwendungen, farb-grafik für quitschbunte menüs usw. berechnen..). Nun mal die Frage, wie arbeitet man mit diesen 32-Bit µCs überhaupt? Kann ich mir das ähnlich wie bei den 8-Bit µCs vorstellen? Man hat verschiedenste Peripherie-Gruppen, SRAM, EEPROM, digitale I/O und kann diese dann in Assembler oder z.B. C mit entsprechenden Befehlen einfach ansteuern. u.A. genauso in Echtzeit wie bei nem 8-Bitter. Wie verhält sich im Allgemeinen die Taktrate zur Ausführgeschwindigkeit? Die kleinen AVRs benötigen pro Befehl ja meist nur 1-2 Takte, brauchen die 32-Bitter vielfach mehr oder sind die da (je nach Architektur natürlich..) ähnlich schlank aufgebaut, so dass die hohen Taktraten auch wirklich ein deutliches Leistungsplus bedeuten? Nun hab ich auch schon gelesen, dass man auf den 32-Bit µC meist ein kleines OS laufen lässt, ein Linux z.B.. ist das gang und gäbe? ist es ein absolutes muss? oder ist es nur eine option, die einem ein wenig arbeit bei der programmierung abnimmt? was nimmt es einem ab? speicherverwaltung etwa? entsprechende routinen zu einer dynamischen speicherverwaltung erzeugt doch ein compiler auch ohne dass auf dem zielsystem ein OS läuft? multitasking bzw -threading? ist der chip nun in der lage verschiedene programme gleichzeitig auszuführen und seine rechenleistung sinnvoll unter ihnen aufzuteilen? dann ist der µC ja garnicht mehr echtzeitfähig? muss dann nicht auch ein spezieller compiler her, der für dieses OS spezifischen code erstellt? was sind also die vorteile und nachteile eines OS auf dem µC, wenn es nicht gerade sowieso notwendig ist. mit wie viel SRAM, EEPROM, FLASH, whatever.. kommen die üblichen 32-Bitter denn daher? Viele Fragen, viel Verwirrung, ich hoffe ihr könnt mein verzerrtes Bild da etwas entzerren :) lg PoWl
Hi Paul Wenn du mit 8 Bittern gearbeitet hast und diese verstanden sind, dann verstehe ich deine Frage nicht so wirklich... das mit dem Datenblatt ist eine Sache, aber im Kern, du willst mehr Rechenpower und hast auch Anwendungen im Kopf. Nun hast du 2 Möglichkeiten: 1. Die einfache Art, nimm deinen PC, kauf eine Entwicklungsumgebung und nutze vorgegebene Hardware. 2. die richtig komplizierte, bau alles selbst und dimensioniere deine Hardware nach eigenem Geschmack. Wenn du aber schon vor deinem Projekt die Frage stellst: Was kann ein 32 Bitter so, dann sehe ich schwarz für Punkt 2. Warum ? Ich denke, die Auswahl eines Prozessors,Controllers oder was auch immer für ein elektronisch Ding ist zugeschnitten auf den Bedarf. Welches du an Programm drauf packst, ist den Dingern doch egal. Sie verarbeiten lediglich die elektrisch hinterlegten Signale. Verodern, verunden, subtrahieren undmultiplizeiren, schieben oder kippen sie um ( negieren..) Damits irgendwas nutzt schubsen sie diese Ladungen auf elektrische Speicher oder holen dort diese ab. Das Grundprinzip ist überall gleich. Also, Infos zu deinen Anwendungswüschen und die Parameter bekomst du in den Datenblättern.... Betrachte es mal so: andere lesen Krimis.... Gruß oldmax
1. Du hast noch nicht verstanden was "Echtzeit" bedeutet 2. Es ist unüblich ein OS wie Linux zu verwenden. 3. Ein RTOS auf einem uC ist toll und für komplexere Programme ein muss. 4. Ein 32Bitter kann alles was ein 8Bitter auch kann.
Arbeite Dich mal in Shell-Programmierung unter Linux ein und ich glaube Du bekommst einen guten Eindruck dafür wann ein 32 Bitter mit einem Betriebssystem sinnvoll ist. Grob gesagt werden damit bestimmte Probleme für die Du hunderte von Assemblerzeilen oder tausende von C-Zeilen bräuchtest zum 3-Zeiler. Grob gesagt immer dann, wenn Du High-Level oder Netzwerksachen brauchst. Das man wirklich die Rechenleistung braucht ist eher selten, kann aber auch vorkommen.
Paul Hamacher schrieb: > Nun mal die Frage, wie arbeitet man mit diesen 32-Bit µCs überhaupt? Von "diesen 32-Bit µCs" gibt es verdammt viele verschiedene. > Kann ich mir das ähnlich wie bei den 8-Bit µCs vorstellen? Man hat > verschiedenste Peripherie-Gruppen, SRAM, EEPROM, digitale I/O und kann > diese dann in Assembler oder z.B. C mit entsprechenden Befehlen einfach > ansteuern. u.A. genauso in Echtzeit wie bei nem 8-Bitter. Assembler wird man dort eher vermeiden, aber im Prinzip gibt es solche µCs. > Wie verhält sich im Allgemeinen die Taktrate zur Ausführgeschwindigkeit? > Die kleinen AVRs benötigen pro Befehl ja meist nur 1-2 Takte, brauchen > die 32-Bitter vielfach mehr oder sind die da (je nach Architektur > natürlich..) ähnlich schlank aufgebaut, so dass die hohen Taktraten auch > wirklich ein deutliches Leistungsplus bedeuten? Mit internem Speicher können die ähnlich sein. Bei externem Speicher bremst dieser oft aus. > Nun hab ich auch schon gelesen, dass man auf den 32-Bit µC meist ein > kleines OS laufen lässt, ein Linux z.B.. ist das gang und gäbe? Du brauchst halt einen mit externem und wesentlich größeren Speicher - sowohl Flash, als auch RAM. Statt 128k und 32k sind's dann halt z.B. 8MB und 16MB. > ist es ein absolutes muss? Natürlich nicht. > oder ist es nur eine option, die einem ein wenig arbeit bei der > programmierung abnimmt? was nimmt es einem ab? Haupsächlich Treiber. Wenn ich ein Linux habe, kann ich z.B. sämtliche von Linux unterstützten USB-Geräte out of the box nutzen, oder z.B. Dateisysteme, wenn man eine SD-Karte anschließen will. Man hat auch schon Netzwerk-Fähigkeiten und jede Menge Bibliotheken und Standard-Tools, die man recht einfach nutzen kann, ohne das Rad neu erfinden zu müssen. Kehrseite ist der recht große Overhead für das Betriebssystem. > speicherverwaltung etwa? entsprechende routinen zu einer dynamischen > speicherverwaltung erzeugt doch ein compiler auch ohne dass auf dem > zielsystem ein OS läuft? Das macht in der Regel die libc. > multitasking bzw -threading? ist der chip nun in der lage verschiedene > programme gleichzeitig auszuführen und seine rechenleistung sinnvoll > unter ihnen aufzuteilen? Gleichzeitig können das nur Multicore-Prozessoren. Aber quasiparallel, also im schnellen Wechsel kann das im Prinzip jeder Prozessor (auch für AVR gibt es Scheduler, um Multitasking zu machen). Wenn der Prozessor eine MMU hat, bekommst du bei Linux auch automatisch noch den Speicherschutz, so daß sich verschiedene Prozesse nicht gegenseitig in den Speicher spucken können. > dann ist der µC ja garnicht mehr echtzeitfähig? Warum? Ganz im Gegenteil verbessert es je nach Situation die Echtzeitfähigkeit, weil Tasks durch wichtigere unterbrochen werden können, statt daß man warten muß, bis die aktuell abgearbeitete Aufgabe fertig geworden ist. > muss dann nicht auch ein spezieller compiler her, der für dieses OS > spezifischen code erstellt? Ja, genau wie ohne OS ein spezieller Compiler her muß, der für den OS-losen Prozessor spezifischen Code erstellt. > was sind also die vorteile und nachteile eines OS auf dem µC, wenn es > nicht gerade sowieso notwendig ist. Wann wäre es denn für dich "sowieso notwendig"? > mit wie viel SRAM, EEPROM, FLASH, whatever.. kommen die üblichen > 32-Bitter denn daher? Das ist sehr unterschiedlich. Wenige Kilobytes bis mehrere hundert Megabytes (wenn man externen Speicher dazunimmt).
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.