Posté le 15/07/2017 13:54
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 173 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
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!
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.
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
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.
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 !
Citer : Posté le 02/07/2019 16:02 | #
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 !
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 !
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é.
Citer : Posté le 05/07/2019 13:43 | #
J'ai refais un nouveau projet (sans rien toucher donc ) et j'ai cette erreur :
\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
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 ?
Citer : Posté le 05/07/2019 13:49 | #
Hey, ça marche !! Merci beaucoup !
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.)
Citer : Posté le 05/07/2019 14:23 | #
J'ai modifié le dossier du projet par défaut de mon côté…
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.
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 ?
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.
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"
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 :
#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 !
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…
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 !
Citer : Posté le 17/07/2019 20:15 | #
C'est beau la technnologie