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 - Autres questions


Index du Forum » Autres questions » Comment utiliser BFile avec gint ?
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Comment utiliser BFile avec gint ?

Posté le 01/07/2020 18:47

https://gitea.planet-casio.com/Lephenixnoir/gint/src/branch/master/include/gint/bfile.h
Bonjour, je n'ai pas compris du tout comment cette chose s'utilise.
Merci d'avance


Lephenixnoir En ligne Administrateur Points: 24227 Défis: 170 Message

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 :

void save_to_file(void)
{
    BFile_etc();
}

Et ensuite tu l'appelles avec gint_switch() :

gint_switch(save_to_file);

/* 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());

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 01/07/2020 19:04 | #


C'est un peu plus clair, merci.
ouais ouais
Yatis En ligne Membre Points: 580 Défis: 0 Message

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(?))

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