Forum: Mikrocontroller und Digitale Elektronik X11 Embedded Server auf 32UC3A


von Jan (Gast)


Lesenswert?

Hallo!

Ich möchte gerne ein AVR32-basiertes System (am Anfang habe ich ein 
EVK1100 mit 32UC3A) zur Darstellung meiner Desktop-Oberfläche benutzen. 
Dabei soll das eigentliche Programm auf einem per Ethernet verbundenen 
Client laufen.

Spontan fallen mir zwei mehr oder minder "standardkonforme" (im Sinne 
von kompatibel mit existierenden Clients) Lösungen ein:

- uClinux und dann versuchen X11 Server läuffähig zu bekommen
- Das X11 Protokoll direkt zu implementieren

Letzteres ist sicher schneller und ressourcensparender, aber 
wahrscheinlich auch aufwendiger?

Hat jemand Tipps oder ist jemanden bekannt das sowas schon mal gemacht 
wurde?

Danke!

Gruß
Jan

von Marius W. (mw1987)


Lesenswert?

Viel Spaß, wenn du die µCLinux-Variante nimmst.

Auf den UC3*-µCs läuft Linux nämlich nicht. Und es schaut im Moment 
nicht danach aus, dass sich das in nächster Zukunft ändert.

Deshalb empfehle ich dir, dass X11 Protokoll direkt zu implementieren. 
Ist wahrscheinlich insgesamt einfacher. Denn selbst wenn du Linux ans 
Laufen bringst, ist es noch nicht sicher, dass du dann auch den XServer 
aufsetzen kannst. Von daher lieber den direkteren Weg nehmen.

MfG
Marius

von aha (Gast)


Lesenswert?

Der poster moechte einen X11 kompatiblen Grafikdisplay bauen ? Wow. Das 
beinhaltet zuerst mal die Ansteuerung eines Displays auf pixelebene. Das 
VGA(XGA..) Signal selbst erzeugen ? Mit Framebuffer usw. Dann kommen 
dann noch ein Paar library routinen oben drauf. Oder einen Grafik chip 
ansteuern ? Dann muss man die Informationen zusammentragen. X11 
bedeutet, dass es ein Vektordisplay ist, der auf dem display selbst 
rastert. Und Kommunikation...

Viel glueck.

von Jan (Gast)


Lesenswert?

Danke für den hilfreichen (Marius) und den weniger hilfreichen Post.

Generell gehe ich davon aus dass die Ansteuerung z.B. eines "PSP 
Displays" wie hier schon an der ein oder anderen Stelle gezeigt aus dem 
Framebuffer mit akzeptablem Aufwand möglich ist. Da waren ja einige 
schon sehr erfolgreich.

Mich würde interessieren ob jemand evtl. Erfahrung damit hat, einen auf 
dem Linux-Kernel aufsetzenden Code in ein Standalone-uC Programm zu 
wandeln? Dann müsste man nicht X11 neu implementieren sondern "nur" die 
entsprechenden Systemaufrufe emulieren/bereitstellen. Alles mal aufs 
Blaue hin gefragt - ich versuche lediglich den besten Startpunkt zu 
finden.

Gruß
Jan

von Marius W. (mw1987)


Lesenswert?

Also das mit dem PSP-Display kenne ich bisher nur vom AT32AP7000. Das 
ist der AVR32-Controller, auf dem auch Linux lauffähig ist. Dieser hat 
einen integrierten LCD-Controller, der die Ansteuerung des LCDs 
übernimmt.

Soweit ich das jetzt im Datenblatt des AT32UC3A gelesen habe, hat dieser 
keinen LCD-Controller. Das heißt, du müsstest die Ansteuerung komplett 
in Software machen.

Die Anpassung des Linux-Kernels auf den UC3A halte ich persönlich auch 
für ein sehr umfangreiches Projekt, was auch nicht ganz trivial ist 
(sonst hätte es bestimmt schon jemand gemacht).
Wenn du dich dafür interessierst, dann solltest du dir die Sourcen des 
Linux-Kernels mal ansehen. Besonders die Dateien für den AVR32 (AP7000) 
im arch-Verzeichnis.

MfG
Marius

von Εrnst B. (ernst)


Lesenswert?

Du solltest vielleicht auch in Erwägung ziehen, statt dem X11-Protokoll 
etwas einfacheres zu implementieren, VNC bietet sich da an.

Damit sparst du dir auf Display-Seite z.B. das ganze Font-Handling 
(truetype etc), und das Protokoll ist recht kompakt und sollte leicht zu 
implementieren sein.
Und vorhandene X11-Applikationen laufen trotzdem, dann halt über einen 
VNC-X11 Server.

von Simon K. (simon) Benutzerseite


Lesenswert?

Soweit ich weiß, kann man den Linux Kernel nicht auf die UC3's 
portieren, die diese unter anderem keine MPU (Memory Protection Unit) 
haben.

von Marius W. (mw1987)


Lesenswert?

Man kann schon (siehe µCLinux), es hat nur bisher niemand gemacht.

Der Linux-Kernel hat nen Config-Flag, welches die MMU-Benutzung aus- 
oder einschaltet.

Allerdings müsste der komplette Hardwarespezifische Code überarbeitet 
und angepasst werden. Das zu tun ist viel Arbeit.

MfG
Marius

von Michael B. (bubi)


Lesenswert?

In der Mailinglist war erst am 20. Dez die Frage auch aufgetaucht, 
leider finde ich die Antwort nichtmehr, deshalb nur soviel:
Ein Uniteam ist dran, aktueller Stand ist, das es einen Hardwarebug im 
Controller (glaub im Speicherinterface fürs Ram) gibt, was im Moment die 
Entwicklung bremst. Trotz alledem soll nach den Weinachtferien ein 
erster bootfähiger Kernel verfügbar sein. Was allerdings nicht heißt das 
er verwendbar ist ;)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

VNC ist einfacher, schneller, ressourcenschonender, vielseitiger und 
zuverlässiger als X11, egal mit oder ohne Linux.

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.