Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » SDK gcc pour addin 35e2/portage KhiCAS
ParisseHors ligneMembrePoints: 160 Défis: 0 Message

SDK gcc pour addin 35e2/portage KhiCAS

Posté le 16/04/2019 20:58

Souhaitant porter KhiCAS sur la nouvelle casio 35, j'ouvre le sujet d'un SDK pour la Graph 35e2. La branche liberation du code source d'Eigenmaths (https://git.planet-casio.com/Nemh/Eigenmath/tree/liberation) contient une version gcc qui suffit pour compiler Eigenmaths, elle convient aussi pour tommath (entiers longs utilisables avec giac) mais pas pour porter la uSTL, la libc est incomplete, il manque par exemple printf, fprintf, errno, etc. Et cette libc est fournie sans code source (c'est probablement la libc du SDK de Casio?).
Je pense qu'il doit etre possible de porter la libc que j'utilise pour KhiCAS (https://www-fourier.ujf-grenoble.fr/~parisse/casio/libfxcg.tar.gz), en remplacant principalement dans stdio.c les appels fxcg vers libfx. Mais Lephenixnoir me suggere d'utiliser le portage de newlib par Memallox https://git.planet-casio.com/Memallox/libc
Question: est-ce que ce portage est compatible avec la 35e2?
Existe-t-il une version compilee (libc.a et fichiers headers) quelque part?



Pages : Précédente1, 2, 3, 4, 5
ParisseHors ligneMembrePoints: 160 Défis: 0 Message

Citer : Posté le 13/05/2019 07:47 | #


Si c'est de la ram, alors enlever les piles devrait resoudre le probleme non?

Ajouté le 14/05/2019 à 21:31 :
En comparant les sources de l'UI sur la 90 et sur la 35, je suis tombe sur un syscall de la 90, Bkey_SetAllFlags(0x80) (syscall 0x0EA1) qui permet semble-t-il de desactiver la touche built-in CATALOG. Est-ce que ca fonctionne aussi sur la 35? Ca serait bien pratique sur la 35 de faire apparaitre le catalogue de KhiCAS quand on tape cette touche...
LephenixnoirEn ligneAdministrateurPoints: 14375 Défis: 136 Message

Citer : Posté le 15/05/2019 06:16 | #


Je ne connais rien de tel, et une recherche dans le catalogue de SimLo ne m'indique rien. Mais il est peut-être nommé de façon exotique ou pas encore documenté...
ParisseHors ligneMembrePoints: 160 Défis: 0 Message

Citer : Posté le 15/05/2019 07:53 | #


Je viens d'essayer, malheureusement ca ne marche pas, ca affiche un ecran de reglages du module proba/stats.
CritorEn ligneAdministrateurPoints: 1232 Défis: 0 Message

Citer : Posté le 15/05/2019 12:09 | #


Donc pour rappel, sur la Graph 35+E II la zone réservée pour l'OS est beaucoup plus étendue, pour faire rentrer MicroPython sans doute.

La somme de contrôle terminant la zone de l'OS est écrite à 0x3AFFF8. La zone ainsi vérifiée va donc de 0x010000 à 0x3AFFF7.

Toute écriture dans cette zone fera donc échouer la somme de contrôle au prochain redémarrage de la machine, et donc déclenchera l'écran d'erreur bloquant OSUpdate.

Or, une écriture dans cette zone n'est pas si improbable que ça. Sur les anciennes Graph 35/75+E, la somme de contrôle finale de l'OS est à 0x24FFF7 et la mémoire de stockage commence à 0x270000.
Il suffit donc d'exécuter du vieux code conçu pour ces anciens modèles pour tout casser sur Graph 35+E II.

Après, je pense que la plupart des applis communautaires n'écrivent pas directement en mémoire Flash pour le stockage, mais passent par un syscall genre BFile.
C'est peut-être moins sûr pour les applis d'exploration système/matérielle genre Insight et compagnie.

Il se pourrait aussi que ce soit dans l'OS de Casio qu'il reste du vieux code normalement non appelé quelque part...
Et que dans le contexte de mon plantage de KhiCAS avec le pointeur d'exécution partant dans le décor ou je ne sais quoi, ce vieux code ait pu être appelé.

Ajouté le 15/05/2019 à 12:13 :
Autre hypothèse.
Peut-être que ce n'est pas du vieux code Graph 35/75+E écrivant dans la mémoire de stockage qui a tout cassé...
Mais du vieux code écrivant les backups RAM. Sur ces anciens modèles, ils sont alternativement écrits à 0x250000 et 0x260000, soit encore une fois en plein dans la zone qui casse tout sur Graph 35+E II.
ParisseHors ligneMembrePoints: 160 Défis: 0 Message

Citer : Posté le 15/05/2019 13:06 | #


Bon, en tout cas je vais attendre un peu avant d'essayer des scripts qui utilisent pas mal de ressources.
J'ai mis a jour l'addin pour 90 avec (presque) la meme interface que la 35.
LephenixnoirEn ligneAdministrateurPoints: 14375 Défis: 136 Message

Citer : Posté le 15/05/2019 20:45 | #


Je viens d'essayer, malheureusement ca ne marche pas, ca affiche un ecran de reglages du module proba/stats.

Ça ne risquait pas, les numéros de syscalls des Graph et Prizm ne sont pas du tout compatibles.

Après, je pense que la plupart des applis communautaires n'écrivent pas directement en mémoire Flash pour le stockage, mais passent par un syscall genre BFile.

Certes, sauf que maintenant que tu le dis, les appels de fonctions Bfile de fxlib ne font pas immédiatement appel aux syscalls, elles font des traitements avant. L'interface des syscalls est assez différence de celle de fxlib. Il y a peut-être quelque chose capable d'expliquer les problèmes de système de fichiers ici.
ParisseHors ligneMembrePoints: 160 Défis: 0 Message

Citer : Posté le 15/05/2019 21:09 | #


Je rencontre un autre probleme tres bizarre, mais sur la 90 cette fois. Lorsqu'on fait OFF/ON depuis KhiCAS avec l'interface de la 35 backportee sur la 90, cela provoque un crash (relativement important, il faut refaire les reglages). Par contre si on fait OFF/ON depuis le menu avec KhiCAS en appli active, le reboot ne se produit pas. Le meme cycle OFF/ON ne pose pas de problemes sur la 35.

Ajouté le 16/05/2019 à 13:03 :
Mon hypothese la plus vraissemblable c'est que OFF/ON ecrit dans le bas de la zone de RAM sur la 90 (0x8100000). J'essaie en changeant le debut de la RAM a 0x8101000 dans prizm.ld.


Ajouté le 18/05/2019 à 20:15 :
Mise a jour, le bug du OFF/ON semble corrige. Je viens aussi de corriger un bug d'allocation memoire lorsqu'on efface un niveau avec la touche backspace. On est maintenant proche de la version beta.
CritorEn ligneAdministrateurPoints: 1232 Défis: 0 Message

Citer : Posté le 19/05/2019 23:17 | #


Voilà, comme promis j'ai publié l'annonce-test de KhiCAS sur Graph 35+E II :
https://tiplanet.org/forum/viewtopic.php?p=242360#p242360

Sans doute pas aussi bien illustré que ça aurait pu vu que ma calculatrice est toujours HS, mais le cœur y est.

Et je trouvais stratégiquement que c'était mieux d'annoncer avant la sortie de la mise à jour Casio avec Python, normalement ce mercredi 22 mai.
ParisseHors ligneMembrePoints: 160 Défis: 0 Message

Citer : Posté le 20/05/2019 14:55 | #


J'ai cree un index pour les exemples de session https://www-fourier.ujf-grenoble.fr/~parisse/casio/sessions/index.html
Pages : Précédente1, 2, 3, 4, 5

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