TP5 Enoncé DMA MEM MEM
objectif Utiliser un canal DMA pour faire un transfert d’une zone mémoire vers une autre zone mémoire On fera le transfert sans interruption (polling sur DMA_done) puis le transfert avec interruption
Travail à effectuer Etudier le chapitre eDMA du user manual (U.M.) Utiliser le canal 4 du eDMA_A pour faire le transfert d’un texte: SourceData[] = {"Hello World\r"}; vers l’adresse en SRAM: 0x On vérifiera le transfert dans la fenêtre mémoire du debugger Le premier programme sera fait en testant le « done » Le deuxième programme gérera l’IT fin de major loop
Remarque Il faut bien comprendre la notion de minor loop et de major loop (figure du U.M.) Minor loop: ce qui peut être fait sans besoin de réarmer le transfert –Dans le cas d’un transfert mémoire à mémoire, on peut utiliser minor loop de la taille du transfert car la mémoire est toujours prête –Dans le cas d’un périphérique la minor loop doit être de la taille d’un transfert élémentaire (ex 1 octet pour le sérialiseur) car il faudra attendre entre 2 transferts que le périphérique soit prêt
Remarque Pour éviter les problèmes rencontrés avec le compilateur pour les registres de type écriture d’un 1 pour faire le « clear » des possibilités hardware on été crées à cet effet. C’est a travers des registres spécifiques que l’on effectuera des« set » et des « clear » de certains registres.
Registres spéciaux (1) ERQRH et ERQRL accessibles à travers SERQR pour le set et CERQR pour le clear d’un bit de request EEIRH et EEIRL accessibles à travers SEEIR pour le set et CEEIR pour le clear d’un bit d’erreur IRQRH et IRQRL accessibles à travers de CIRQ pour le clear d’un bit d’interrupt request ERH et ERL accessibles a travers CER pour le clear d’un bit erreur
Accès au TCD De la même façon on peut accéder àux 2 bits START et DONE d’un TCD a travers des registres spéciaux SSBR permet de positionner le bit de start d’un TCD CDSBR permet de resetter le bit de done d’un TCD
Principaux points à étudier pour le TP Le TCD (à resetter au démarrage, puis à initialiser) Le registre de contrôle du bloc DMA Rechercher l’adresse du TCD du canal 4 du DMA_A Le vecteur d’IT du canal 4 du DMA_A Initialiser les IT Dans le programme d’IT resetter la cause de l’IT