Forum: Mikrocontroller und Digitale Elektronik Grafik & Text Lib für Arm embedded Linux


von Johannes (Gast)


Lesenswert?

Hallo
Ich versuche mir gerade Ein wenig c beizubringen. Als Grundlage habe ich 
ein Nest Thermostat. Ich habe Root zugriff und den Passenden Compiler. 
Ich kann über schreiben in den Framebuffer Pixel und "Bilder" 
darstellen. Allerdings bislang in Mühevoller Handarbeit. Nun bin ich 
eher auf der Suche nach einer Grafik Lib welche zumindest Linien Kreise 
und vielleicht ja sogar Buchstaben in den Framebuffer schieben kann.
Emfohlen wurde mir https://github.com/boppreh/framebuffer
Das bekomme ich allerdings nicht zum Laufen.
Der Fehler ist
Fehler: Anfangsdeklarationen in »for«-Schleifen sind nur im C99-Modus 
erlaubt

Damit kann ich leider nix anfangen und es scheint das der Code nicht zu 
meinem Arm Compiler passt. Zum Fehler suchen fehlt mir leider noch 
jegliche Erfahrung im Umgang mit C

Nun wollte ich mal Fragen ob eventuell jemand eine andere Lösung kennt 
Grafik auf ein Framebuffer zu bekommen.
Toolchain ist arm-linux-gnueabi-gcc

von hp-freund (Gast)


Lesenswert?

Johannes schrieb:
> Anfangsdeklarationen in »for«-Schleifen sind nur im C99-Modus
> erlaubt

Setz einfach das "int x" vor den "for (...)" Aufruf, nicht in die 
Klammer.

von Philipp K. (philipp_k59)


Lesenswert?

Ich habe das mal anders gelöst, sieht auch schicker aus als alles selbst 
zu malen.

Lediglich ein Background Bild und arrangierte Grafiken plus einem 
Zeichensatz   in Bildform.. die ganzen Grafiken in ein Imagefile gepackt 
und beim start in den RAM geladen, die einzelnen Teilclippings als 
"Aktionen" in den FB kopiert.

Edit: Quasi wie eine Homepage in Photoshop erstellt,alle einzelteile 
herausgescliced und in eine Datei Byte an Byte in RGB565 geschrieben.

: Bearbeitet durch User
von Nop (Gast)


Lesenswert?

Johannes schrieb:

> Toolchain ist arm-linux-gnueabi-gcc

Gib ihm mal die folgende Option mit:
-std=c99

Also beim Compiler-Aufruf. Kann, wenn es ein Makefile gibt, auch dort 
sein, wahrscheinlich unter CFLAGS.

von Bernd K. (prof7bit)


Lesenswert?

Johannes schrieb:
> Ich versuche mir gerade Ein wenig c beizubringen.

Das ist begrüßenswert und Erfolg möge Dir dabei zuteil werden.

> Als Grundlage habe ich
> ein Nest Thermostat. Ich habe Root zugriff und den Passenden Compiler.

Ich bin mir nicht 100% sicher ob es wirklich sinnvoll ist gleich am 
Anfang schon zusäztliche Erschwernisse einzuschalten wie 
Cross-Compiling, Remote-Debugging, exotische Hardware, Treiber und APIs, 
etc. Du solltest vielleicht zunächst erstmal Übungen suchen und 
durcharbeiten die nativ am lokalen Arbeitsplatz laufen und Dir erstmal 
die Verwendung (und den Zweck und deren Zusammenspiel) der benötigten 
Tools (Compiler, Linker, Makefile) vertraut machen. Das saugt man nicht 
an einem einzigen Tag in sich auf, aber das sind wichtige Grundlagen die 
Du nicht leichtfertig überspringen darfst und die bombenfest sitzen 
müssen wenn Du nicht in eine Welt von Schmerz und Frust eintauchen 
willst sobald es wirklich ans Eingemachte geht.

von Johannes (Gast)


Lesenswert?

Ein Makefile habe ich bislang nicht im Einsatz

hp-freund schrieb:
> Setz einfach das "int x" vor den "for (...)" Aufruf, nicht in die
> Klammer.

Das war der entscheidende Hinweis :) Besten dank dafür. Jetzt klappt das 
auch.
Alerdings ist die Lib garnicht mal soo gut. Wenn also jemand eine Andere 
Bessere kennt bin ich Dankbar.
Zb. Linien nach Bresenham von X Y Nach X Y oder Kreise, Buchstaben ...

Immerhin verstehe ich jetzt ungefähr wie man Include daten einbaut. 
Dafür war das jedenfalls gut.

von hp-freund (Gast)


Lesenswert?

Gibt es zum eingebauten Graphik Controller keine Lib?
Solange Du einzelne Pixel setzen kannst, ist auch die Verwendung von 
Libs von anderen Controllern möglich. Z.B.:

https://forum.pjrc.com/attachment.php?attachmentid=9

von Arc N. (arc)


Lesenswert?

Die in den Nest-Teilen verbaute Hardware ist für die Aufgabe eigentlich 
völliger Overkill...
https://de.ifixit.com/Teardown/Nest+Learning+Thermostat+2nd+Generation+Teardown/13818

2. Generation
Basis: STM32L151VB und SHT20
Anzeigeeinheit: AM3703CUS (1 GHz Cortex A8), 64 MiB RAM, 256 MiB Flash

Schaut man mal auf https://nest.com/legal/compliance/ findet man ein 
normales Linux...

von Johannes (Gast)


Lesenswert?

Arc N. schrieb:
> Die in den Nest-Teilen verbaute Hardware ist für die Aufgabe eigentlich
> völliger Overkill...

Das sehe ich absolut so ja :) Ein Thermometer könnte man auch mit einem 
kleinen Avr bauen. Zumal das Nest gerät wohl sogar Seriell mit einem 
Stm32 Komuniziert welcher im Sockel sitzt und nur den Temperaturfühler 
abruft und über Funk Zigbee mit einem weiterem Teil welches dann die 
Heizung steuert.

Für mich ist das halt interessant zum Basteln weil ich die Funk Basis 
nicht habe und ohne diese keine Funktion möglich ist. So als eine art 
Rpi

Arc N. schrieb:
> Schaut man mal auf https://nest.com/legal/compliance/ findet man ein
> normales Linux...

Diese Sammlung von Dateien hab ich auch schon gefunden. Nur was kann ich 
damit anfangen ?

hp-freund schrieb:
> Gibt es zum eingebauten Graphik Controller keine Lib?

Das weiß ich ehrlich gesagt nicht mal da werde ich mal suchen. Ist das 
so üblich das es für die Controller gleich Code dazu gibt?

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.