Forums Casio - Projets de programmation

Index du Forum | Projets de programmation | fxSDK, un outil de développement d'add-ins sous Linux
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Posté le 29/08/2014 22:00

fxSDK, un outil de développement d'add-ins sous Linux :

Le fxSDK est un ensemble d'outils en ligne de commande pour développer des add-ins sous Linux, qui simplifie l'utilisation de gint et effectue du travail en amont de l'exécution. Il effectue ainsi le travail spécifique à la calculatrice en laissant les tâches de programmation à la suite GCC.

On y trouve les outils suivants :
— GCC, l'indispensable compilateur, et sa suite : as, ld, objdump, objcopy, dont vous ne pourrez plus vous passer. Voyez le tutoriel d'installation pour vous familiariser.
— Un support partiel de libc : réécrit de zéro à part quelques syscalls pour l'allocation dynamique. Utile quelquefois.
— Gint, le noyau dur qui interface entre votre add-in et le matériel de la calculatrice. C'est la bibliothèque utilisée toutes les deux lignes par les programmes développés avec le fxSDK.
fxconv, un convertisseur multi-fonctions qui prépare vos images, polices, données pour les rendre lisibles par gint. Le prétraitement effectué sur les images, plus complexe que le classique effectué par SpriteCoder, est la principale source de performance pour les rendus.
fxos, un désassembleur d'OS capable de retrouver un syscall en un tour de poignet. Outil de reverse-engineering assez utile, il pallie au défaut d'objdump de ne pas connaître toutes les instructions du multiplieur.
fxsdk, un petit exécutable qui fournit des options de compilation et de linkage.

Le fxSDK est une méthode de développement alternative que l'on peut comparer au fx-9860G SDK. Dans cette analogie, gint serait l'équivalent de fxlib. Mais attention, les outils, les fonctions, les formats ne sont pas les mêmes, donc la transition du second au premier nécessite un peu d'adaptation !


Installer le fxSDK sur votre ordinateur

La procédure suivante installera aussi gint et vous mettra sur les rails pour commencer à développer. 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.

Avant de commencer, il faut absolument que vous ayez un cross-compilateur GCC installé sur votre système ! Le fxSDK fait à votre place une partie de l'étape 7, concernant les options de compilation, mais vous aurez besoin de tout le reste. 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. Gint s'y trouve aussi.
$ git clone --recursive "http://git.planet-casio.com/lephe/fxsdk"

Configurez le fxSDK en ajoutant des options (invoquez ./configure --help pour les voir) si vous le souhaitez, puis compilez-le et installez-le :
$ cd fxsdk
$ ./configure
$ make
$ sudo make install

Vous aurez besoin de votre mot de passe pour l'installation (dernière commande). Par défaut, les binaires sont placés dans /usr/bin et les fichiers de données dans /usr/share/fxsdk.

Ensuite, plus qu'à faire pareil pour gint. C'est le moment d'envoyer la sauce
$ cd gint
$ ./configure
$ make
$ sudo make install

Gint s'installe toujours au même endroit que le fxSDK. Vous pouvez aussi personnaliser votre compilation de la bibliothèque en étudiant les options de ./configure --help.

Vous êtes maintenant prêts à partir !


Développer des programmes avec le fxSDK

Cela revient à développer des programmes avec gint. Les tutoriels d'utilisation de gint couvrent tous les sujets liés au fxSDK dont vous pourrez avoir besoin, ce qui représente essentiellement l'invocation de fxsdk et l'utilisation de fxos.


Fichier joint

Watch me, as I build my empire with my own hands.


Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Dernier message de la page précédente :Posté le 15/07/2015 17:36 |
Je pense quand même le mettre dans /usr/bin parce que c'est plus commode... t'en penses quoi ?
----------------------------------
Watch me, as I build my empire with my own hands.



Pages: Précédente | 1 ... , 6, 7, 8, 9, 10, 11, 12 | Suivante

Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 15/07/2015 17:38 | #
C'est mieux que dans $HOME/bin, c'est sur
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 15/07/2015 19:37 | #
Voilà, le wrapper est presque finalisé.
Encore quelques réglages et améliorations et ça devrait être terminé...

Ajouté le 15/07/2015 à 22:45 :
Dernier commit, c'est fini.
Mon TODO ne comporte plus que trois lignes complètement anecdotiques...
* e-strips

Je ne sais pas comment on le code et puis personne ne s'en sert.
* custom sequences

Ça c'est pou pouvoir remplir manuellement la(les) section(s) non-significative(s) pour reconnaître les programmes ou autre usage quelconque, cela dit on a déjà l'internal app name pour ça.
* fully support 16-bit

J'ai des valeurs bizarres quand je lis des bitmaps 16-bit, mais la sortie est bonne. Faudrait que je m'y remette en détail...
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 15/07/2015 22:49 | #
Super, je màj dès que possible (j'aurais peut être une icône correcte du coup )
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 15/07/2015 22:50 | #
Dark storm a écrit :
j'aurais peut être une icône correcte du coup

Je te l'accorde... ^^'
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 16/07/2015 07:14 | #
Ben, faut savoir qu'actuellement l'icône est en négatif par rapport à ce qu'elle devrait être ><
Enfin bon, si ton truc corrige ça tant mieux.
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 16/07/2015 07:38 | #
Dark storm a écrit :
Ben, faut savoir qu'actuellement l'icône est en négatif par rapport à ce qu'elle devrait être ><
Enfin bon, si ton truc corrige ça tant mieux.

C'est assez vieux ça, un des premiers commits que j'ai renvoyés...
C'est corrigé maintenant, évidemment

Ajouté le 16/07/2015 à 07:40 :
En fait mes tests étaient complètement biaisés parce que quand tu enregistres un format de bmp avec gimp (Shift+Ctrl+E), tu choisis l'encodage, mais si ensuite tu rappuies sur Ctrl+E, il te le met en 24 bits au lieu de garder ton encodage originel. x) (sauf si ledit encodage est en 1-bit)
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 16/07/2015 07:41 | #
Ah, le salaud
Au passage, c'est bien Photoshop qui n'adapte pas le format de fichier à l'extension, l'autre jour il m'a sorti un jpg illisible, en fait c'était du psd ><
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Suruq game
Hors ligne
Membre de CreativeCalc
Niveau: Confirmé
Points: 370
Défis: 9
Message
Citer : Posté le 19/04/2016 09:24 | #
ce projet est il toujours en cours ?
si oui il y a il une version d'essai pour commencer a l'utiliser
----------------------------------
There is only one thing that makes a dream impossible to achieve : the fear of failure
Intelligide
En ligne
Membre de CreativeCalc
Niveau: Aucun
Points: 38
Défis: 5
Message
Citer : Posté le 19/04/2016 09:26 | #
https://bitbucket.org/Lephenixnoir/fxsdk
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 19/04/2016 09:31 | #
Suruq game a écrit :
ce projet est il toujours en cours ?

Oui, certainement ! Je bosse dessus à plein temps depuis le début des vacances (je ne l'avais jamais explicité mais gint c'est la lib qui supporte le fxSDK en fait...).

Mais après réflexion, j'ai décidé de laisser tomber l'interface graphique que j'avais commencée. Le fxSDK cherche surtout à apporter de la fonctionnalité, des optimisations et des outils, et cette interface n'apporte rien de plus qu'un générateur de Makefile (qui n'est pas suffisant pour la justifier). Du coup je suis en train d'écrire divers outils en ligne de commande destinés à compléter et simplifier le développement sous Linux.

Suruq game a écrit :
si oui il y a il une version d'essai pour commencer a l'utiliser

Oui, le repo Bitbucket indiqué par Intelligide contient une version, mais il faut d'abord compiler gcc (étape incontournable de toute façon !) et installer Qt (qui ne sert que pour l'interface graphique). Elle n'est pas du tout à jour
----------------------------------
Watch me, as I build my empire with my own hands.
Hackcell
Hors ligne
Membre
Niveau: Intermédiaire
Points: 519
Défis: 4
Message
Citer : Posté le 22/04/2016 17:03 | #
et peut-on trouver une version a jour?
----------------------------------
Why does the future looks so bright, while he only means death ??
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 22/04/2016 17:09 | #
Il n'y a pas de version à jour, parce que les versions actuelles se contentent d'afficher une fenêtre et de faire une interface avec les outils de compilation.

Les versions que j'ai en local sont constituées de plusieurs libs (la libc, gint) et outils (encodeur d'images, de polices, wrapper, analyseur d'os, etc.) qui forment le noyau du SDK. Il n'y aura pas d'interface graphique avant longtemps, et peut-être pas tout court.

Je ne mets pas encore à jour le topic parce que je n'ai rien publié, mais ça viendra.
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 22/04/2016 17:13 | #
La libc ça serai peut-être bien de la mettre en ligne vu qu'elle est quasi-complète et que du coup les fonctions qui ne sont pas écrites pourront l'être non ?
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 22/04/2016 17:25 | #
Quasi complète ? Ben euh, y'a au moins 4 ou 5 versions sur mon disque et la seule qui soit parfaitement fiable -- celle de gint -- ne comporte que des versions rapides de memcpy() et memset()... ^^'
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 22/04/2016 17:38 | #
Et moi qui croyais que t'en avais une version potable… >_<
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 22/04/2016 17:39 | #
C'est compliqué parce qu'à chaque fois il est nécessaire de pouvoir l'intégrer dans d'autres projets, et ça génère souvent des incompatibilités... c'est un peu compliqué, mais d'anciennes versions que j'avais n'auraient pas pu tourner en totalité avec gint().

Après, oui, 90% de ce que j'ai écrit est réutilisable, mais ça je le reprendrai quand j'aurai fini gint... Et j'ai encore plein de problèmes avec de foutu clavier ! >_<
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 22/04/2016 17:42 | #
Met-le en ligne, tu te fera aider au moins…

Et puis c'est pas comme si la libc c'était un truc vraiment compliqué (je parle pour les fonctions bidons, pas le printf).
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 22/04/2016 17:45 | #
Les fonctions bidons sont déjà écrites, et si tu les veux pour ton projet... ben, c'est bidon justement ^^'
----------------------------------
Watch me, as I build my empire with my own hands.
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9843
Défis: 170
Message
Citer : Posté le 22/04/2016 17:53 | #
Bon bah avis à qui entendra, le GitLab n'attend que vous pour proposer une implémentation de la lib standard du C sans se baser sur la fxlib.
----------------------------------
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Lephenixnoir
Hors ligne
Administrateur
Niveau: Confirmé
Points: 10252
Défis: 130
Message
Citer : Posté le 22/04/2016 17:55 | #
Dark storm a écrit :
Bon bah avis à qui entendra, le GitLab n'attend que vous pour proposer une implémentation de la lib standard du C sans se baser sur la fxlib.

Tu comprends mal ce que je dis... ^^'
En plus je te rappelle que ça fera des collisions avec fxlib !
----------------------------------
Watch me, as I build my empire with my own hands.

Pages: Précédente | 1 ... , 6, 7, 8, 9, 10, 11, 12 | Suivante

Index du Forum | Projets de programmation | fxSDK, un outil de développement d'add-ins sous Linux
Publicité et partenaires
Casio Education
Casio éducation

TI-Planet
Casiopeia
Casiopeia
CasioFan, la communauté ClassPad
CasioFan
CodeWalrus
CodeWalrus

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2017 | Il y a 55 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Rugby Manager | Jeu de basket | Jeu de handball | Jeu de tennis | Nova Raider | Réparation téléphone | Soccer Rush | Tasty Tale

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd