SCPCDLe 04/12/2021 à 15:04
- Il n'y a pas de buffer I2S, ou disons qu'il est de profondeur = 1.
la valeur écrite est celle utilisée pour la sérialisation, ie : si tu modifies la valeur dans le registre durant le transfert au DAC ça influera directement la sortie audio.
Il faut donc écrire dans les registres I2S le plus vite possible après le démarrage d'une interruption I2S.
- Lors d'une interruption, le DSP force l'utilisation de la bank0 de registres.
Je ne sais pas comment est fait U235 vu que le code n'est pas publique, mais en général le programmeur réserve les registres bank0 qu'il a besoin pour chaque niveau d'interruption afin d'éviter de faire des sauvegardes / restauration de registres.
La bank1 est généralement utilisée pour le code principale ou pour stoker des valeurs.
Le DSP n’exécute pas une nouvelle interruption si il est déjà dans une routine d'interruptions : il faut explicitement indiqué au DSP que l'interruption est traité pour qu'il exécute une autre interruption potentiellement en attente.
Donc oui, si tu as des interruptions, il faut que les routines soient les plus courtes possibles.
En général il ne devrait pas y avoir de problème étant données que le DSP est très rapide et que l'I2S est l'interruption la plus prioritaire.