40 1 5MB
Initiation DSP Contenu : Description de la carte de développement Première application sur CCS Procédure d’installation de Code Composer Studio (CCS) Procédure d’installation de la librairie CSL du « pdk_C6678_1_1_2_6 » A) Description de la carte de développement : DSP C6000
BAHTAT Mounir
Le DSP qui sera utilisé dans ce TP est le TMS320C6678 à virgule fixe et flottante. Ce DSP qui se Le DSP qui sera utilisé dans ce TP est le tout dernier TMS320C6678 à virgule fixe ET flottante. Ce DSP qui se présente présente sous la forme d’un circuit intégré est fournie dans une carte de développement avec sous la d’autres périphériques et mémoires afin faciliter son test et utilisation. La carte se présente forme d’un circuit intégré est fournie dans une carte de développement avec d’autres périphériques et mémoires afin faciliter son test et utilisation. La carte se présente ainsi : ainsi :
On y trouve principalement le DSP, des interfaces pour les protocoles de communication hautOn y trouve le DSP, des interfaces les protocoles de communication haut-débit (Ethernet, débit principalement (Ethernet, HyperLink, AMC), de la pour mémoire dynamique de 512 Mo, un émulateur HyperLink, AMC), de de 512 Mo, un a objectifs pour rôlede de faire XSD100v1 qui laa mémoire pour rôle dynamique de faire communiquer un émulateur PC avec le XSD100v1 DSP pour qui des communiquer un PC avec le DSP pour des objectifs de débogage : chargement du code logiciel vers les mémoires débogage : chargement du code logiciel vers les mémoires pour exécution par les cœurs du pour exécution par les cœurs du DSP, mise en pause/marche de chacun des cœurs, accès direct aux mémoires, …
DSP, mise en pause/marche de chacun des cœurs, accès direct aux mémoires, ...
18 interrupteurs DIP-Switch permettent la configuration statique de la carte (horloge, protocole PCIe, …). Un B) Première application sur CCS émulateur externe à haute vitesse peut être connecté via 60-pin afin d’effectuer des opérations de débogage rapide. dans l’image ci-dessus transporte des lignes des protocoles de communication haut-débit tel que Le connecteur AMC RapidIO ou PCIe (débits jusqu’à 5 Gbps [giga bit per second]). Finalement des boutons poussoirs pour "reset" sont également disponibles, l’expression "warm reset" exprime une réinitialisation sans mettre hors tension des 1 composants. La configuration usine [par défaut] des DIP-Switch est la suivante :
L’outil de débogage qui va nous permettre d’écrire nos codes C ou ASM, leurs compilations ainsi que leurs chargements sur le DSP cible est : Code Composer Studio v5.5 de Texas Instruments 1) Lancer CCS :
Le workspace est le dossier de travail où seront placés tous les projets que vous allez créer. Eviter ces caractères : espace, é … dans le chemin au workspace Eviter aussi de le créer dans le Bureau Le mieux c’est l’endroit proposé ou dans la racine.
2
2) Etapes de création d’une application sous CCS Six étapes : a- Création du projet : la famille et le type générique du DSP choisi. b- Configuration de la cible (Target Configuration) c- Création du fichier de commande « .cmd » où on précise dans quel niveau mémoire (L1, L2, MSM, DDR3, ROM) sera chargé le programme de l'application. d- Développement de l’application e- Compilation f- Débogage et exécution du projet. 3) Première interface (étape 1)
Pour créer un nouveau projet, cliquer sur File à New à CCS Project
3
Il faut saisir ensuite le nom du projet et choisir la variante pour laquelle sera simuler notre application. Dans notre cas c’est le processeur : C6678 ou TMS320C6678 Choisir après le type de fichier :
4) Valider On est alors à la session « Edit »
4
Si la partie « Project Explorer » n’est pas affichée, aller dans le menu et cliquer sur : Viewà Project Explorer
5) Fichiers nécessaires pour créer une application Trois fichiers essentiels pour créer une application sur CCS : a- Le fichier de l’application, contenant la fonction main() avec un code en C ou C++ b- Un fichier pour la Configuration de la cible (Target Configuration). C’est un fichier avec l’extension «.ccxml » où il faut spécifier la cible à utiliser (simulateur ou émulateur). c- Fichier de commande (Linker) portant l’extension « .cmd » : fichier essentiel où le développeur précise les mémoires (L1, L2, MSM, DDR3, ROM) pour charger le programme de son application. Le premier fichier est déjà créé lors de la création du projet Les deux autres seront créer dans la suite : 6) Création du fichier de configuration de la cible (.ccxml) (étape 2)
5
Ensuite
Et Finish Dans la fenêtre suivante, on précise la cible et on « Save »
6
Notre première application Little Endian & Big Endian La différence entre "Little Endian" (LE) et "Big Endian" (BE) existe au niveau de la façon ! La différence entre "Little Endian" (LE) et "Big Endian" (BE) existe au d’adressage d’un octet au sein d’un mot (de 32-bit) : niveau de la façon d’adressage d’un octet au sein d’un mot (de 32-bit) :
Dans le cas de la simulation, on choisira « C6678 Device Cycle Approximate Simulator, Little ! La carte d’évaluation peut être configurer en LE ou en BE. Pour notre carte, nous avons choisi LE. Endian » Dans le cas de l’émulation, il faut sélectionner tout d’abord le type de la connexion à « Texas Instruments XDS100v1 USB Emulator », puis sélectionner TMS320C6678. 7) Création du fichier de configuration (Linker) pour la gestion de la mémoire (.cmd) (étape 3)
NAJOUI
7
visible dans votre projetcrée, avec votre projet CCS. Pour cela cliquez-droit votre fichier de configuration Il faut lier après, la configuration dans la fenêtre « Target Configurations » et ensuite Link File To Project -> Nom de votre projet :
VI. Implémentations
Notre première application Affichage d’un message ! Création du fichier de commande :
Une fois fait, le fichier sera ajouté et sera visible parmi les fichiers de votre projet. # File -> New -> Others -> File
Une autre à fournir au compilateur c’est quel niveau mémoire (L1, L2, MSM, DDR3, # information Sauvegarderimportante le fichier sous l’extension .cmd et placer le dans le même ROM) il fautrépertoire charger de le programme qu’on Cette dans information est à spécifier dans un fichier .cmd qui a cette votre projet (qui doitécrit. se trouver le workspace) structure : Le minimale ficher créé doit informer le compilateur dans quel niveau mémoire (L1, L2, MSM, ! La structure minimale du fichier CMD est la suivante :
il en faut charger le programme écrit. Il a cette forme minimale : -stack DDR3,ROM) Taille de la pile octets -stack
-heap
: Taille de la pile en octets
Taille d’allocations dynamiques en octets -heap : Taille d’allocations dynamiques en octets
MEMORY { } : Liste des mémoires disponibles sur le DSP cible MEMORY {} Liste des mémoires disponibles sur le DSP cible
SECTIONS { } : Le programme est découpé en sections pouvant être est mappées plusieurs SECTIONS { } Le programme découpéà en sectionsmémoires pouvant être mappées à plusieurs mémoires
La liste des mémoires disponibles sur TMS320C6678 est la suivante : Les mémoires disponibles sur le TMS320C6678 sont :
39
PlusieursPlusieurs sections sont prédéfinies pour un programme écrit en langage C ; quelques sections sections sont prédéfinies pour un programme écrit en langage C ; quelques sections importantes sont importantes sont décrites ci-dessous : décrites ci-dessous :
12
8
DSP C6000
BAHTAT Mounir
Un exemple de fichier de configuration .cmd est le suivant : Exemple à copier ensuite dans l’éditeur le texte :
-stack 0x5000 -heap 0x5000 -stack 0x5000
-heap 0x5000 MEMORY MEMORY { { L2SRAM :: oo == 0x00800000 0x00800000 ,, ll == 0x00080000 0x00080000 L2SRAM } } SECTIONS SECTIONS { { .text > L2SRAM .text >> L2SRAM L2SRAM .data .data > .cinit > L2SRAM L2SRAM .cinit >> L2SRAM L2SRAM .const .const > L2SRAM .cio > L2SRAM .cio > L2SRAM .far > L2SRAM .far >> L2SRAM .near L2SRAM .near > L2SRAM .fardata > L2SRAM .fardata> >L2SRAM L2SRAM .sysmem .sysmem > L2SRAM .stack > L2SRAM }.stack > L2SRAM }
8) Développement de l’application (étape 4) Dans la partie MEMORY les mémoires utilisées de la cible sont listées, avec leurs adresses d’origine (o) et taille (l)
L’application qui sera développée est l’affichage du message : Hello World
Dans la partie SECTIONS on affecte chacune des sections définies vers l’identifiant d’une mémoire
Dans le fichier main.c
Les valeurs saisies dans le fichier sont en format hexadécimal. On sauvegarde le fichier sous l’extension .cmd et on le place dans le même répertoire de notre projet [qui doit se trouver dans le workspace] Enfin, on se propose d’exécuter le programme de test suivant : #include void main(void) { printf("c66x test end\n"); }
Faites Project -> Build Project, puis Run -> Debug
9
9) Compilation (Build) (étape 5) Pour compiler on peut une des opérations suivantes : a- Clic droit sur le projet dans l’explorateur et on clique sur Build projct b- sélectionner le projet puis aller au menu et faire : Projetà Build project c- clic sur l’icône du menu :
10
11
Dans la partie console de la fenêtre et après chaque compilation, on aura le résultat de l’aboutissement de la compilation qui sera, en cas de succès, la génération d’un fichier binaire avec l’extension « .out », c’est le fichier qui sera charger sur la cible. Il sera mis dans le dossier « Binaires » du projet (voir 2ème figure de la page 14). S’il y en a des erreurs, ce fichier ne sera pas généré, dans ce cas la liste des erreurs et des avertissements seront affichés dans la parti Problems de la fenêtre. Au cas où ces parties de fenêtre ne sont pas visible, toujours aller à Viewà console ou Viewà Problems. 10) Débogage de l’application (étape 6) Pour la simulation l’exécution et le débogage de l’application, sélectionner la projet, ensuite aller dans le menu et : RunàDebug ou taper F11 ou clic sur l’icône Le C6678 contient 8 Cores. On peut alors choisir un ou plusieurs Cores sur lesquelles sera exécutée notre application.
Valider, On est à la session « Debug » La fenêtre de débogage :
12
13
Pour exécuter l’application (Resume), on choisit d’abord le Core puis on clique sur l’icône ou on tape F8
14
Le résultat est affiché dans la partie console On peut choisir un autre Core pour ré-exécuter l’application.
15
Dans la fenêtre de débogage on peut aussi : -
Visualiser la traduction en assembleur du code C (ViewàDisassemly) Voir le contenu des registres du Core Les valeurs des variables et les expressions L’évolution de ces valeurs, du contenu des registres et l’évolution de l’exécution du code (en C ou en assembleur) en cas de débogage.
16
C. Procédure d’installation de Code Composer Studio v5.5 Code Composer Studio v5.5 de TI est un IDE permettant de : - Coder en C ou ASM et compiler - Charger l’application sur la cible et debuger C'est un outil puissant et gratuit, capable de faire l’émulation (quand on dispose d’une carte d’évaluation) ou la simulation sur simulateur. Ouvrir le dossier d’installation après décompression
1) Clic droit sur le setup (….exe) puis choisir Propriètés à Compatibilité a- Changer le mode de compatibilité à Windows 7 ou Vista pour ceux qui ont la version Windows 10 ou 8 b- Cocher « exécuter ce programme en tant qu’administrateur »
2) Une fois le Setup est lancé cliquer sur oui
17
3) Accepter le contrat de Licence
4) Le mieux est de l’installer dans une racine (disque C ou D …). Eviter les caractères : espace, é, … dans le chemin du dossier de destination.
5) Choix des composantes à utiliser : Choisir « Custom »
6) Les architectures à installer : que C6000 Single et Multi-core DSP
18
7) Rien à changer là
8) Emulateurs à installer : TI Emulators et XDS100 Emulators.
19
9) Pour composantes choisies il faudrait environ un peu plus que 2GB d’espace mémoire.
Important : Pendant l’installation veuillez à accepter et valider tous les messages de demande de confirmation A la fin de l’installation vous aurez une fenêtre avec plusieurs choix concernant la licence. Cochez alors : Free License. Si vous avez raté ce choix, il faut cliquer dans le menu sur Help à Code composer studio Licensing Information Cliquez ensuite sur l’onglet « Uprade » puis sur le bouton « Launch License Setup… » Cocher enfin « Free License » et valider. 20
D) Procédure d’installation de la librairie CSL du « pdk_C6678_1_1_2_6 » La Bibliothèques CSL (Chip Support Library) proposées par TI pour la gestion des périphériques internes de leurs familles de processeurs, en outre, le Timer nécessaire pour compter le nombre de cycles. Cette bibliothèque se trouve dans le kit pdk_C6678 (Plateform Development Kit). Après installation, CSL est accessible depuis le répertoire suivant : C:\ti\ pdk_C6678_1_1_2_6\packages\ti\csl\ Les étapes d’installation :
21
Le dossier d’installation sera le même où est installé CCS Choix de librairies et de modules à installer : Pour le moment n’installez que le PDK_6678
Ensuite validez pour compléter l’installation. Au redémarrage de CCS, vous aurez un message vous invitant à sélectionner les modules installés que vous voulez y intégrer. Vous cochez alors la case du PDK_6678 puis valider par « Finish ». 22
23