Posté le 19/12/2011 15:53
Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 49 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 16/06/2012 23:51 | #
Salut, est-ce que ce topic marche encore ? Parceque j'aimerais développer pour ma casio sur ubuntu mais j'ai obtenu des erreurs lors de la construction du cross compiler gcc...
Citer : Posté le 17/06/2012 18:10 | #
Un nouveau dévellopeur d'addins se joindrai-t-il à nous
Je ne suis pas sur que le compilateur marche, mais il me semble que le transfert sur Linux suscite beaucoup d'intérêt... Je laisse les personnes plus compétentes que moi te répondre
Citer : Posté le 17/06/2012 21:13 | #
Ouais j'ai acheté une casio 75 il n'y a pas longtemps
En fait j'ai réussi à créer le cross compiler mais j'ai un problème lors de la compilation de l'exemple fourni :
/usr/local/cross/lib/gcc/sh3eb-elf/4.6.3/../../../../sh3eb-elf/bin/ld: warning: section `.bss' type changed to PROGBITS
/tmp/cc2EO0aE.o: In function `main':
(.pretext+0xe0): undefined reference to `_main'
/tmp/ccjeTQ6d.o: In function `__main':
main.c:(.text+0x7c): undefined reference to `_Bdisp_AllClr_DDVRAM'
main.c:(.text+0x84): undefined reference to `_Print'
main.c:(.text+0x8c): undefined reference to `_Bdisp_SetPoint_VRAM'
main.c:(.text+0x94): undefined reference to `_Bdisp_PutDisp_DD'
main.c:(.text+0x98): undefined reference to `_GetKey'
/home/perceval/SDK/fxsdk/libfxsys/trunk/libfxsys.a(locate.o): In function `_locate':
locate.c:(.text+0x30): undefined reference to `_locate_OS'
collect2: ld returned 1 exit status
Erreur de compilation
Peut-être le créateur du script entendra-t-il mon appel...
Citer : Posté le 17/06/2012 21:28 | #
T'as linké libfxsys.a dans ton makefile ?
Saches qu'il est aussi tout à fait possible d'utiliser le SDK Casio avec Wine.
Citer : Posté le 17/06/2012 21:50 | #
En fait c'est pas make c'est scons dans le script mais oui il est linké.
Pour wine je l'ai installé aussi mais j'ai eu du mal avec le SDK : est-il possible d'ajouter des librairies déjà compilées (ex .a et les headers qui vont avec) et si oui comment ?
Citer : Posté le 17/06/2012 21:51 | #
J'allais te donner l'astuce pour compiler binutils, mais apparemment tu l'a trouvée par toi même (perso, j'ai modifié le code pour enlever les erreurs de compilation).
Donc là, que l'on soit d'accord, tu as compilé et installé le compilateur gcc. Donc la, en l'occurence, tu as un problème avec la libfxsys (qui contient certains syscalls et les fonctions de fxlib.h)
Personnellement, j'ai viré le script de Samy pour créer le mien, personnalisé pour chaque projet :
PATH="$PATH:/usr/local/cross/bin"
output="file.g1a"
src="main.c fichier2.c"
cd src
sh3eb-elf-gcc -m3 -mb -Os -nostdlib -T"/home/shapl0x/casio/GNU85/common/addin.ld" /home/shapl0x/casio/GNU85/common/crt0.s $src -I/home/shapl0x/casio/GNU85/include -L/home/shapl0x/casio/GNU85/lib -lfxsys -o ../myaddin.elf
cd ..
if [ -f myaddin.elf ]
then
sh3eb-elf-objcopy -R .comment -R .bss -O binary myaddin.elf myaddin.bin
sh3eb-elf-objdump -D myaddin.elf > myaddin.s
rm myaddin.elf
if [ -f myaddin.bin ]
then
~/casio/GNU85/g1a-wrapper/c_g1awrapper myaddin.bin -o $output -i icon.bmp
rm myaddin.bin
fi
fi
Comme tu peux le constater, la variable $ouput contient le nom du fichier de sortie. Et $src contient la liste des fichiers sources (séparés par un espace)
Pour la commande sh3eb-elf-gcc, c'est la plus complexe
-T"..." adresse du fichier addin.ld
a la suite adresse du fichier crt0.s
-I"..." adresse du dossier qui contient les .h Donc il faut copier dedans tous les fichiers .h de libfxsys (présents dans fxsdk/libfxsys/trunk/include)
-L".." adresse du dossier qui contient les librairies (tu dois placer le fichier libfxsys.a dans ce dossier)
-lfxsys : avec ce paramètre, tu dis au compilo "je veux utiliser libfxsys.a dans mon programme". Il faut faire attention à cela, c'est source d'erreur : si tu veux utiliser libgcc.a par exemple, tu dois envoyer le paramètre -lgcc et non -libgcc. En fait, tous les noms des librairies statiques doivent commencer par lib[...].a C'est pour cela qu'il n'y pas besoin de préciser que le fichier commence par "lib"
Je pense avoir fais une description assez détaillé de mon fichier de compilation. Je signale quand même que j'ai recréer un dossier propre pour compiler, à savoir "/home/shapl0x/casio/GNU85"
dedans, j'ai un dossier include, un dossier lib, un dossier common, et un dossier projects. Chaque projet a dossier spécifique qui contient build.sh (le script de compilation), le .g1a, icon.bmp et un dossier src qui contient les sources (c'est pour ça qu'il y a "cd src" et "cd .." dans le script
Si t'as besoin de plus d'infos, viens parler sur msn : kevkevvtt(a r o b a s e)hotmail.fr
PRO CONVERT le meilleur programme de conversion sur casio !
Citer : Posté le 17/06/2012 22:34 | #
Super merci je regarde ça demain... après la philo
-------------- EDIT
Ça marche merci par contre j'ai eu un problème avec la fonction _main qui n'était pas reconnue donc j'ai mis "main" à la place -et ça marche - mais je pense que l'underscore était pas là pour rien...
Sinon j'ai aussi un problème avec xfer9860. Si j'ai bien compris c'est un problème de version de ma calculatrice et je crois que mmaximum l'a résolu le avec son interface qt mais il ne l'a pas mise en ligne...
-------------- RE-EDIT
c'est bon j'ai réglé le problème avec xfer9860