Bibliothèque de graphiques pour les systèmes embarqués sans Linux?
Il semble que n'importe quel type de bibliothèque graphique comme DirectFB ou MiniGui exige une sorte de sous-jacent système d'exploitation comme Linux ou uClinux.
Je suis contestées avec l'écriture d'un logiciel pour un micro-contrôleur avec seulement 512 ko de flash, d'un écran LCD et un écran tactile pour afficher et gérer des photos et des GUI pièces.
Connaissez-vous une bibliothèque qui n'a besoin que d'un pointeur vers la mémoire vidéo qui peuvent également traiter les lignes, les images et les polices?
Vous n'avez pas de déterminer si elle doit être libre (en $$$) ou pas. Si le libre n'est pas une obligation, j'ai une liste longue comme mon bras, pour vous envoyer des projets précédents. En passant, est-il un PIC32 ou le BRAS de communications unifiées?
Vous avez raison, mais il semble que il n'y a pas de logiciel libre (free as in free speech) pour cette tâche. Un beau projet open source pour commencer. 🙂 Laissez-nous savoir si vous avez trouvé tout projet, à côté c'est gratuit ou pas. L'uC est un BRAS.
Est-ce que votre plate-forme de support de C++?
Ouais, il prend également en charge C++. Je travail avec la collection de compilateurs gnu sur une machine linux.
Quelle quantité de RAM que vous avez?
Vous avez raison, mais il semble que il n'y a pas de logiciel libre (free as in free speech) pour cette tâche. Un beau projet open source pour commencer. 🙂 Laissez-nous savoir si vous avez trouvé tout projet, à côté c'est gratuit ou pas. L'uC est un BRAS.
Est-ce que votre plate-forme de support de C++?
Ouais, il prend également en charge C++. Je travail avec la collection de compilateurs gnu sur une machine linux.
Quelle quantité de RAM que vous avez?
OriginalL'auteur about | 2008-12-14
Vous devez vous connecter pour publier un commentaire.
Par le temps que vous incorporez un tiers solution vous pouvez avoir écrit soi-même.
Pour la plupart, si pas tous les environnements que l'écran est juste un tableau à deux dimensions de pixels. Parfois, palettes, parfois pas, mais ce n'est pas grave, vous pouvez écrire la vôtre autant que vous le souhaitez.
Il ya des tonnes de code libre pour dessiner des lignes et des arcs, etc.
Le tueur peut-être des polices, mais je pense que vous trouverez que un tiers app mâcher jusqu'à l'ensemble de votre mémoire simplement en faisant des polices, vous êtes les ressources limitées de sorte que vous voulez de pré-calculer les polices de caractères et il suffit de copier les bits.
Faire un tableau à deux dimensions des données, faire tout votre travail sur votre animateur préféré au premier abord, c'est facile à enregistrer .les fichiers bmp si vous voulez voir ce que vous dessinez, et trivial à son tour une série de .les fichiers bmp dans une vidéo si vous voulez voir un peu d'action.
Si vous utilisez générique C, et pas de la libc appels (écrire votre propre memcpy, memset, etc) ce code sera exécuté n'importe où, sur l'ordinateur hôte pour le développement et sur la cible.
Polices vont être vos killer, vous devez pré-calculer, mais réussi à serrer que les infos en bas dans aussi petit que vous le pouvez, et lors de l'exécution d'extraire les données et de copier les bits de chaque lettre dans le virtuel à l'écran aussi vite que vous le pouvez.
Ou tout simplement acheter l'un des nombreux lcd solutions qui font tout pour vous, et que vous simplement envoyer des commandes comme dessiner "Hello World!" à certains (x,y) à l'aide de bleu pour le premier plan et le blanc comme arrière-plan.
Fondamentalement, je pense que les non-solutions de système d'exploitation sont toujours en cours pour utiliser un trop grand nombre de bibliothèques et d'être trop grand pour votre application spécifique. 2d des tableaux d'octets ou de pixels sont triviales pour gérer vous-même. Même si vous écrivez une application pour une plateforme de bureau, je voudrais faire de cette façon et à la dernière minute copier entièrement renedered écran de mise à jour de certains os dépendant de la bibliothèque (ce qui permet pour un maximum de portabilité d'un OS ou pas à un autre).
OriginalL'auteur old_timer
Nous avons utilisé le "PEG", la version C++ de Swellsoftware depuis de nombreuses années. C'est un logiciel commercial, pas libre, mais le pilote de l'écran peut utiliser un pointeur vers la mémoire graphique et ils fournissent de nombreux exemples de pilotes pour les différents types de matériel graphique. Nous avons écrit notre propre pilote(s) de notre propre matériel, à l'aide de l'exemple des chauffeurs de référence. Nous avons toujours eu une sorte de RTOS, mais je crois PEG+ peut également fonctionner sans un système d'exploitation.
Découvrez-le ici: http://www.swellsoftware.com/
bonne chance,
OriginalL'auteur Matthew Eshleman
Si vos besoins en matière d'interactivité et de l'interface graphique widgets sont très modestes (ou que vous êtes OK avec la conception de vos propres widgets), ont un oeil à LibGD. Dessiner l'image que vous souhaitez voir apparaître sur l'écran en utilisant les fonctions de la bibliothèque, et puis les écrire dans le tampon de trame à l'aide de gdImagePngToSink().
OriginalL'auteur Diomidis Spinellis
La chose la plus importante que vous devriez être préoccupés est le contrôleur de l'écran LCD et l'écran tactile. Il ya une abondance de bibliothèques C (pas libre) pour cette tâche. Un rapide sur google m'a obtenu ces résultats: Simplifier Les Technologies De L' et Ramtex.
Si vous voulez trouver quelque chose d'ouvert à la source, puis démarrez à partir de votre contrôleur du type et de la recherche des périphériques embarqués forums (même si ça n'a pas de BRAS, vous pouvez facilement le port de code C). Quelques suggestions:
Aussi, certains kit fabrique offre un kit de développement logiciel (à la fois avec et sans Linux) avec leurs conseils d'administration. L'achat d'un conseil d'habitude vous donne la licence d'utilisation du code. Recherche pour les conseils de développement avec le même contrôleur de l'écran LCD.
OriginalL'auteur kgiannakakis
Pas gratuit, mais bon sur le peu de ressources systèmes: http://www.tat.se et de leurs produits Kastor et de Cascades. Il exige seulement un pointeur vers la mémoire vidéo, malloc et quelque chose qui ressemble à un système de fichiers. Les deux dernières conditions ne sont pas absolument nécessaires. Aucun système d'exploitation n'est nécessaire.
Mais TAT ont été mangés par une grue, désolé par RIM, et il semble qu'ils ne sont plus à vendre leurs produits Kastor et de Cascades.
OriginalL'auteur Pär Bohrarper
Pour le plus petit volume possible, vous devriez vraiment envisager RamTEX. Je l'ai utilisé sur deux projets avec 8 bits de PHOTOS. La ROM de l'espace était d'environ 35K dans mes applications avec ~1K RAM (la quantité dépend si vous avez besoin de RAM tampon pour l'affichage). ROM de l'espace dépend des caractéristiques graphiques que vous souhaitez ou avez besoin.
Ils fournissent une source et le prix est assez bon, moins de 1000 $(à noter que les prix indiqués sur leur site web doivent être converties en dollars, ou quel que soit votre devise). Il n'y a pas de redevances ou par des restrictions relatives aux produits.
Ils fournissent un certain nombre de différentes taille et le style des polices et de dessin de base des appels (ligne de pixels, boîte, etc.). Il n'a pas défini des "objets" tels que des boutons ou des menus, mais j'ai été en mesure de mettre en œuvre un menu pop-up sans trop de difficultés. Il prend en charge les "fenêtres" qui peut être utilisé pour définir les zones de texte, les menus, etc, chacun avec leurs propres attributs.
Il est également livré avec un simulateur qui fonctionne sur un PC de sorte que vous pouvez développer à afficher le code sur votre bureau avant de passer à un système embarqué.
OriginalL'auteur Doug Lonngren
Vous avez probablement besoin de compresser des polices à l'aide de RLE (Run Length Encoding). Voir la .pcx format de fichier pour les exemples, mais il est probablement préférable de concevoir un RLE. Vous n'avez pas à spécifier le nombre de bits de profondeur de l'écran LCD, mais les polices besoin d'un bit par pixel si l'antialiasing n'est pas nécessaire, ou un maximum de trois BPP avec antialiasing. Chaque personnage doit avoir son propre largeur, car monospaced texte n'est pas agréable. Vous devriez vous rendre directement à partir de la RLE comprimé de police à l'écran, à l'aide d'une optimisation de la routine.
SDL est une très portable graphiques bibliothèque. Il est utilisé sur des systèmes Linux, mais je pense qu'il peut être utilisé sans un OS. La bonne chose à propos de la SDL, c'est que vous pouvez utiliser Windows /Linux pour développer et tester votre INTERFACE utilisateur, et plus tard de la cible de votre système embarqué. Pas de changements au code de l'application nécessaire!
Vous pouvez également utiliser l'Anti-Grain de la Géométrie de la bibliothèque (http://www.antigrain.com/about/index.html) sur le dessus de la SDL. Avec un 16 ou 24 bits LCD elle produit de superbes graphismes. Il pourrait être juste un peu trop grandes pour votre environnement, parce que mon exécutable sur un ARM/Linux du système d'un mégaoctet. Il contenait SDL, APA et libfreetype2 pour le rendu des polices. APA est aussi un peu lent, mais produit des résultats magnifiques.
OriginalL'auteur K Ronning
(vieille question, mais je voulais poster mes conclusions sur le sujet)
Pour des graphiques de haute qualité, Anti-Grain de la Géométrie est un bon choix. Il compile à environ 50 ko et peut être personnalisé pour écrire en toutes sortes de tampons d'images de rendu et de périphériques:
http://www.antigrain.com/
Pour l'interface utilisateur, Gwen semble un bon choix. Il est facilement transportable et peut être personnalisé pour le rendu de l'image à la peau des contrôles ou juste rectangle/cercle/formulaires en ligne:
https://github.com/garrynewman/GWEN
Alors si vous êtes aussi à la sélection d'un RTOS, NuttX a son propre sous-système graphique et widget toolkit:
http://nuttx.sourceforge.net/
OriginalL'auteur jpa
Ma conjecture est que quelque chose comme FreeDOS, combiné avec DJGPP comme une chaîne de traitement, et Allegro comme une bibliothèque graphique pourrait s'insérer dans 512 ko de flash et de faire toujours un emploi raisonnable (je suis en supposant que vous avez un x86 qui a plusieurs Mo de ram ici)
Mais ces choses sont très x86 spécifiques (Allegro n'est pas bien).
Il est difficile d'obtenir un noyau Linux et une quantité appréciable de l'espace utilisateur du logiciel à l'intérieur de 512k (mais possible d'obtenir quelque CHOSE en)
OriginalL'auteur MarkR
Vous devriez donner easyGUI un essai.
easyGUI est une interface graphique d'un logiciel graphique/bibliothèque spécialement conçu pour les travaux sur les petites(er) des Systèmes Embarqués.
Pas de système d'exploitation nécessaire. Une base cyclique exécutif est assez. 512 ko de Flash devrait être plus que OK. La bibliothèque easyGUI offre est très souple pour aider à minimiser la quantité de Flash dont vous avez besoin.
Prend en charge les polices, les graphiques, des images, des écrans tactiles et un tas de contrôleurs vidéo de la boîte.
Plus il est vraiment pas cher (pas de licence à payer, juste d'un montant forfaitaire par place) et est livré avec un logiciel pour la conception d'écrans et de générer du code. Le programme PC prend un certain temps pour s'habituer à, mais à la fin c'est très gentil d'essayer certaines choses sur le PC et ensuite il suffit de générer et de regarder ce qu'il fonctionne sur votre cible.
Ils ont une démo app sur leur site web. Il est intéressant de vérifier it out.
OriginalL'auteur cschol
512ko est petit. Bonne chance!
Vous voudrez peut-être essayer un dsl combiné avec mplayer. Ce dernier n'a pas besoin d'une interface graphique pour afficher un film. Je suppose que cela pourrait également afficher des images.
Néanmoins, je crains que ce sera trop pour votre flash. Peut-être la source de ces liens pour vous aider.
OriginalL'auteur Burkhard