Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » GCCSHCBSDK mon sdk pour remplacer le fx-9860G SDK
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

GCCSHCBSDK mon sdk pour remplacer le fx-9860G SDK

Posté le 24/05/2015 18:44

Attention jeune voyageur!
Ne reste pas dans ces contrées abandonées, lit pour t'instruire puis retourne parmis le monde des vivants, juste ici.

Bonjours à tous, aujourd'hui, je vous dévoile mon outil de développement personnel, ce "SDK" m'a permis de ne pas toucher le SDK de casio pendant les 10 derniers mois.
Ce "SDK" est constitué d'un cross compilateur GCC, de codeblocks, et de Calculib.

Calculib: C'est ma librairie qui permet de me passer de l'émulateur, elle permet de compiler le code pour calculatrice sur PC avec un écran et un accès au touches configurable.
Cette lib est incomplètes, mais elle est suffisante pour beaucoup, le plus gros manque sont les fonctions print.
Néanmoins, cette lib possède des avantages, elle permet par exemple de tester un addin qui rame énormément sans problème, elle permet aussi de relier deux addin à travers internet 8) (testé avec Spassus entre deux pays), pour tester le multijouer quand vous n'avez qu'une calculatrice (ou pour faire du teste rapide)

Un éditeur au choix:
-Codeblocks: Ce codeblocks n'est pas modifié, mais il est rendu portable pour pemettre de le mettre sur USB ou de modifier des options spécialement sans répercutions sur votre installation habituelle
-Sublime Text 2 (Linux seulement): Il n'est pas modifié, il est portable, mais deux build systèms ont été ajouté pour pouvoir compiler directement depuis sont interface
-Celui de voite choix ! Le sdk est designé pour pouvoir être utilisé avec n'importe quel éditeur, pas la peine de perdre vos habitudes, vos plugin et votre interface préférée, la compilation se fait simplement en appelant les .sh/.bat dans le dossier de votre projet, vous pouvez donc adapter votre éditeur facilement

GCC: Il est compilé pour SH3, version 4.8 pour windows, 4.9 pour linux

Le SDK est compatible windows et linux sans modifier les projets, utile si vous utilisez un PC linux et un windows

Quel est la différence avec un prog' pour le sdk classique ?
- Tout les includes sont regroupés dans un fichiers qui permet de ne pas avoir de #ifdef dans chaque fichier
- Les fonctions type printf sont utilisable quand compiler pour PC et sont retirée automatique à la compilation, jamais besoins de changer le code pour changer de cible
- Aucune éditeur ne permet de définir quel fichiers sont compilés et avec quelle option, pour cela il est necessaire de changer le makefile, tout les fichiers .c .cpp et .s dans le dossier src du projet sont automatiquement compilés
- Sous linux, il est necessaire d'installer wine, sauf si vous recompilez le wrapper de la communautée pour linux, il vous suffira de modifier le makefile !
- Possiblitée d'utiliser le wrapper G1A de casio ou celui de la communauteé
- Il est necessaire de copier le projet template pour crée un nouveau projet, faire un nouveau projet dans un éditeur ne fonctionnera pas
- Certaines fonctions, principalement mathématiques font crasher la calculatrice quand éxécutée (ou crée des erreurs dans la mémoire), ce n'est pas un problème de mon SDK, c'est commun quand on utlise GCC
- Monochrome lib est déja inclu, il est ncessaire d'utiliser la version du sdk !

Pour commencez, inspirez vous du template ou de 3DGine3, ses deux projets des exemples fonctionnels de la démarche à suivre

Pour upload votre G1A sur la calculatrice, je vous recommande UsbConnector (je l'ai crée pour ça), il permet d'aller plus vite qu'avec FA-124, et fonctionne sous linux.

Téléchargement:
Attention, l'archive fait 300 mo, le dossier décompressée fait 1.3Go !
https://www.dropbox.com/s/f9j0y3xfzuvre4l/GCCSHCBSDK110.tar.xz?dl=0

Changelog:
-1.1 Correction de bugs, découplement de la compilation et du lancement sur linux, support complet de sublime text 2 et support "manuel" de tout les IDEs avec l'utilisation de .bat et .sh
-1.0 première release



Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 24/05/2015 18:47 | #


Tu tente de concurrencer le fxSDK de Lephe ?
Je te préviens, le sien me parait bien mieux, même si le gros avantage du tien est la possibilité d'exécuter les addins sur PC
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 24/05/2015 18:48 | #


Oh purée ! Tu nous postes un moteur 3D, un SDK amélioré et un logiciel de transfert pour Linux ! Mais... Mais... Bravo et merci !

Ajouté le 24/05/2015 à 18:48 :
Quel nom barbare par contre.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 24/05/2015 18:49 | #


Dark storm a écrit :
Tu tente de concurrencer le fxSDK de Lephe ?
Je te préviens, le sien me parait bien mieux, même si le gros avantage du tien est la possibilité d'exécuter les addins sur PC

Le mien dispose d'une interface graphique

Nan, sérieusement, il n'y a aucune concurrence entre nous, à moins qu'il ne le veule
Par contre si ça ne te dérange pas, je me ferai une joie d'intégrer les concepts intéressant de ton sdk au fxSDK !

Merci pour toutes ces contributions
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

Citer : Posté le 24/05/2015 18:51 | #


@Ds: je ne concurence pas le fxSDK, mon SDK est fait pour ceux qui aime codeblocks et ses plugins, codeblocks possède une communautée entière et plein de modifs possible pour le rendre le plus agréable possible
@Lego, j'ai commencer ce SDK et le moteur 3D en même temps, il y a 10 mois, le transfère pour linux, ça fait 2 mois que c'est pret et que j'ai la flème d'y toucher
De rien
Nessotrin, développeuse un peu trop occupée avec la vie pour être présente sur PlanetCasio.
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 24/05/2015 18:54 | #


Je plaisantais, bien sur
En tout cas c'est du beau boulot. Je dois reconnaitre que l'idée du code compilé pour l'ordi (et donc permettre de l'exécuter sans émulateur) est un concept à creuser. Le truc c'est que du coup, si je ne me trompe, tu ne gère pas les syscalls ?
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

Citer : Posté le 24/05/2015 18:55 | #


Je gère suffisament de syscall pour être utilisable, j'ai le ticks, le 3pin, mais pas grand chôse d'autre, j'utilise une version modifiée de monochromelib aussi
Nessotrin, développeuse un peu trop occupée avec la vie pour être présente sur PlanetCasio.
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 24/05/2015 18:56 | #


Ah, great ça !

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

Citer : Posté le 24/05/2015 19:02 | #


... J'ai fait quoi du serveur pour le 3 pin ? *fail* ... je trouverai ça plus tard, faut voir si j'ai une save de la SD de mon RPI x)
Nessotrin, développeuse un peu trop occupée avec la vie pour être présente sur PlanetCasio.
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/05/2015 09:35 | #


Lephenixnoir a écrit :
Dark storm a écrit :
Tu tente de concurrencer le fxSDK de Lephe ?
Je te préviens, le sien me parait bien mieux, même si le gros avantage du tien est la possibilité d'exécuter les addins sur PC

Le mien dispose d'une interface graphique

Nan, sérieusement, il n'y a aucune concurrence entre nous, à moins qu'il ne le veule
Par contre si ça ne te dérange pas, je me ferai une joie d'intégrer les concepts intéressant de ton sdk au fxSDK !

Merci pour toutes ces contributions


Idem Par contre, 2Go ça me parait très gros quand même

Nesso trime a écrit :
- Tout les includes sont regroupés dans un fichiers qui permet de ne pas avoir de #ifdef dans chaque fichier

Je comprends pas bien là, tu veux dire que on ne devra inclure qu'un fichier?


Ajouté le 25/05/2015 à 09:40 :
Le SDK est compatible windows et linux sans modifier les projets, utile si vous utilisez un PC linux et un windows
ça me fait d'ailleurs pensé à une super idée
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 25/05/2015 10:15 | #


Nessotrin a écrit :
- Tout les includes sont regroupés dans un fichiers qui permet de ne pas avoir de #ifdef dans chaque fichier

Euh... j'ai un doute sur la propreté de cette solution là...

Nessotrin a écrit :
Je gère suffisament de syscall pour être utilisable, j'ai le ticks, le 3pin, mais pas grand chôse d'autre, j'utilise une version modifiée de monochromelib aussi

Le problème je pense, de ces versions compilées pour PC, c'est qu'on ne peut pas jouer profondément avec le système : comment gères-tu les appels de syscall à partir d'un tableau (puisqu'il n'y a pas besoin de modifier le code pour passer d'une version à l'autre) ?

Et puis, je ne pense pas qu'on puisse écrire de l'assembleur pour les deux plateformes à la fois, donc impossible de linker une bibliothèque. Je me trompe ?

Intelligide a écrit :
Le SDK est compatible windows et linux sans modifier les projets, utile si vous utilisez un PC linux et un windows

ça me fait d'ailleurs pensé à une super idée

Non.
Non
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 25/05/2015 10:19 | #


Lephenixnoir a écrit :
Intelligide a écrit :
Le SDK est compatible windows et linux sans modifier les projets, utile si vous utilisez un PC linux et un windows

ça me fait d'ailleurs pensé à une super idée

Non.
Non


Si.
Si
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

Citer : Posté le 25/05/2015 15:58 | #


@Lephe, c'est vrai que c'est pas propre , mais sinon, il faut utiliser les includes et les ifdef dans chaque fichiers, il est plus simple d'inclure seulement de fichier principal et le laisser inclure le reste suivant la platforme . C'est spécialement utile pour la version PC ou les headers sont un peu spéciaux.

Pour les syscalls, il existe deux fichiers, un contenant les syscalls normaux pour la calculatrice, et l'autre est un morceau ce calculib, il faut donc implémenter à la main les syscalls dans calculib et les nommer comme les syscalls calto

Pour linker une lib, il te faut les sources, si tu les ajoutes dans ton dossier src, elles seront compilées, si tu veut les laisser dans un fichier différent, il faut que tu les ajoutes dans le makefile de ton projet
Nessotrin, développeuse un peu trop occupée avec la vie pour être présente sur PlanetCasio.
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 25/05/2015 17:25 | #


Nessotrin a écrit :
@Lephe, c'est vrai que c'est pas propre , mais sinon, il faut utiliser les includes et les ifdef dans chaque fichiers, il est plus simple d'inclure seulement de fichier principal et le laisser inclure le reste suivant la platforme . C'est spécialement utile pour la version PC ou les headers sont un peu spéciaux.

Je me doute bien que c'est plus simple, mais ce n'est pas comme ça que ça fonctionne. Par exemple, une lib ne va inclure que son propre header et pas celui du projet, parce qu'elle ne dépend pas du projet. Et puis je ne sais pas si tu sais mais tu risques de créer des collisions de définitions en faisant ce genre de trucs !

Nessotrin a écrit :
Pour les syscalls, il existe deux fichiers, un contenant les syscalls normaux pour la calculatrice, et l'autre est un morceau ce calculib, il faut donc implémenter à la main les syscalls dans calculib et les nommer comme les syscalls calto

Du coup tu modifies les sources...

Nessotrin a écrit :
Pour linker une lib, il te faut les sources, si tu les ajoutes dans ton dossier src, elles seront compilées, si tu veut les laisser dans un fichier différent, il faut que tu les ajoutes dans le makefile de ton projet

Ouais, donc on peut pas linker de bibliothèque quoi. xD
Il me semble que ça soulève un léger problème dans le fonctionnement de ton sdk.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Nessotrin Hors ligne Membre Points: 204 Défis: 0 Message

Citer : Posté le 25/05/2015 17:41 | #


Pour les colisition de définitions, normalement, ça passe, pourquoi y aurait'il deux fonction/objets nommé pareil ?
après, si tu veut vraiment laisser les includes dans chaque fichier d'un projet avec tout les ifdefs, t'a plus d'expérience, donc je le ferais

Je modifie les sources de calculib une fois, et ensuite je peut utiliser le syscall dans tout les projets, c'est déja pas mal

On ne peut pas linker non, mais, c'est de toute manière impossible , et puis, c'est pas vraiment un problème, il suffit d'avoir les sources sous la main (ce qui est quasiment toujours le cas).

J'ai sûrement oublier de préciser que çe SDK n'a pas été concu pour être distribué à la base, ce système rempli bien sa fonction je trouve Il est vrai qu'il possède beaucoup de limites, comme impossible de linker, certains syscalls impossible à faire sur un PC, mais il est quand même capable de beaucoup :), Spassus, 3DGine3 ou tout les projets abandonnées (dans le dossier "project" ) en sont la preuve
Nessotrin, développeuse un peu trop occupée avec la vie pour être présente sur PlanetCasio.
Voici Spassus2, mon jeu de combat spatial procédural abandonné, le NESSCASDK, mon SDK 'barebones' fait maison (C'est pour les maso uniquement) et CasioUsb, mon utilitaire de transfert d'addin pour Linux.
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 25/05/2015 17:47 | #


Nessotrin a écrit :
Pour les colisition de définitions, normalement, ça passe, pourquoi y aurait'il deux fonction/objets nommé pareil ?
après, si tu veut vraiment laisser les includes dans chaque fichier d'un projet avec tout les ifdefs, t'a plus d'expérience, donc je le ferais

Parce qu'un define peut changer d'un header à l'autre, ou qu'un fichier peut être pensé pour être compilé sans lib standard et redéfinir autrement ses fonctions, ou des définitions statiques qui se mélangent, y'a plein de cas possibles !

Nessotrin a écrit :
Je modifie les sources de calculib une fois, et ensuite je peut utiliser le syscall dans tout les projets, c'est déja pas mal

Oui, mais du coup c'est inexact de dire que les sources n'ont pas à être modifiées

Nessotrin a écrit :
On ne peut pas linker non, mais, c'est de toute manière impossible , et puis, c'est pas vraiment un problème, il suffit d'avoir les sources sous la main (ce qui est quasiment toujours le cas).

Non, ce n'est pas de toute manière impossible. La bonne réponse aurait été de me dire que tu avais une version compilée pour le PC et une pour la calto
Et, non, tu n'as pas toujours les sources sous la main. Ça par contre ce n'est pas vrai !

Nessotrin a écrit :
J'ai sûrement oublier de préciser que çe SDK n'a pas été concu pour être distribué à la base, ce système rempli bien sa fonction je trouve Il est vrai qu'il possède beaucoup de limites, comme impossible de linker, certains syscalls impossible à faire sur un PC, mais il est quand même capable de beaucoup :), Spassus, 3DGine3 ou tout les projets abandonnées (dans le dossier "project" ) en sont la preuve

Certes, mais tu l'as quand même distribué D'où les différentes remarques que j'ai faites à son sujet (et qui ne se veulent que de tendre à l'améliorer si jamais tu le mets à jour).
Par contre, on peut faire tout ça avec le fx-9860G SDK et je ne sais pas si tu dirais qu'il a fait ses preuves pour autant (attention, je ne tape pas sur le fx-9860G SDK, d'autant plus que personne ici ne serait capable de reproduire une technologie aussi évoluée).
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 84 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