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 » Bibliothèque standard pour GCC
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1242 Défis: 54 Message

Bibliothèque standard pour GCC

Posté le 01/06/2014 19:50

Comme vous l'avez peut-être remarqué, LePhenixNoir nous a gratifié d'un tuto accessible afin de mettre en place GCC et donc une nouvelle manière de compiler des add-ins pour nos Casios.

Afin d'ouvrir le développement au libre, une bibliothèque C standard à vu le jour et avance petit à petit.
Un dépôt git est disponible ici.
L'objectif est, au final, d'avoir une bibliothèque dont on connaisse le contenu, qui soit maintenable et qui remplisse le rôle d'une librairie C standard à l'échelle de nos calculatrices, compatible SH4 et SH3, enfin un truc bien quoi !

Le code étant écrit par des membres de PC, depuis rien, le choix de la licence est ouvert, de mon côté, comme pour LePhenixNoir, placer celui-ci dans le domaine publique paraît intéressant, reste à voir avec les autres (notamment Dark Storm pour le moment ).
Message initial
Cliquer pour enrouler
Seulement, si le support de l'architecture SuperH est relativment "natif" pour GCC, le support des librairies et des parties spécifique aux calculatrices Casio l'est beaucoup moins. Ainsi, si il est possible de récupérer les fonctions correspondants à "fxlib.h" dans un format utilisable par GCC, la librairie C standard fournie par casio dans le SDK ne semble pas aussi simple à récupérer (voire irrécupérable ? ).

Le plus simple est je pense de "réecrire" une bibliothèque standard C.
A mon avis, il pourrait aussi être intéressant d'essayer de s'affranchir de la bibliothèque "fxlib" fournie par Casio, toujours en la réecrivant (c'est à dire simplement refaire les appels de Syscalls pour la plupart des fonctions, "fxlib" étant majoritairement basée sur les Syscalls), mais en travaillant sur certains points et avoir d'emblée une compatibilité SH4 par exemple. On "enlèverait" aussi la plupart du code propriétaire de Casio (bien qu'il reste les syscalls, mais bon... ).
Ce qui concerne "fxlib" n'est que mon point de vue étant donné qu'on peut très bien conserver le fichier de Casio, j'amorce juste une réflexion à ce niveau là ;).

Quoi qu'il en soit, ce topic est là pour permettre de réfléchir sur le projet ,c'est à dire la réimplémentation d'une bibliothèque C à peu près standard (en s'appuyant sur les syscalls déjà existants, va faloir sortir la doc ) pour fonctionner sur GCC de manière correcte, voire plus intéressante que sur le SDK de Casio (pourquoi pas implémenter des fopen(...) par exemple, là encore, simple suggestion à cogiter ).
C'est aussi pour voir si il y a des gens qui seraient intéressés pour travailler là dessus, et voir vos idées sur la manière de travailler dessus.

Je pense qu'à la longue, un dépot git (ou autre) sur gitorious ou quelque chose du même style pourrait servir, qu'en dites vous ? Enfin, le projet semble intéressant, d'autant plus qu'un GCC bien fonctionnel pour compiler des add-ins, ça serait cool ! :D.
Donc n'hésitez pas à mettre vos idées pour commencer et avancer !
[/spoiler]


Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 17/06/2014 14:13 | #


oui
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 17/06/2014 14:14 | #


?Je crée un repo MonochromeLib et Mode7?
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 17/06/2014 14:14 | #


Vas y, il me semble que t'as les droits

Ajouté le 17/06/2014 à 14:14 :
Au passage, on en profitera pour résoudre les bugs de Mlib
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 17/06/2014 14:15 | #


Héhé, le seul truc est que le M7 dépend de ML, c'est sa seule dépendance il me semble.

Ajouté le 17/06/2014 à 14:47 :
https://gitorious.org/fx-community-libraries
Il y a déjà ML et M7

Ajouté le 17/06/2014 à 16:11 :
N'hésitez pas à passer vos identifiants pour que je vous ajoute.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 17/06/2014 16:12 | #


"LePhenixNoir".
Tu peux mettre un g1a de test pour M7 ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 17/06/2014 16:14 | #


Lephenixnoir a écrit :
"LePhenixNoir".
Tu peux mettre un g1a de test pour M7 ?

Ca sera à faire.

Ajouté le 17/06/2014 à 16:15 :
Leffe, quel projet?
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 17/06/2014 16:16 | #


C'est-à-dire ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 17/06/2014 16:17 | #


J epeux pas ajouter la collaboration sur l'intégralité du projet visiblement, tu penses modifier quels projets?
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1242 Défis: 54 Message

Citer : Posté le 17/06/2014 16:18 | #


Ben ajoute dans chaque dépot au pire, c'est plus simple ;).
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 17/06/2014 16:19 | #


Je tenterais bien quelques optimisations sur ML, si tenté que ce soit possible.
Après, j'aurai probablement mes propres projets à mener, mais je ne suis pas sûr que ça ait sa place sur ce git ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 17/06/2014 16:21 | #


Au pire, tu fais une branche, et une fois que tu as fait des optimisaitons, tu me proposes un pull request que je puisse avoir une notif quand tu as fini.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 18/06/2014 17:03 | #


Je viens de penser à quelque chose !
Si le SDK refuse de lancer un add-in qu'il n'a pas lui-même compilé -- ce qui est probable ca ça expliquerait pourquoi on ne peux pas lancer les applications systèmes --, le fichier doit être "marqué". Et comme ça ne peut pas être dans le code, ça doit être... dans l'en-tête !
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 18/06/2014 17:04 | #


Donc, il suffirait de patcher le G1A-wrapper !
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 18/06/2014 17:04 | #


Ou alors, le SDK trace une foultitiude de fichiers en rapport avec l'addin qu'il compile et le debugger, voyant que ce n'est pas le même fichier, envoie au SDK un refus de le faire démarrer.
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1242 Défis: 54 Message

Citer : Posté le 18/06/2014 17:06 | #


Je ne pense pas car on peut lancer un addin en le transférant de puis la carte sd virtuelle :oops:.
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 18/06/2014 17:08 | #


Alros, faut tester le transfert d'un addin GCC depuis la carte SD.

Et concerant les "addins officiels", c'est juste que Casio a bridé la machine afin d'éviter d'refiler une calto gratuite à tout le monde.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 18/06/2014 17:09 | #


Oui, mais peut-être que CASIO a bridé les add-ins système tout en bridant les autres compilos... ce serait tellement simple pour eux. Je regarde dans l'en-tête, et du coup oui, il suffirait de recompiler le g1awrapper.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 18/06/2014 17:11 | #


Ya quoi à modifier donc?
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 18/06/2014 17:12 | #


Je fais des tests en me basant sur les sources du g1awrapper et d'un add-in de chaque compilo.
Laisse-moi quelques minutes d'abord, c'est des octets en pagaille.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Eiyeron Hors ligne Ancien modérateur Points: 5525 Défis: 57 Message

Citer : Posté le 18/06/2014 17:13 | #


Pas tellement, si je me souviens bien, le code d el'adin commence en 0x200.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 18/06/2014 17:15 | #


C'est ça. Je te laisse constater les 0x200 premiers octets d'un add-in de gcc.
AA AC BD AF 90 88 9A 8D 0C FF EF FF EF FF 32 FE FF FF F9 73 BB 00 00 00 00 00 00 00 00 00 00 00 40 61 64 64 69 6E 2E 67 31 00 00 00 00 00 00 00 66 78 53 44 4B 2E 31 33 33 37 00 00 32 30 31 34 2E 30 36 31 34 2E 30 36 35 30 00 00 00 00 00 04 0C 00 00 04 10 07 BC 94 10 08 22 94 3B 28 22 A4 10 C7 22 C4 10 80 A2 A4 21 80 A2 94 22 6F 3C 94 20 00 00 04 C0 00 00 04 00 00 01 FC 00 00 01 FC 00 00 01 FC 00 00 01 FC 00 00 01 FC 00 00 01 FC 00 00 01 FC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 64 64 69 6E 2E 67 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 8C 00 00 00 00 00 00 00 00 00 00 00 00


Ajouté le 18/06/2014 à 17:16 :
Non, il n'y a pas un checksum ?

Ajouté le 18/06/2014 à 17:19 :
Putain, j'ai eu une "Copy protection ERROR".

Ajouté le 18/06/2014 à 17:22 :
Sinon, "Data ERROR" si je copie entièrement le header depuis un add-in du SDK, donc je me demande s'il n'y a pas un checksum...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante

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 121 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