Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Tutoriels d'utilisation de gint (commentaires)
Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Tutoriels d'utilisation de gint (commentaires)

Posté le 15/07/2017 13:54

Les tutoriels d'utilisation de gint sont sur ce topic.

Pour garder les tutoriels ensemble dans les posts du topic d'origine (et surtout pas créer un topic par tuto...), je vous propose de poster vos questions/commentaires/etc ici. Merci !


Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 20 ··· 24, 25, 26 Suivante
Palmenros Hors ligne Membre Points: 13 Défis: 0 Message

Citer : Posté le 14/06/2019 17:01 | #


Hello, Lephe!

I installed newlib and I am trying to build a program using newlib and gint, however I keep getting some errors. I am using the provided link script from gint and the following script for linking:


sh3eb-elf-gcc main.o -o main.elf -lTeX-fx -lgint-fx -lm  -lgcc -ffreestanding -m3 -mb -Tfx9860g



/home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/../../../../sh3eb-elf/bin/ld: /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crt1.o: in function `stack_k':
(.text+0x50): undefined reference to `_stack'
/home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/../../../../sh3eb-elf/bin/ld: /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crt1.o: in function `edata_k':
(.text+0x54): undefined reference to `_edata'
/home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/../../../../sh3eb-elf/bin/ld: /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crt1.o: in function `end_k':
(.text+0x58): undefined reference to `_end'
`.eh_frame' referenced in section `.text' of /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crtbegin.o: defined in discarded section `.eh_frame' of /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crtbegin.o
`.eh_frame' referenced in section `.text' of /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crtbegin.o: defined in discarded section `.eh_frame' of /home/pedro/opt/sh3eb-elf-2.32-9.1.0/lib/gcc/sh3eb-elf/9.1.0/crtbegin.o
collect2: error: ld returned 1 exit status


Is there another linking script which provides _stack, _edata and _end symbols?
Thank you!
Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 14/06/2019 17:08 | #


I think you should at least add an explicit -lc before -lgcc. You may even, for the sake of safety, still pass -nostdlib (maybe -ffreestanding, not sure if it has an effect at link time) and just use that additional -lc to resolve undefined symbols.

This is because the crt1.o and crtbegin.o files are suspicious here, they are normally part of the runtime and their role is fulfilled by gint's initialization functions. You may have a look at Calling Global Constructors (wiki.osdev.org) if you wish to know more.

I should also mention that I tried to build the TeX example add-in with newlib and it crashed at runtime. Linking with hand-written standard routines instead worked. I'm not sure where the problem comes from, unfortunately Memallox is not around to tell.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 02/07/2019 15:54 | #


J'ai essayé de compilé le 'Hello world' avec la première étape : "Hello world ! Gint is talking you." Le compilateur et pas passé…

J'ai deux erreurs : la première est avec fxsdk --cflags, j'ai ça : error: unknown command '--cflags'
et la… deuxième est avec mon entête : #include <display.h> j'ai ça : src/main.c:1:10: fatal error: display.h: No such file or directory

J'ai compilé dans le dossier du projet. Dans ce dossier, j'ai mes 4 sous-dossiers :
assets, build, include, src avec dans include display.h et keyboard.h… :p
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 02/07/2019 15:59 | #


Tu me tombes dessus à chaque fois car tutoriels trop vieux... je hais cet état de fait !

Prenons les choses dans l'ordre ; je vais nettoyer ça une bonne fois pour toutes. Laisse-moi jusqu'à demain matin pour nettoyer toutes ces vieilles choses.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 02/07/2019 16:00 | #


D'accord !

C'est pas de ma faute, j'avance petit à petit. Vois le bon côté des choses : tu vas être à jour et 100% compatible Mac !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 02/07/2019 16:02 | #


Shadow15510 a écrit :
Vois le bon côté des choses : tu vas être à jour et 100% compatible Mac !

Yay ! o/

Ajouté le 05/07/2019 à 02:39 :
J'ai enfin fini de mettre à jour le premier épisode du tutoriel d'utilisation. Ouf ! \o/

Par ici 01 : "Hello, World!", encore et toujours !

Je vais m'occuper de préparer le deuxième pendant que je finis de porter gint... ça va me prendre de l'énergie mais je vais m'en sortir !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 05/07/2019 13:36 | #


Ok, super ! J'ai changé les sources d'Odyssée en conséquence.

Néanmoins, j'ai encore un problème… J'ai une erreur lors de la compilation… Dans le dossier 'src' j'ai modifié le main avec ces deux lignes :
#include "display.h"
#include "keyboard.h"


(j'ai effacé #include<gint/display.h> et #include <gint/keyboard.h>)

Avant que tu ne lèves les yeux au ciel d'un air exaspéré un poussant un long soupir face à ma bêtise, je précise in extremis que j'ai placer les deux headers dans le même dossier (le dossier 'src') que le main.c lorsque j'ai compilé le projet j'était dans le dossier du projet : 'monster-island'… Bon ok d'accord…

Merci encore !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 05/07/2019 13:41 | #


ça c'est fait.

Bon, pour commencer, si tu nous donnais l'erreur de compilation, ça nous aiderait.

Et ensuite, si les headers sont dans <gint/display.h> et non pas dans le dossier src/, c'est pour ne pas polluer ton travail avec des headers que tous les gens qui voudront compiler ton projet auront déjà installé.
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 05/07/2019 13:43 | #


J'ai refais un nouveau projet (sans rien toucher donc ) et j'ai cette erreur :

pc37:MoIs antoine$ fxsdk build-fx

\e[34;1m::\e[39;1m Making into build-fx\e[0m

sh3eb-elf-gcc -c src/main.c -o build-fx/src/main.o -mb -ffreestanding -nostdlib -Wall -Wextra -fstrict-volatile-bitfields -std=c11 -Os -m3 -DFX9860G -MMD -MT build-fx/src/main.o -MF build-fx/src/main.d -MP
src/main.c: In function 'main':
src/main.c:6:9: error: 'color_white' undeclared (first use in this function); did you mean 'color_t'?
  dclear(color_white);
         ^~~~~~~~~~~
         color_t
src/main.c:6:9: note: each undeclared identifier is reported only once for each function it appears in
src/main.c:7:38: error: 'color_black' undeclared (first use in this function); did you mean 'color_t'?
  dtext(4, 4, "Sample fxSDK add-in.", color_black, color_none);
                                      ^~~~~~~~~~~
                                      color_t
src/main.c:7:51: error: 'color_none' undeclared (first use in this function); did you mean 'color_t'?
  dtext(4, 4, "Sample fxSDK add-in.", color_black, color_none);
                                                   ^~~~~~~~~~
                                                   color_t
make: *** [build-fx/src/main.o] Error 1

"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 05/07/2019 13:46 | #


Hmm... Remplace color_black par C_BLACK, color_white par C_WHITE et color_none par C_NONE ?
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 05/07/2019 13:49 | #


Hey, ça marche !! Merci beaucoup !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 05/07/2019 14:23 | #


Woupsie, ça c'est parce que j'ai raccourci les noms de couleur hier mais j'ai oublié de pousser sur le fxSDK. Les anciens noms étaient insupportablement longs à utiliser. Désolé

(Et merci Kouhai pour le signalement sur le Gitlab.)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 05/07/2019 14:23 | #


J'ai modifié le dossier du projet par défaut de mon côté…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 05/07/2019 14:24 | #


Les modifications seront perdues dès que tu réinstalleras le fxSDK. De façon générale faire ça est... assez tendu parce que la correction risque de disparaître.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 12/07/2019 08:32 | #


J'ai essayé d'affiché une image en nuance de gris, mais ça ne marche pas (écran blanc sur la calto) je n'ai pas d'errur de compilation et le code est le même que celui de ce tuto (sauf que je ne fais que afficher une image) tout y est… Il y une manip' spéciale à faire pour les nuances ?
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 12/07/2019 13:55 | #


Ouais il y a une manip spéciale comme me le faire implémenter dans cette version. x_x

Aaaah tout va trop vite. Bon.

Pour ton information il faudra remplacer les fonctions de dessin d* par g*. Donc gtext(), gubsimage(), tout ça tout ça.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Leno Hors ligne Membre Points: 282 Défis: 0 Message

Citer : Posté le 17/07/2019 19:34 | #


La fonction dimage n'a pas l'air d'exister dans "display-cg.h" ce qui cause des erreurs de compilation avec "build fxsdk-cd"
Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 17/07/2019 19:44 | #


Comme Shadow l'a vu il y a quelques jours (deux messages au-dessus ! ), la fonction dimage() n'existe pas encore parce que c'est un gros morceau et la seule chose importante que je n'ai pas encore fini sur Graph 90.

Pour l'instant, tu peux modifier la VRAM directement si tu veux :

#define GINT_NEED_VRAM
#include <gint/display.h>

/* Maintenant tu as [uint16_t *vram], chaque élément du tableau est un pixel de l'écran */
vram[0] = 0x0000; /* noir */
vram[1] = 0xffff; /* blanc */
/* etc */

Je fais de mon mieux, je suis à fond ces jours-ci !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 17/07/2019 19:53 | #


Yeah ! Bon courage !

J'aimerai comprendre la technique avec la VRAM, comment je peux afficher une image *.png sur la VRAM ? Parce que dans ton code, met un pixel en blanc et un autre en noir, non ? J'ai pas compris…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 17/07/2019 20:04 | #


Oui tu as bien suivi, c'est exactement ce que mon exemple fait !

Pour afficher une image, tu dois te démerder pour accéder à la couleur des pixels. Et avec un fichier PNG, c'est compliqué. En général on utilise plutôt des données brutes comme dans les bitmaps où tous les pixels sont donnés les uns à la suite des autres.

Mais là encore, c'est pas super efficace. L'idée philosophique derrière fxconv c'est que souvent le format de travail (PNG) n'est pas celui que tu veux pour dessiner (tableau de pixels). fxconv sert donc à faire une conversion à l'avance ! Le format de gint qui est produit par fxconv pour Graph monochrome est fait pour que non seulement la couleur soit accessible facilement, mais aussi pour que le dessin soit très rapide. C'est plus subtil que ça en a l'air !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Leno Hors ligne Membre Points: 282 Défis: 0 Message

Citer : Posté le 17/07/2019 20:15 | #


C'est beau la technnologie
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ··· 20 ··· 24, 25, 26 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 66 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd