Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » fxSDK, un SDK alternatif pour écrire des add-ins
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

fxSDK, un SDK alternatif pour écrire des add-ins

Posté le 29/08/2014 22:00

Le fxSDK est une alternative au SDK habituel de Casio. Il permet de développer des add-ins pour la famille de la Graph 35+E et la Graph 90+E, et offre de meilleures performances et plus de possibilités !

Les outils du fxSDK

Le fxSDK marche sous Linux et a été compilé pour Mac OS ; il ne marche pas encore pour Windows mais on peut en discuter.

Il se fonde sur l'indispensable compilateur gcc et sa suite d'outils : as, ld, objdump, objcopy (entre autres). Contrairement au vieux compilateur du SDK, gcc est un compilateur moderne avec beaucoup de possibilités. Il n'est pas fourni avec le fxSDK et fait l'objet d'un tutoriel d'installation à part.

Côté calculatrice, c'est le noyau gint qui fait le travail. Il remplace fxlib et une partie de l'OS pour vous offrir des fonctionnalités plus cool et plus rapides. Les add-ins développés avec le fxSDK utilisent gint toutes les trois lignes !

Le fxSDK fournit également des outils spécifiques pour compiler et étudier les programmes de la calculatrice.

fxsdk est un petit gestionnaire de projet qui vous permet de créer et compiler facilement des projets sans vous prendre la tête avec le Makefile. Parfait si vous ne voulez pas connaître toutes les détails compliqués.

fxg1a sert à créer les fichiers g1a finaux à partir du programme compilé. C'est le successeur de mon vieux g1a-wrapper qui était beaucoup moins puissant.

fxconv convertit des données pour vos add-ins, commes vos images ou polices, dans des formats spécifiques de gint. C'est un peu comme le Sprite Coder mais ça vous évite de copier des gros tableaux dans votre programme et surtout le dessin est beaucoup plus performant !

fxos est un désassembleur et manipulateur d'OS capable de retrouver et disséquer des syscalls en un tour de poignet. C'est un outil de reverse-engineering dont l'usage principal est de produire des listings assembleur annotés pour comprendre très rapidement le code.

Il y a pas mal de différences avec le SDK de Casio donc passer au fxSDK nécessite un peu d'adaptation.

Installer le fxSDK sur votre ordinateur

Ça se passe en trois étapes :

1. Compiler un compilateur gcc à destination de la calculatrice
2. Installer le fxSDK
3. Installer le noyau, gint

Je suppose ici que vous connaissez les bases de la ligne de commande, mais si ce n'est pas le cas, n'hésitez pas à laisser un commentaire pour demander.

La première chose est de vous préparer un cross-compilateur gcc. Vous pouvez sauter l'installation du g1a-wrapper et venir ici dès que la libgcc est installée. Assurez-vous que le compilateur est dans le PATH est vous serez prêt ! C'est le plus gros morceau donc une fois que vous aurez ça, vous aurez déjà pratiquement fini.

Clônez le dépôt git du fxSDK depuis la forge de Planète Casio (vous pouvez aussi utiliser SSH).

% git clone 'https://gitea.planet-casio.com/Lephenixnoir/fxsdk.git'

Configurez le fxSDK ; vous pouvez taper "./configure --help" voir les options disponibles. Par défaut, le fxSDK sera installé dans votre dossier personnel (dans ".local").

% cd fxsdk
% ./configure

Ensuite compilez et installez ! Si vous avez choisi un dossier d'installation différent avec --prefix ou si vous compilez sous Mac, vous pourriez avoir besoin de sudo à l'installation.

% make
% make install

Assurez-vous que votre dossier de destination est dans votre PATH, puis vous pouvez installer gint.

Vous êtes alors prêt à partir !

Développer des programmes avec le fxSDK

TODO: Ajouter l'utilisation de fxsdk.

Toute la partie programmation revient à développer des programmes avec gint. Les tutoriels d'utilisation de gint couvrent tous ce dont vous aurez besoin, y compris l'utilisation de fxconv.


Fichier joint


Pages : Précédente1 ... , 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, ... 21Suivante
ZezombyeEn ligneRédacteurPoints: 1629 Défis: 12 Message

Citer : Posté le 21/08/2018 01:55 | #


Le fxsdk est-il à jour ou il faudrait l'updater un peu ?

J'aimerais l'utiliser notamment pour le getkey (celui de casio ne renvoie pas de valeur du tout pour certaines combinaisons de touches) et pour convertir des images avec fxconv.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 21/08/2018 07:34 | #


Il faudrait l'updater beaucoup.

Tu peux toutefois utiliser la version actuelle de gint et fxconv avec, ce n'est pas du tout un problème. Par contre mon getkey() ne renvoie qu'une seule touche, comme celui du système ; si tu veux en avoir plusieurs tu dois procéder différemment. Les fonctions de <event.h> te permettent de recevoir les appuis/maintiens/relâchements de touches en temps réel, et là du coup tu peux savoir s'il y a plusieurs touchées appuyées.
ZezombyeEn ligneRédacteurPoints: 1629 Défis: 12 Message

Citer : Posté le 21/08/2018 14:26 | #


J'ai une erreur en utilisant les commandes pour contourner l'inclusion de fxos :

Zezombye@Zez-PC2 ~/fxsdk
$ ./configure
Configuration saved in Makefile.cfg.

Zezombye@Zez-PC2 ~/fxsdk
$ make fxsdk
    gcc common/bitmap.c
Messages de l'assembleur:
Erreur fatale: ne peut créer build/common_bitmap.c.o: No such file or directory
make: *** [Makefile:99: build/common_bitmap.c.o] Error 1


Une idée ?

Ajouté le 21/08/2018 à 14:27 :
Ah trouvé, il suffisait de créer les dossiers build (et bin) dans le dossier fxsdk (le premier).
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 21/08/2018 14:29 | #


Ouais, le Makefile est un peu vieux, il y a du bricolage. J'ai commit un correctif pour que ça se fasse de façon automatique.
ZezombyeEn ligneRédacteurPoints: 1629 Défis: 12 Message

Citer : Posté le 21/08/2018 14:41 | #


Il trouve pas le fichier "/usr/share/fxsdk/linker.ld", j'ai fouillé dans le dossier du fxsdk et je le vois pas :/
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 21/08/2018 14:53 | #


Ce fichier est fourni par gint.
ItytHors ligneMembrePoints: 211 Défis: 0 Message

Citer : Posté le 23/12/2018 15:56 | #


Salut, rien de grave c'est juste que la commande "git clone --recursive "http://git.planet-casio.com/lephe/fxsdk"" me renvoie ça :
warning: redirection vers https://git.planet-casio.com/lephe/gint.git/
remote: Enumerating objects: 1635, done.        
remote: Counting objects: 100% (1635/1635), done.        
remote: Compressing objects: 100% (560/560), done.        
remote: Total 1635 (delta 1028), reused 1633 (delta 1027)        
Réception d'objets: 100% (1635/1635), 1.04 MiB | 785.00 KiB/s, fait.
Résolution des deltas: 100% (1028/1028), fait.
warning: redirection vers https://git.planet-casio.com/lephe/gint.git/
warning: redirection vers https://git.planet-casio.com/lephe/gint.git/
error: Le serveur n'autorise pas de requête pour l'objet 131b432cc97a75bd288b936cd8f1c461ebb7e893 non annoncé
Chemin de sous-module 'gint' récupéré, mais il ne contenait pas 131b432cc97a75bd288b936cd8f1c461ebb7e893. La récupération directe de ce commit a échoué.

du coup obligé de chercher à la main le dossier. Ce n'est pas grave mais je préfère prévenir quand même.
salut je m'appelle sacha et je viens du bourg-palette et voici mon meilleur ami pikachu
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 23/12/2018 16:30 | #


Urg, j'avoue que cette dépendance est pas super... je l'avais fait pour simplifier la vie des utilisateurs mais je crois que c'était une mauvaise idée.

Je note que c'est cassé, merci.
MilangHors ligneMembrePoints: 325 Défis: 2 Message

Citer : Posté le 22/02/2019 18:54 | #


est ce qu'il existe une version portable ou alors est il possible de l'installer sur clé directement ?
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 22/02/2019 19:03 | #


Tout le fxSDK (et gint) ne sont qu'une poignée de fichiers, que tu peux installer sur une clé sans le moindre soucis. N'oublie pas que c'est des outils en ligne de commande et pas un IDE.

Le plus dur c'est pas plutôt de trimballer le compilateur, mais si tu fais l'installation directement dans un dossier de ta clé USB, ça ira tout seul. Ensuite tu configures le PATH et c'est bon.
MilangHors ligneMembrePoints: 325 Défis: 2 Message

Citer : Posté le 22/02/2019 19:14 | #


ok merci beaucoup c'est ce que je vais faire
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 22/02/2019 21:31 | #


Super ! N'hésite pas à demander si tu as un souci pendant l'installation. Bon courage !
KirafiHors ligneMembrePoints: 2113 Défis: 10 Message

Citer : Posté le 23/03/2019 13:32 | #


Coucou voici le retour d'un fantôme !

J'ai donc installé tout ça (dans une image docker) et je me suis rendu compte qu'une petite cli plus user friendly serait la bienvenue .

Makefile automatique, build et envois à la calto en une simple commande, etc..

J'ai créé une Issue sur le projet gitlab.
iPod
Pour des parties rapides
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Autres
Franchement ils valent le coups
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
MilangHors ligneMembrePoints: 325 Défis: 2 Message

Citer : Posté le 22/06/2019 18:43 | #


Je tiens à noter que le lien de git pointe dans le vide
NvvHors ligneMembrePoints: 38 Défis: 0 Message
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 22/06/2019 19:24 | #


My bad, my bad ! Faut que je mette à jour la totalité du tutoriel, aussi...
MilangHors ligneMembrePoints: 325 Défis: 2 Message

Citer : Posté le 24/06/2019 09:58 | #


merci !!
ca va mieux marcher mainentant...
Shadow15510Hors ligneAdministrateurPoints: 3929 Défis: 16 Message

Citer : Posté le 28/06/2019 18:35 | #


J'ai une erreur avec cette ligne : ./configure (j'en suis au FxSDK) et j'ai cette erreur :
-bash: ./configure: /usr/bin/bash: bad interpreter: No such file or directory

Merci d'avance !
"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

Moral
   95%
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 28/06/2019 18:42 | #


Une erreur de ma part (oui Breizh...). Tape git pull pour récupérer la correction que j'ai faite puis réessaie, ou tape bash configure à la place de ./configure.
Shadow15510Hors ligneAdministrateurPoints: 3929 Défis: 16 Message

Citer : Posté le 28/06/2019 19:39 | #


Ça marche jusqu'à la fin du premier make où j'ai une autre erreur :
fatal error: 'endian.h' file not found

(j'ai essayé ./configure et bash configure avec le même résultat.)
"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

Moral
   95%
LephenixnoirHors ligneAdministrateurPoints: 16003 Défis: 140 Message

Citer : Posté le 28/06/2019 19:43 | #


Ça c'est une différence entre Linux et Mac. Désolé, je n'aurais pas trop pu la prévoir.

J'ai poussé un fix, tu peux git pull et refaire make. Dis-moi si ça va mieux
Pages : Précédente1 ... , 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, ... 21Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 60 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