Posté le 27/10/2020 17:17
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 291 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 27/10/2020 17:32 | #
Semble remonter à 1c7b135.
Citer : Posté le 27/10/2020 17:45 | #
je connais git et je sans que c'est un commit,
mais je vois pas ou tu veux en venir
Citer : Posté le 27/10/2020 17:49 | #
C'est pour moi. J'ai fait un bisect et le bug a été introduit par ce commit. Donc maintenant je vais voir ce qui a pu changer à ce moment-là.
Citer : Posté le 27/10/2020 17:51 | #
ok mais je porrais pas continuer mon projet
mais c'est la graph 35+E II le problème ?
Ajouté le 27/10/2020 à 17:52 :
je présice mais le bug est apparut quand j'ai mis les twaits
Citer : Posté le 28/10/2020 10:12 | #
En effet tant que le bug existe il bloque ton code. Mais rassure-toi, d'une part ça ne se joue pas à grand-chose, d'autre part j'essaie de réagir vite justement pour pas vous bloquer.
J'ai soudainement trouvé le problème après être allé dormir hier. C'est pas quand twaits est apparu mais quand getkey() a disparu que le bug s'est produit. Et ce n'est pas immédiat, si tu fais très attention et que tu lances l'add-in en ne touchant le clavier qu'une fraction de seconde tu peux voir que l'add-in marche jusqu'à ce que tu appuies sur une touche, et là ça crashe.
Mais prenons les choses dans l'ordre, j'ai poussé un correctif sur la branche dev qui résout le crash. Pour l'installer :
• Tire la branche dev de gint (git checkout dev) (a priori tu es déjà dessus)
• Réinstalle gint (make install)
• Relinke ton add-in (make -B)
En fait ce que le commit coupable fait c'est qu'il sépare le driver du contrôleur d'interruptions (INTC) du noyau. Ça veut dire que le noyau de gint et le code qui initialise les interruptions (notamment ne désactivant celles que gint ne gère pas) sont dans des fichiers différents.
A priori pas de problème, sauf que le noyau ne fait pas l'initialisation de l'INTC explicitement, il initialise juste tous les drivers qui sont dans une table remplie par le linker selon ce dont tu as besoin. Par exemple si tu utilises les timers mais pas la RTC, la table listera le driver timer mais pas le driver RTC, et gint n'initialisera pas la RTC. Le linker ne liste vraiment que les drivers que tu utilises.
Sauf que voilà, si ton code n'utilise pas le driver INTC alors il ne sera pas inclus. Mais contrairement aux autres le driver INTC *doit* être inclus pour que gint marche (sinon l'interruption clavier vient faire crasher l'add-in), il n'est pas dispensable. Comme toutes les fonctions du clavier utilisent les timers qui utilisent l'INTC, il suffit d'appeler getkey() ou une autre fonction clavier pour que le driver INTC soit là et que le bug n'apparaisse pas. C'est pour ça que je ne l'avais pas remarqué.
Par contre dès que ton code ne fait vraiment plus rien, le driver n'est plus inclus et l'application crashe. Voilà voilà pour cette petite histoire. Le correctif ne fait qu'ajouter une dépendance factice de kernel/kernel.c au driver de l'INTC.
Citer : Posté le 28/10/2020 11:07 | # | Fichier joint
ok, merci
pendant que j'étais bloqué j'ai commencé le menu et les ressources
Citer : Posté le 28/10/2020 11:54 | #
Mais euh pourquoi tu postes tout ça ? Tu lâches des images comme ça, y'a aucune explication dans tes messages, aucune majuscule, aucune ponctuation, et ça sert à rien. Si y'avais pas un cadre (ce topic) pour justifier qu'il y a peut-être une raison valide, tous ces messages auraient été supprimés pour spam depuis un bon moment. x)
Voilà quelques conseils de plus, et par « conseils » j'entends ce forum (moi y compris) va t'ignorer ou supprimer chaque fois que tu postes en les ignorant :
• Majuscules et ponctuations. Y'a des correcteurs grammaticaux partout, c'est pas négociable.
• Ne double-poste jamais sauf si tu as des nouvelles informations conséquentes ou une grosse rectification à faire sur un message précédent.
• Ne pose pas de questions si tu n'accompagnes pas tes questions de preuves concrètes que tu as cherché avant ce que tu pouvais faire.
• Ne poste pas un message avant d'avoir bien vérifié que tu avais tout dit (pour pas double-post 10 secondes après).
• Et on n'apprécie pas les GIFs flashy en avatar.
Je t'ai défendu précédemment mais ma patience aussi a des limites, donc fais des efforts de ton côté ou on arrêtera d'en faire du nôtre.