Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » fxSDK, un SDK alternatif pour écrire des add-ins
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 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. Template intermédiaire par KikooDX.

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


Précédente 1, 2, 3 ··· 10 ··· 20 ··· 25, 26, 27, 28
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 29/01/2021 18:46 | #


Nouvelle version : fxSDK 2.3.0

Et voici la version 2.3 du fxSDK. C'est une version très orientée vers la distribution, pour rendre plus facile le partage des outils, programmes et bibliothèques, et la gestion des projets. J'espère que vous y trouverez votre compte, toute l'intention est de vous aider et/ou simplifier la vie.

Cette version arrive aussi avec GiteaPC qui fait le plus gros du boulot pour utiliser et mettre à jour des bibliothèques en deux coups de clavier. Je vous suggère d'y jeter un oeil, vous pourriez tourner avec tout à jour en 5-10 minutes.

Trois tutoriels accompagnent cette version :
Utilisation de GiteaPC pour gérer un environnement de développement
[Tutoriel] Compiler des add-ins avec CMake (fxSDK)
Lephenixnoir/Template-gint-library d'écrit l'utilisation du fxSDK et de CMake pour créer une bibliothèque gint

Voici les détails des changements !

Nouveautés
• Ajouté un système plus élégant de conversion pour fxconv. Explications et instructions de migration.
• Ajouté le support de CMake comme système de compilation. Tout l'écosystème fxSDK bénéficie de ce support, j'ai par exemple modifié mes libs en conséquence. Explications et instructions de migration.
• Ajouté des modules CMake utilitaires : pour déterminer la version d'un projet à partir des tags et commits Git, et pour faciliter l'écriture de Find<Package>.cmake pour les bibliothèques

Changements
• libprof est désormais séparée en libprof-fx et libprof-cg. Brèves instructions de migration.
• La commande fxsdk update a été supprimée, les mises à jour de Makefile étant toujours plus compliquées qu'une simple copie. Si vous voulez éviter de vous y intéresser, considérez l'utilisation de CMake, qui est plus simple à comprendre et à gérer pour les débutants.
fxg1a donnera toujours un nom interne (celui de la forme @ADDIN) correct donc ce n'est plus la peine de le spécifier. De toute façon personne ne s'en sert, c'était juste un coup à se planter de format (ce qui rend l'add-in invisible sur le menu principal).
fxsdk new ne demande plus d'informations interactivement. Pour les Makefile il choisit des valeurs par défaut sensibles (à modifier dans project.cfg), pour CMake vous devez modifier CMakeLists.txt (dans lequel vous devez déjà ajouter les fichiers source etc).
fxsdk new a une nouvelle option --makefile pour générer des Makefile (par défaut il utilise CMake).

Ajouté le 29/01/2021 à 19:36 :
Les instructions d'utilisation de GiteaPC ont été mises à jour avec des instructions spécifiques pour la création et la migration d'environnements de développement fxSDK/gint, ce qui conclut cette release (à quelques détails près).

Enjoy!
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 30/01/2021 23:11 | #


Comme toujours avec les releases plus ou moins grosses, des bugs sont aussitôt trouvés, aussitôt corrigés.

Nouveau patch : fxSDK 2.3.1

Corrections de bugs
• Corrigé la détection du dossier d'installation du compilateur dans le système CMake, qui était mal détecté sur les systèmes où la locale n'est pas anglaise.
Ninestars Hors ligne Membre Points: 2312 Défis: 22 Message

Citer : Posté le 04/04/2021 23:07 | #


J'ai regardé les quelques dernières pages sans trouver de réponde, donc désolé de te déranger encore un peu,
mais j'ai une erreur au make install
the -R and -r options may not be specified together.
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 04/04/2021 23:15 | #


Une erreur à cause des différences de cp sous Mac OS, il semblerait. Essaie s'il te plaît de modifier la ligne 96 du Makefile par un cp -rp, ça devrait marcher aussi bien. Une fois la modif faite relance ton make install (ou la commande GiteaPC si tu t'es servi de ça).
Ninestars Hors ligne Membre Points: 2312 Défis: 22 Message

Citer : Posté le 05/04/2021 00:01 | #


Merci, j'ai cherché sur internent mais je ne vois pas comment modifier ça, je n'ai pas la main sur le fichier. Je ne suis pas un as de git
Comment dois-je faire ?

Ajouté le 05/04/2021 à 00:30 :
C'est bon j'ai trouvé (et surtout, j'ai compris). Etape suivante !
Kikoodx Hors ligne Contributeur Points: 2467 Défis: 11 Message

Citer : Posté le 16/04/2021 11:26 | #


Bonjour ! J'ai créé un template de projet fxsdk sur le Gitea. Pas grand chose vraiment, mais dans l'espoir que cela aide quelques personnes je le partage ici.
https://gitea.planet-casio.com/KikooDX/gint-project-template

Cette base comprend :
un README plus complet que nécessaire
une LICENSE 0BSD (vous êtes libres d'en utiliser une autre ou de la supprimer !)
un exemple d'inclusion de function
un CMakeLists.txt facilement customisable avec pas mal de warnings par défaut
une tarte au citron
une configuration clang-format prête à partir
quelques autres détails que j'ai oublié

Si vous avez des commentaires/retours, je peux réduire ou augmenter cette base au besoin.
Ce sera tout, bonne fin de matinée
Je devrais dormir, et pourtant me voilà.
Cakeisalie5 Hors ligne Membre de CreativeCalc Points: 1829 Défis: 10 Message

Citer : Posté le 16/04/2021 11:29 | #


Je cherche encore la tarte au citron.

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 16/04/2021 11:40 | #


Nice ! Il faut que je refasse ce topic, j'ajouterai une référence à ton template pour sûr. En attendant j'ai mis un lien dans le TODO comme ça j'oublierai pas.

Rien à dire sur le template, à part que -Os ne fait rien de particulier pour réduire la taille du code, c'est juste -O2 moins 5-10 optis qui ont tendance à faire augmenter le poids du fichier.
Kikoodx Hors ligne Contributeur Points: 2467 Défis: 11 Message

Citer : Posté le 16/04/2021 11:47 | #


Cakeisalie5 a écrit :
Je cherche encore la tarte au citron.

Cherche aux tréfonds de ton âme, la tarte au citron t'y attend.

Lephenixnoir a écrit :
Rien à dire sur le template, à part que -Os ne fait rien de particulier pour réduire la taille du code, c'est juste -O2 moins 5-10 optis qui ont tendance à faire augmenter le poids du fichier.

Je n'ai pas trouvé de meilleure description, est-ce que tu peux me suggérer quelque chose ?
Je devrais dormir, et pourtant me voilà.
Lephenixnoir Hors ligne Administrateur Points: 19605 Défis: 142 Message

Citer : Posté le 16/04/2021 11:48 | #


C'est pas très important, mais je peux suggérer ça.

# -Os: like -O2 without space-expensive optimizations
# -O2: good speed/compile time tradeoff
# -O3: gotta go fast
Kikoodx Hors ligne Contributeur Points: 2467 Défis: 11 Message

Citer : Posté le 16/04/2021 11:53 | #


J'ai poussé le changement (et corrigé un oubli de ma part en passant), merci
Je devrais dormir, et pourtant me voilà.
Précédente 1, 2, 3 ··· 10 ··· 20 ··· 25, 26, 27, 28

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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 50 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