L' électron en mouvement   



Une Introduction aux DSP





4.4. Structure logicielle de développement



Les deux principales méthodes pour écrire un programme DSP consistent à utiliser un assembleur dédié ou un langage de haut niveau.


Un langage de haut niveau comme le langage C présente l’avantage d’être connu par la plupart des ingénieurs amenés à travailler dans le domaine du traitement du numérique du signal. Un programme DSP écrit en langage C peut donc être compris relativement facilement par un grand nombre de personnes, sans qu’elles aient besoin de connaître précisément le DSP cible. De plus, la portabilité du langage C permet de d’utiliser un programme sur des DSP fabriqués par différents constructeurs.


L'utilisation d’un assembleur pour programmer un DSP n’en demeure pas moins intéressante. Plus que pour un microprocesseur classique, les performances de traitement sont cruciales, et l’assembleur est le seul langage permettant d’utiliser totalement les possibilités spécifiques de tel ou tel DSP. Par exemple, un algorithme de codage LPC est ainsi estimé 1,5 fois plus rapide (1) quand il est implémenté en assembleur plutôt qu’en C. Même lorsqu’ils sont spécialement optimisés pour le DSP cible, les compilateurs C ne permettent pas de générer un programme ayant les performances d’un code bien écrit en assembleur par un développeur confirmé.


De fait, un bon programme DSP est donc presque toujours écrit en langage C, avec ses portions de codes critiques écrites en assembleur. Il est généralement admis que 5% de code assembleur et 95% de code C constitue un bon compromis pour obtenir un logiciel performant (2). La figure 11 présente l’architecture d’un système de développement de logiciels pour DSP.





La souplesse du système de développement permet d’ajouter facilement des portions de programmes assembleurs (assemblage « en ligne », ou librairie de fonctions assembleurs) à un logiciel écrit en C. Ce mélange est recommandé par les constructeurs, ainsi la plupart des exemples de traitements numériques sont donnés en assembleur (cas de la figure 4), alors que les exemples de mise en œuvre du DSP sont donnés en C. Les outils de débogage acceptent indifféremment l’un, l’autre, ou le mélange des deux langages.


Certaines sociétés indépendantes des constructeurs fournissent des librairies de fonctions de traitements numériques du signal prêtes à l’emploi. Le langage C facilite l’intégration des librairies, voire même la mise en œuvre de véritables systèmes d’exploitations temps réels et multitâche, par exemple le système SPOX de Spectron Microsystems.


Bien qu’étant le plus répandu, le langage C n’est pas le seul utilisable pour programmer un DSP, il existe quelques rares compilateurs ADA, FORTRAN et PASCAL pour DSP.


NDR (1) et (2) : Informations provenant de la bibliographie [3], page 224. Ces chiffres permettent plus de fixer un ordre de grandeur que de dégager une règle absolue en la matière.




Page Principale       Index Global du Site       Page Precedente       Page Superieure       Page Suivante

Page Principale    Index Site   Page Précédente   Page Supérieure  Page Suivante

Site créé et maintenu par laurent.battista@laposte.net

© 1998 -2005 - Laurent Battista