Forum: Mikrocontroller und Digitale Elektronik Leistungsabschätzung AT91SAM9G45 mit Linux


von Richard (Gast)


Lesenswert?

Hallo, ich hätte mal gerne eine Einschätzung von euch erfahrenen 
Embedded Linux Entwicklern.

Mein System soll bestehen aus:

AT91SAM9G45 Prozessor mit 400MHz

128MB DDR2 RAM an EBI1
256MB NAND an EBI2

640x480 TFT am internen LCD-Controller
(ohne Touchscreen, stattdessen:)
ein paar Drehgeber und Tasten an den GPIO

Und natürlich die üblichen Schnittstellen, Ethernet, USB, seriell etc.

Die Applikation ist eine Industriesteuerung, bei der Prozessdaten 
visualisiert werden sollen. Die Daten werden dargestellt auf 
nachgebildeten Analoginstrumenten und Balkendiagrammen.

Es existiert eine Anwendung von meinem Vorgänger, die auf GTK+ im Linux 
Framebuffer basiert. Gerendert wird das Bild mittels cairo. Auf einem PC 
läuft das flüssig und erreicht ausreichende Framerates. Die Anwendung 
ist von einem guten Programmierer recht effizient umgesetzt, jedenfalls 
ist es eine Freude, den Quelltext zu lesen und zu verstehen. Im 
Gegensatz zu dem, was man meistens so zu lesen bekommt.

Meine Frage wäre jetzt, bekommt ich eine solche Applikation (GTK, Cairo) 
auf dem Linux Embedded System in akzeptabler Geschwindigkeit zum Laufen 
oder brauche ich da mehr Rechenpower?

von robertteufel (Gast)


Lesenswert?

Richard schrieb:
> Und natürlich die üblichen Schnittstellen, Ethernet, USB, seriell etc.


>
> Die Applikation ist eine Industriesteuerung, bei der Prozessdaten
> visualisiert werden sollen. Die Daten werden dargestellt auf
> nachgebildeten Analoginstrumenten und Balkendiagrammen.
>
> Es existiert eine Anwendung von meinem Vorgänger, die auf GTK+ im Linux
> Framebuffer basiert. Gerendert wird das Bild mittels cairo. Auf einem PC
> läuft das flüssig und erreicht ausreichende Framerates. Die Anwendung
> ist von einem guten Programmierer recht effizient umgesetzt, jedenfalls
> ist es eine Freude, den Quelltext zu lesen und zu verstehen. Im
> Gegensatz zu dem, was man meistens so zu lesen bekommt.
>
> Meine Frage wäre jetzt, bekommt ich eine solche Applikation (GTK, Cairo)
> auf dem Linux Embedded System in akzeptabler Geschwindigkeit zum Laufen
> oder brauche ich da mehr Rechenpower?

Mal eine voellig unsinnige Verallgemeinerung, das geht alles locker, 
abhaengig von Deiner Definition von "ausreichend", "akzeptabel" und ob 
aller Code auch immer im DDR RAM ist.
"Auf einem PC läuft das flüssig und erreicht ausreichende Framerates."
Ich hab hier ein paar PCs und Laptops rumstehen, zwischen dem 
langsamsten und dem schnellsten sind >> Faktor 10 an 
Verarbeitungsgeschwindigkeit drin. Also mit was fuer einem PC 
vergleichst Du...

Die Definitionen sollten schon etwas eindeutiger sein damit jemand eine 
bessere Antwort als die meinige posten kann.

Aus dem Bauchfaktor heraus wuerde ich sagen dass alles laeuft aber die 
Frame Rate koennte nicht ausreichend oder unakzeptabel sein.

Robert
p.s. ist wirklich nicht boese gemeint.

von Schlonz (Gast)


Lesenswert?

Ok, ich sehe es ein, das war nicht besonders konkret.

Lassen wir den PC-Vergleich und die existierende Software mal beiseite. 
Würdest du ein solches System - also ARM 9 mit DDR2 und 400 MHz - 
eingebauter LCD-Controller ohne HW-Beschleunigung für fähig halten, 
analoge Anzeigen mit einer Framerate von > 20 fps zu rendern?

Oder nochmal anders, hat jemand Erfahrung mit gtk2.0 auf Framebuffer im 
Embedded-Bereich? Was kann man da für Leistungen erwarten?

von Zwie B. (zwieblum)


Lesenswert?

Doom läuft auf noch viel schwachbrüstigerer Hawdware

von Frank B. (foobar)


Lesenswert?

Ich würde empfehlen, das AT91SAM9G45-EKES zu kaufen und es 
auszuprobieren. Linux ist schon bei, sodaß du wahrscheinlich recht 
leicht eine einfache GTK-Anwendung zum laufen bringen kannst.

Aus meiner Erfahrung: Ich habe mal mit dem AT91SAM9G20 eine Anwendung 
programmiert, allerdings mit externem Grafikbeschleuniger und Qt. Wenn 
man mit Qt zeichnet, ins SDRAM, dann bekommt man keinen vollständigen 
Bildschirmupdate bei 640x480 mit 60 Hz hin. Liegt je nach Komplexität 
eher bei 5 Hz oder so für einen vollen Bildschirmupdate mit ein paar 
dutzend Grafikelementen. Bei Balkenanzeigen kannst du aber einiges 
tricksen, z.B. erstmal alles drumherum einmal zeichnen und dann nur 
inkrementell aktualisieren, mit mehreren Framebuffern und 
Offscreen-Images. Das geht dann locker mit 60 Hz. Müsste mit Cairo auch 
zu schaffen sein, allerdings richte dich schonmal darauf ein, ein wenig 
Low-Level Code zu schreiben, der kein Cairo verwendet und direkt Teile 
von Offscreen-Images in den Framebuffer kopiert. Kann aber auch sein, 
daß DDR RAM einiges an Geschwindigkeit bringt und du nur Cairo brauchst. 
Für ein flüssiges Update brauchst du aber noch Double-Buffering. War bei 
meinem Projekt nicht ganz so einfach, das mit Qt unter einen Hut zu 
bringen, aber vielleicht geht das mit GTK einfacher.

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.