J'ai rapidement regardé, mais y a un truc que je ne comprend pas en regardant le code désassemblé :
J'ai l'impression que tu utilises le JPIT1 et donc l'interrupts Timer 0 pour écrire dans les registre LTXD/RTXD de la sortie audio ?
Je ne vois pas d'init de la SCLK non plus, du coup je ne comprends pas comment le son peux être joué à la bonne fréquence ni comment ça peut être correctement synchrone.

Normalement on initialise le SCLK et on utilise le I2S interrupt pour avoir les données parfaitement synchrone entre la lecture des valeurs dans le registre et l’écriture.
Du coup je suis un peut étonné de la méthode et que ça puisse fonctionner sur une vrai jag.

Ça expliquerai pourquoi le son se détériore avec le temps, mais ça n'explique pas le crash par contre.

je suis intéressé pour avoir le code source pour voir & comprendre un peut plus globalement (et facilement) le code.
