-
Cours sur DSP
Bonjour,
Je débute la programmation sur DSP TI et j'aurais aimé savoir si vous connaissiez des livres ou ebooks pouvant m'aider à apprendre à programmer, mapper la mémoire and co en C sur DSP. Je n'ai pas su trouver de cours sur DSP sur ce site, peut-être avez-vous un lien intéressant ? Merci d'avance
-
Bonjour,
Le mapping mémoire d'un DSP varie d'un modèle à l'autre.
Généralement sur le site de TI, tu trouveras un chapitre entier sur le mapping mémoire du DSP. (flash interne, différente zone de RAM interne)
Dans les codes exemples fournis par TI, tu retrouveras des entête à copier dans ton projet.
Dans ces fichiers tu trouveras un mapping exhaustif des registres pour adresser les principales fonction du DSP. (configuration et déclenchement de compteurs, de DAC ou d'ADC, de communications SPI, CAN ...)
Pour les éléments propriétaires externe au DSP, tu pourras t'appuyer les mots clés standard du langage C :
- voir structure et union (utile pour manipuler les bits individuellement)
- voir le mot clé volatile pour éviter les optimisations malheureuse sur des éléments externe au DSP. voir FAQ volatile
- biensur les pointeurs
- l'allocation de mémoire par variable automatique dans la pile et malloc/free pour allocation dans le tas.
A noter que dans le DSP tu gère toi même les zones mémoires.
Donc tu décide précisément qu'est ce qui se trouve où (pile, tas, code, zone flash, constantes ...)
Enfin dans le cas où une optimisation de vitesse d'exécution est nécessaires, il est même possible de copier du code, et des constantes en RAM interne du DSP.
Enfin si tu commences sur les DSP, TI propose des kit de développement avec une carte intégrant divers DSP et des pins d'I/O pour se faire la main.
A+
-
Merci pour ces précisions. En fait je démarre avec un kit et j'ai vu qqes exemples dont je copie certaine partie. Mais j'aimerai comprendre ces parties en profondeur et savoir d'où viennent les différentes instructions. Car par exemple pour ce qui est de la mémoire, j'ai des bouts de codes pré-définis avec des sections, des pages...Je peux clairement les réutiliser mais je trouve intéressant de me familiariser avec le concept car ca m'est totalement étranger. Je vais regarder du côté des docs TI pour la mémoire même si je les trouve pratiques et sans doute suffisantes pour mes développements, j'aurais vraiment aimé avoir un cours en profondeur sur la pagination, la façon précise dont les sections se créent...Merci encore chef pour tes liens et précisions ;) Bonne soirée.
-
Re.
Pour l'utilisation des librairies TI, généralement il y a un fichier par fonction du DSP. (ADC, Compteur ....)
Le mieux (pour les corrections et mise à jour), est d'intégrer le fichier dans son ensemble dans ton projet, sans le modifier.
Puis d'appeler les fonctions et structures de ce fichier depuis tes propres fichiers.
Le seul cas où il peut être nécessaire de prendre uniquement une partie du code, est lorsque tu as des problèmes pour stocker l'ensemble du code en Flash.
Pour ce qui est de la gestion de la mémoire, des définitions des sections, des directives de compilation et de liens liés à la mémoire,
tu peux regarder Memory Allocation Techniques in Systems.
Si les noms des sections par défaut sont les même, il faudra faire référence à la doc de ton modèle de DSP pour plus de précision.
Tu peu aussi voir dans les cours et tutoriels pour apprendre le langage C.
A+
-
Nickel ! Merci pour le doc TI sur la mémoire ca va m'aider à comprendre en profondeur. Pour les librairies je les ai coupé en portions utiles, ce qui est clair est pas terrible pour les corrections et MAJ, mais je ne suis encore qu'au stade des entrainements, je me fais les dents sur ce que je trouve en tournant tout dans tous les sens ^^ Mais pour l'instant je me confronte aux problèmes pratiques d'affichage de ce que je fais car j'ai du mal ne serait-ce qu'à visualiser des codes exemples tout près tels que les hello_world , je suis donc encore au niveau en dessous de la mer --' Bonne soirée à toi et merci ;)
-
Si ton problème est résolu car ces documents te suffisent, merci de cliquer sur le bouton :resolu:
De plus, si tu as des liens intéressants à rajouter aux précédents, n'hésite pas à les poster.