Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » SDK gcc pour addin 35e2/portage KhiCAS
ParisseHors ligneMembrePoints: 174 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: 174 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: 15231 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: 174 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: 1263 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: 174 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: 15231 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: 174 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: 1263 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: 174 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


Ajouté le 29/05/2019 à 16:13 :
J'ai a peu pres mis a jour la doc pour la 35 et la 90, ainsi que les addins:
https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicasio.html
La principale nouvelle fonctionnalite, c'est de pouvoir modifier un niveau de l'historique des calculs, les niveaux en-dessous sont alors reevalues.
On peut d'ailleurs creer des curseurs pour faire varier des parametres de maniere plus efficace (assistant de creation dans le menu F6 Parameter), les calculs et les graphes qui suivent sont alors reactualises si on selectionne le niveau contenant la commande assume(...) en tapant sur la touche + ou -. L'exemple de session https://www-fourier.ujf-grenoble.fr/~parisse/casio/sessions/quad.xw illustre ce principe, c'est une version KhiCAS de l'applet quadratic explorer des HP.
LephenixnoirEn ligneAdministrateurPoints: 15231 Défis: 136 Message

Citer : Posté le 29/05/2019 16:22 | #


Eh bien, c'est complet ! On n'hésitera pas à y rediriger les questions portant sur l'utilisation de l'application. :o

Curiosité de ma part : tu utilises quoi comme affichage naturel en fin de compte ? J'ai regardé dans les sources (giac35.tgz ; même pas sûr que ce soit le bon fichier ), mais je n'arrive pas à être certain.
ParisseHors ligneMembrePoints: 174 Défis: 0 Message

Citer : Posté le 29/05/2019 17:21 | #


C'est bien la bonne archive, il faut regarder dans kdisplay.cc, ca utilise mon editeur d'expressions ecrit pour Xcas desktop.
Sinon, a propos de SDK, j'ai mis a jour l'archive pour la 90, et verifie que ca compilait avec gcc 8.2 sur une fresh ubuntu 18. Par contre, pour l'archive pour la 35, ca compile bien avec gcc 8.2 mais apres l'addin plante (peut-etre parce que les libs devraient aussi etre recompilees?) et j'ai du revenir a une copie de mon install de gcc ([ur]https://www-fourier.ujf-grenoble.fr/~parisse/casio/sh3eb-elf.tar.gz[/url]).
LephenixnoirEn ligneAdministrateurPoints: 15231 Défis: 136 Message

Citer : Posté le 29/05/2019 17:25 | #


Okay, merci ! Je suis en train de travailler sérieusement sur un affichage 2D plus propre et je voulais savoir si ça te concernait. Du coup non.

Je pense que ça devrait marcher parce que j'utilise bien un 8.2.0 sous SH3 et un 8.3.0 sous SH4. Si tu as des libs autres que fxlib, c'est toujours plus safe de recompiler ; le reste devrait aller tout seul.
Pages : Précédente1, 2, 3, 4, 5

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