Posté le 01/07/2020 18:47
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 111 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
Citer : Posté le 01/07/2020 18:52 | #
Oh ! Euh... comme toute API de système de fichiers ?
Si tu veux un exemple, regarde dans gintctl. Y'a un peu de bruit autour mais les quelques appels à BFile montrent comme écrire dans un fichier.
La seule chose importante à savoir c'est qu'on ne peut pas utiliser BFile dans gint, donc il faut quitter gint temporairement pour faire ça. La fonction qui fait ça est gint_switch().
D'abord tu définis ta fonction qui utilise BFile mais n'utilise pas de fonctions bas-niveau de gint :
{
BFile_etc();
}
Et ensuite tu l'appelles avec gint_switch() :
/* Faux, ne quitte pas gint, crash quasi-assuré */
save_to_file();
/* Faux aussi, on prend bien la fonction en paramètre (ne compile pas) */
gint_switch(save_to_file());
Citer : Posté le 01/07/2020 19:04 | #
C'est un peu plus clair, merci.
Citer : Posté le 01/07/2020 19:23 | #
Quelque petite précision avec les primitives Bfile qui écrivent dans la flash (je pense notamment a Bfile_WriteFile()):
* La taille du buffer doit être un multiple de 2
* L'adresse du buffer dois être multiple de 2 (pour forcer le truc, déclare un tableau de uint16_t)
Sinon, le syscall échouera (voir plantera la calculatrice dans le pire des cas) car Casio check manuellement ces deux paramètres avant de passer a l'écriture.
@note: ce n'est pas peut-être (probablement) plus le cas pour les calculatrices récentes mais on ne sait jamais (c'est une sombre histoire de configuration de la flash venant de Casio histoire de gagner en rapidité d'écriture(?))