- Site Web à vocation éducationnel de...

35
Familiarisation avec la carte multimédia Microblaze et EDK. Remerciements Les concepteurs de ce document aimeraient remercier Xilinx pour ses documents, ses logiciels et son matériel. Introduction générale Ce document est divisé en trois parties. La documentation technique de la carte Multimédia de Xilinx est sur le CD-ROM livré avec, dans le répertoire c:\CMC ou directement sur le site de Xilinx . L’environnement utilisé est l’outil EDK de Xilinx, à partir de MicroBlaze processeur «soft» RISC 32bits implanté dans la famille de FPGA Virtex-II Pro Buts de ce document Partie I UART - Utiliser les outils de Xilinx pour créer et déboguer un système de base Microblaze. Ce système contiendra un UPC Microblaze, une mémoire et un UART. - Comprendre les concepts de base du EDK qui inclut des outils tel que Xilinx Platform Studio (XPS) et IP de processeurs. - Explorer quelques concepts utilisés dans l’environnement des processeurs embarqués comme l’endroit où un programme est chargé, qu’est-ce qui est rajouté à un programme lorsqu’il roule et comment interagir avec ce programme.

Transcript of - Site Web à vocation éducationnel de...

Page 1: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Familiarisation avec la carte multimédia Microblaze et EDK.

Remerciements

Les concepteurs de ce document aimeraient remercier Xilinx pour ses documents, ses logiciels et son matériel.

Introduction générale

Ce document est divisé en trois parties.

La documentation technique de la carte Multimédia de Xilinx est sur le CD-ROM livré avec, dans le répertoire c:\CMC ou directement sur le site de Xilinx.

L’environnement utilisé est l’outil EDK de Xilinx, à partir de MicroBlaze processeur «soft» RISC 32bits implanté dans la famille de FPGA Virtex-II Pro

Buts de ce document

Partie I UART

- Utiliser les outils de Xilinx pour créer et déboguer un système de base Microblaze. Ce système contiendra un UPC Microblaze, une mémoire et un UART.

- Comprendre les concepts de base du EDK qui inclut des outils tel que Xilinx Platform Studio (XPS) et IP de processeurs.

- Explorer quelques concepts utilisés dans l’environnement des processeurs embarqués comme l’endroit où un programme est chargé, qu’est-ce qui est rajouté à un programme lorsqu’il roule et comment interagir avec ce programme.

- Utiliser des logiciels de déboguage dans cet environnement.- Savoir comment retrouver la documentation.

Partie II LED

- Utiliser les outils de Xilinx pour ajouter au module de la première partie. Le but primaire de la deuxième partie est d’insérer des noyaux (IP) dans le système sans l’assistant Base System Builder.

- Le noyau GPIO sera utilisé avec son pilote matériel. Le GPIO sera ajouté au projet pour pouvoir allumer et éteindre un DEL. Vous pourrez le manipuler avec XMD ou dans votre programme.

- Introduire l’utilisateur à la structure de pilotes matériel.

Page 2: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Partie III Lecteur de mp3

- Initier l’utilisateur au téléchargement de fichiers sur la carte multimédia.- Initier l’utilisateur à l’utilisation de GPIO et de FIFO pour communiquer avec le

périphérique audio LM4549.

Familiarisation avec la carte multimédia Microblaze et EDK Page 2/27

Page 3: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Partie I

Matériel nécessaire

- Avoir accès à EDK 6.3i et la carte de développement multimédia Microblaze de Xilinx.

Introduction

Créer un système pour la première fois peut être un travail fastidieux, mais avec le Base System Builder, un outil d’assistance de XPS, vous pouvez le faire rapidement et facilement.XPS utilise les outils fournis avec ISE pour synthétiser, placer et router la logique dans le matériel. Des outils GNU sont fournis avec le EDK et utilisés à l’intérieur de XPS pour concevoir le logiciel pour le système embarqué Microblaze.

Les modules du système Microblaze, utilisés dans cette partie sont les suivantes :

Microblaze Contrôleur LMB pour BRAM BRAM BUS OPB UART OPB MDM OPB

Familiarisation avec la carte multimédia Microblaze et EDK Page 3/27

Page 4: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Procédure

Cette partie contient neuf étapes.

Étape I : Connexion de la carte

Suivre les instructions de l’annexe D.Pour ce projet, installez un câble RS-232 selon l’instruction 7 de l’annexe D.

Étape II : Utilisation du Base System Builder de XPS

Créez un répertoire famedk1 pour votre projet et insérez le fichier suivant dans ce répertoire.

int main(void){ int compteur;

while(1) { compteur ++; xil_printf("Compte = %d\r\n", compteur); }}

Nommez-le compteur1.c.

Dans ce code, la fonction xil_printf est semblable à printf en C, mais est plus petite en taille et limitée en fonctionnalité. Il n’imprime pas nombres à virgule flottante ni les chiffres de 64 bits.

Démarrez XPS

Sélectionnez Base System Builder

Familiarisation avec la carte multimédia Microblaze et EDK Page 4/27

Page 5: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Indiquez au logiciel le répertoire famedk1 et cliquez Open.

Cliquez sur OK dans la fenêtre Create New Project. Une fenêtre d’accueil Base System Builder s’ouvrira.

Sélectionnez I would like to create a new design et cliquez sur Next.

Choisissez Xilinx, Virtex II Multimedia FF896 board, revision I et cliquez sur Next.

Familiarisation avec la carte multimédia Microblaze et EDK Page 5/27

Page 6: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Microblaze est sélectionné par défaut ; cliquez sur Next.

Vous devriez obtenir la fenêtre suivante :

Reference Clock Frequency = Processor-Bus Clock Frequency = 27.00MHzSélectionnez XMD with S/W debug stub et 64k de Local Data and Instruction Memory.Cette option utilise un programme de déboguage résident dans le ROM.

Cliquez sur Next.

Familiarisation avec la carte multimédia Microblaze et EDK Page 6/27

Page 7: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Décochez tout sauf le RS-232 et cliquez sur Next deux fois.

Décochez Generate Sample Application and Linker Script et cliquez sur Next.

Familiarisation avec la carte multimédia Microblaze et EDK Page 7/27

Page 8: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Cliquez sur Generate et ensuite sur Finish.

À ce moment, XPS a généré un fichier de contraintes UCF, un fichier projet (system.xmp), un fichier de spécification de matériel (system.mhs) et un fichier de configuration logiciel (system.mss) dans votre répertoire.

Étape III : Implémentation du matériel

Sélectionnez Tools – Generate Bitstream

Ceci peut prendre environ 2 minutes…

Un fichier system.bit sera créé dans le sous répertoire implementation de votre projet.

Création du logiciel à rouler sur le processeur

Dans la fenêtre de projet, sous l’onglet System, double-cliquez sur le processeur microblaze_0.

Familiarisation avec la carte multimédia Microblaze et EDK Page 8/27

Page 9: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Sous l’onglet Library/OS Parameters, changez Current Value de stdin et stdout à RS-232.

Dans la fenêtre de projet, sous l’onglet Applications, double-cliquez sur Software Projects.

Entrez mb0_default comme Project Name et cliquez sur OK.

Dans la fenêtre de projet, sous l’onglet Applications, cliquez avec le bouton droit de la souris sur Default :microblaze_0_xmdstub et choisissez Mark to Initialize BRAMs dans le menu contextuel.

Dans la fenêtre de projet, sous l’onglet Applications, double-cliquez sur mb0_default.

Familiarisation avec la carte multimédia Microblaze et EDK Page 9/27

Page 10: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Faites les changements indiqués.

Familiarisation avec la carte multimédia Microblaze et EDK Page 10/27

Page 11: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Cliquez avec le bouton droit de la souris sur sources sous Project : mb0_default et allez chercher le fichier lab1.c dans le sous répertoire code du projet.

Vous devriez voir apparaître le fichier dans Sources.

Étape IV : Compilation des pilotes de matériel et du fichier de programmation

Sélectionnez Tools – Generate Libraries and BSPs dans le menu. Ceci fera compiler le code pour les pilotes de matériel dans une librairie utilisable par l’éditeur de liens.

Sélectionnez Tools – Build All User Applications. Ceci compilera le code lab1.c et effectuera l’édition des liens. Un fichier .elf exécutable est généré dans le répertoire du projet. C’est l’exécutable du moniteur ROM.

Sélectionnez Tools – Update Bitstream. Ceci insérera l’exécutable .ELF dans le fichier de configuration matériel pour que les deux puissent être téléchargés sur le FPGA.

Familiarisation avec la carte multimédia Microblaze et EDK Page 11/27

Page 12: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Étape V : Autres outils GNU

Sélectionnez Tools – Xygwin shell dans le menu. Une console Bash s’ouvrira.

Allez dans le répertoire mb0_default et regardez son contenu. Il devrait contenir le fichier executable.elf que vous venez de créer.

Tapez mb-objdump –d executable.elf > desassemble.txt

Ouvrez le fichier desassemble.txt dans un éditeur de text et regardez le code. Ce fichier indique le code machine dans la mémoire.

Quelle est l’adresse de la fonction _start ?

Quelle est l’adresse de la fonction main ? Ce dernier correspond à la fonction main du programme c.

Pourquoi pensez-vous que l’éditeur de liens a placé le code à 0x800 au lieu de 0x000 ?Pouvez vous voir où ce trouve le pointeur de la pile ? Plusieurs choses se passent avant l’exécution de votre programme, notamment l’exécution d’un module qui spécifie l’endroit du pointeur de la pile, etc. Les variables non initialisés sont mis à zéro avant l’exécution.

Désassemblez xmdstub.elf. Quelle est l’adresse de la fonction _start ?

Où pensez-vous pouvoir changer l’adresse de départ du programme dans XPS ?Ceci peut être utile lorsque vous avez plusieurs blocs de mémoire à initialiser.

Étape VI : Téléchargement du fichier de configuration matériel sur le FPGA

Démarrez le logiciel Hyperterminal avec le port RS-232 et spécifiez 9600, 8, N, 1, matériel. Nommez la connexion XILINXPORT et sauvegardez-là pour utilisation ultérieure.

Choisissez le Port COM1 (assurez-vous que c’est bien celui auquel votre câble RS-232 est branché.)

Familiarisation avec la carte multimédia Microblaze et EDK Page 12/27

Page 13: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Assurez-vous que la carte est mise sous tension et que la lumière sur le Parallel Cable IV est verte. Sélectionnez Tools – Download dans le menu. Ceci téléchargera le fichier de données sur le FPGA. Le moniteur ROM exécutera une fois ceci terminé et le DEL Done sur la carte deviendra vert.

Étape VII : Préparation au déboguage

Sélectionnez Options – XMD Debug Options dans le menu.

Cochez Stub dans Connection Type et cliquez sur Save.Sélectionnez Tools – XMD dans le menu. Ceci démarrera une fenêtre Bash avec le programme XMD (Xilinx Microprocessor Debug). Ce programme communique avec la carte avec le Parallel Cable IV. XMD se connectera automatiquement au module de déboguage MDM (Microblaze Debug Module) et le processeur Microblaze qui s’exécute sur le FPGA.

Xilinx Microprocessor Debug (XMD) EngineXilinx EDK 6.3 Build EDK_Gmm.10Copyright (c) 1995-2004 Xilinx, Inc. All rights reserved.

XMD%Loading XMP File..Loading MHS File..Processor(s) in System ::

INFO:EDK - No Processor found in the SystemLoading MSS File..Executing Connect Cmd: connect mb stub -comm jtag -cable type xilinx_parallelport LPT1Connecting to cable (Parallel Port - LPT1).Checking cable driver. Driver windrvr6.sys version = 6.2.2.2. LPT base address = 0378h. ECP base address = FFFFFFFFh.Cable connection established.

JTAG chain configuration

Familiarisation avec la carte multimédia Microblaze et EDK Page 13/27

Page 14: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

--------------------------------------------------Device ID Code IR Length Part Name 1 0a001093 8 System_ACE 2 01038093 6 XC2V2000Assuming, Device No: 2 contains the MicroBlaze systemConnected to the JTAG MicroBlaze Debug Module (MDM)No of processors = 0

Connecting to XMD stub..XMD communication stub initialized. Version No: 3Communicating with XMD stub on target boardJTAG Uart opened SuccesfullyConnected to "mb" target. id = 0Starting GDB server for "mb" target (id = 0) at TCP port no 1234XMD%

Si vous voyez une fenêtre indiquant une bonne connexion et que le serveur GDB a démarré, la connexion s’est bien faite. Le serveur GDB est le débogueur qui sera utilisé pour déboguer le logiciel que vous avez téléchargé.En ce moment, XMD est connecté au moniteur résidant dans le ROM de la carte. Tapez help pour voir une liste de commandes et help running pour une liste plus détaillée.Grâce à ces commandes, faites afficher (dans XMD) le contenu de l’adresse 0 de la mémoire. Est-ce que c’est ce dont vous vous attendiez ? Pour aider à répondre à cette question, faites désassembler xmdstub.elf. Vous pouvez aussi demander à XMD de désassembler quelques instructions en mémoire et comparer le contenu des deux sources.

Regardez à l’adresse 0x800 que vous aviez obtenu du fichier executable.elf. Est-ce que c’est ce dont vous vous attendiez ? Qu’est ce qui se passe ?

Étape VIII : Déboguage

Dans XMD, tapez dow mb0_default/executable.elf pour télécharger l’exécutable. Sélectionnez Tools – Software Debugger.

La fenêtre de déboguage s’ouvrira et vous offrira une fenêtre de sélection de cible.

Sélectionnez Target : Remote/TCP : XMDEt inscrivez Hostname : localhost et Port : 1234Le processeur sera arrêté à un point d’arrêt au début du programme.

Familiarisation avec la carte multimédia Microblaze et EDK Page 14/27

Page 15: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Dans XMD, vous pouvez voir que le serveur GDB a accepté la connexion avec le débogueur. Regardez les instructions à partir de l’adresse 0x800. Que voyez-vous ?

Dans la fenêtre GDB vous pouvez voir du code assembleur. Vous pouvez trouver dans le menu déroulant à gauche le code. Pourquoi le code source de votre programme ne s’y trouve pas ?

Quittez GDB (GDB garde ouvert les fichiers et empêche les modifications ailleurs).

Dans XPS, sous l’onglet Applications double-cliquez sur Compiler Options. Dans l’onglet Optimization sélectionnez Create symbols for debugging (-g).Recompilez le programme, téléchargez-le et redémarrez GDB. Vous devriez maintenant pouvoir voir le code source de votre programme.Si vous voulez, comparez le nouveau fichier executable.elf desassemblé avec l’ancien. Ils devraient être pareils.

Dans GDB, cliquez sur run. Le programme roulera jusqu’au premier point d’arrêt. Vous pouvez l’enlever. Cliquez maintenant à plusieurs reprises sur Step jusqu’à ce que la ligne en vert dépasse la ligne contenant  xil_printf. Regardez dans la fenêtre de hyperterminal.

Modifiez le code pour que la boucle ne s’exécute que 32 fois. Recompilez-le et téléchargez-le sur la carte. Cette fois, après avoir appuyé sur Run, appuyez sur Finish. Le programme devrait rouler jusqu’à ce qu’un message vous avertisse que le programme a fini.

Int main(void){ int compteur, n;

for(n=0;n<32;n++) { compteur++; xil_printf("Compte = %d\r\n", compteur); }}

Étape IX : Analyse du projet

Dans XPS, sous l’onglet System double-cliquez sur system.pbd pour un schéma bloc du système que vous avez créé.

Familiarisation avec la carte multimédia Microblaze et EDK Page 15/27

Page 16: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Dans XPS double-cliquez sur opb_uartlite

Vous pouvez ainsi modifier les propriétés de chaque composant.

Familiarisation avec la carte multimédia Microblaze et EDK Page 16/27

Page 17: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Partie II

Matériel nécessaire

- Avoir complété la partie I et avoir accès à EDK et à une carte Multimédia de Xilinx.

Introduction

À faire…

Procédure

Cette partie contient quatre étapes.

Étape I : Préparation

Copiez le répertoire de la partie I et renommez-le famedk2.Dans XPS, sélectionnez File – Open Project et cherchez le fichier system.xmp dans le répertoire de la partie II.

Étape II : Ajout du GPIO avec DEL utilisateur 0

Sélectionnez Project – Add/Edit Cores dans le menu.Sous l’onglet Peripherals, dans la partie droite, cherchez opb_gpio dans la liste. Cliquez Add pour l’ajouter à votre système dans la partie gauche.

Allez sous l’onglet Bus Connections et dans le tableau de gauche, à coté de la ligne opb_gpio_0 sopb, cliquez dans la colonne mb_opb. Un ‘s’ devrait apparaître dans cette case.

Allez maintenant sous l’onglet Addresses et changez le Base Address pour 0x80040000 et changez le High Address pour 0x800401ff.

Sous l’onglet Parameters, choisissez le GPIO dans le menu déroulant et appuyez sur Open PDF Doc pour voir le PDF du périphérique GPIO. Vous pouvez le consulter quand vous voudrez de cette façon.De retour dans XPS, sélectionnez C_GPIO_WIDTH à droite et cliquez sur Add pour l’envoyer à gauche. Dans la partie gauche, vous pouvez éditer la valeur. Changez là de 32 à 1.

Allez sous l’onglet Ports, et dans liste List of Ports à droite, trouvez le port GPIO_IO du bloc opb_gpio_0 et cliquez sur le bouton Add. Dans la liste Internal Ports Connections, sélectionnez le port qui vient d’apparaître et cliquez sur Make External. Il devrait maintenant se trouver dans la liste External Ports Connections.

Familiarisation avec la carte multimédia Microblaze et EDK Page 17/27

Page 18: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Cliquez sur OK.Sélectionnez Options – Project Options dans le menu. Sous l’onglet HDL and Simulation, si ce n’est pas déjà fait, cochez Verilog sous dans la catégorie HDL. Faites OK.

Sélectionnez Tools –Generate Netlist. Ceci prendra quelques minutes.Allez dans le répertoire du projet et ouvrez le fichier system.ucf dans le sous répertoire data.Ajoutez la ligne suivante pour connecter le bit 0 du GPIO_IO au DEL 0 de la carte.

NET opb_gpio_0_GPIO_IO LOC=B27;

Sauvegardez le fichier.Cliquez avec le bouton droit de la souris dans l’onglet Applications de XPS sur Project : mb0_default et sélectionnez Set Compiler Options. Assurez vous que XmdStub est sélectionné dans Mode et que le Program Start Address vaut 0x800.

Sélectionnez Tools – Download du menu.

Étape III : Test sur matériel du GPIO

Une fois le téléchargement complété avec succès, utilisez XMD pour tester le système pour vérifier que le GPIO fonctionne. On peut écrire directement dans le registre du GPIO avec les commandes du XMD.

Vous avez demandé au compilateur de placer le module GPIO à l’adresse 0x80040000. Or le registre GPIO_DATA (selon la fiche technique) est décalé de 0x00 octets de cette adresse là. Le registre de direction (tri-state) se situe à une adresse décalée de 0x04. Utilisez ces deux valeurs pour déterminer où écrire pour allumer le DEL.

Étape IV : Ajout de logiciel au GPIO

Les pilotes matériels de niveau 1 sont des pilotes matériels de haut niveau. Leur interface est défini dans le fichier <nom du pilote>.h. Chaque fichier inclut l’interface du pilote matériel du niveau 0 dans un fichier <nom du pilote>_l.h. Le pilote matériel de niveau 1 prend plus de mémoire et fournit du contrôle d’erreurs et des E/S par interruption. Chaque fonction du pilote du niveau 0 prend l’adresse de base du

Familiarisation avec la carte multimédia Microblaze et EDK Page 18/27

Page 19: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

dispositif (Device) comme premier argument. Chaque fonction des pilotes du niveau 1 prend un pointeur d’instance comme premier argument.

Enlevez le fichier compteur1.c des fichiers source et ajoutez le fichier partieII.c à sa place.

Vous devrez modifier ce fichier à tous les endroits où c’est écrit <A completer> de façon à ce qu’il se compile sans erreurs. Vous pouvez regarder dans le fichier xparameters.h, etc.

Téléchargez le fichier programme et déboguez dans Software Debugger. Vous pouvez aussi démarrer un Hyperterminal pour visualiser les sorties du programme.

Partie III

Préalables

Lisez les fichiers sur les Timer et Interruptions OPB contenues dans le guide de référence du noyau processeur(Processor IP Reference Guide).

Regardez aussi le fichier partieIII.c et essayez de comprendre comment il fonctionne.

Matériel nécessaire

- Avoir complété les parties 1 et 2 et avoir accès à EDK et à une carte Multimedia de Xilinx.

Introduction

À faire

Procédure

Cette partie contient xx étapes.

Étape I : Préparation

Copiez le répertoire de la partie II et renommez-le famedk3.Dans XPS, sélectionnez File – Open Project et cherchez le fichier system.xmp dans le répertoire du labo 3.

Étape II : Ajout des noyaux IP Timer et Contrôleur d’interruptions

Utilisez Add/Edit Cores… pour ajouter un opb_timer et un opb_intc au projet.Donnez comme plage d’adresses de opb_timer 0x80040200 – 0x800402ff et pour opb_intc 0x80040300 – 0x8004031f.

Familiarisation avec la carte multimédia Microblaze et EDK Page 19/27

Page 20: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Mettez les deux périphériques comme esclaves (Slave) dans l’onglet Bus Connections.

Sous l’onglet Ports, ajoutez dans Internal Ports Connections les signaux Intr et Irq du contrôleur d’interruptions, le signal Interrupt du Timer et le signal INTERRUPT du processeur Microblaze. Connectez Intr avec Interrupt et Irq avec INTERRUPT. Pour connecter deux signaux, sélectionnez le premier dans Internal Ports Connections et en gardant le bouton CTRL enfoncé, sélectionnez le deuxième. Inscrivez un nom de connexion significatif.

Cliquez ensuite sur OK. Faites Tools - Generate Bitstream et téléchargez le tout sur la carte.

Changez le code source partieII.c pour partieIII.c et faites régénérer les librairies avec Tools – Generate Libraries and BSPs.

Familiarisation avec la carte multimédia Microblaze et EDK Page 20/27

Page 21: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Partie III : Lecteur de mp3

Matériel nécessaire

- Avoir accès à EDK et à une carte Multimédia de Xilinx.

Introduction

Danc cette partie, vous allez utiliser un projet complété qui permet d’écouter des fichiers mp3 sur la carte multimedia de Xilinx.

Procédure

Cette partie contient trois étapes.

Étape I : Préparation

1) Placer le contenu du fichier ZIP dans un répertoire n’ayant aucun espace dans son chemin. Ex : c:\mon_repertoire\mon_sous_repertoire\

2) Double-cliquez sur le fichier system.xmp dans ce répertoire.

3) Mettez sous tension la carte multimedia de Xilinx et branchez les câbles nécessaires.

Étape II : Téléchargement

1) Sélectionnez Tools – Download dans le menu. Ceci peut prendre un bon moment puisqu’il y un énorme besoin de ressources mémoire de la part du compilateur.

2) Une fois le code matériel téléchargé, sélectionnez Tools – Xygwin Shell dans le menu. La fenêtre Xygwin s’ouvrira.

3) Tapez xmd suivi de Retour.

4) Tapez mbconnect mdm suivi de Retour pour entamer la communication avec la carte.

5) Trouvez la grandeur du fichier mp3 en octets. Il s’agit de la grandeur réelle et non de la grandeur sur disque. La grandeur maximale possible est de 2 Mo. Il faut choisir un des quatres fichiers qui sont dans le répertoire MP3Streams. Vous pouvez aussi en ajouter à votre guise. Notez que le fichier mp3 peut prendre plusieurs minutes à télécharger.

Familiarisation avec la carte multimédia Microblaze et EDK Page 21/27

Page 22: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

6) Tapez mwr 0xfa800000 <grandeur_du_fichier_mp3> suivi de Retour pour réserver une espace mémoire de la même grandeur que le fichier à télécharger.

7) Tapez dow -data ../MP3Streams/<nom_du_fichier_mp3> 0xfa800004 suivi de Retour pour télécharger le fichier mp3. Cela peut prendre un bon moment.

8) Tapez dow my blaze/code/executable.elf suivi de Retour pour télécharger le programme exécutable.

Étape III : Fonctionnement

1) Tapez con 0x0 pour démarrer le programme exécutable. Branchez des écouteurs mono à la sortie HEADPHONES (J7) de la carte et écoutez.

2) Lisez le code source en C et essayez de comprendre.

3) Pour écouter un autre mp3, vous n’avez qu’à arrêter l’exécutable en tapant Stop (ou attendre qu’il arrête de lui-même), réserver la quantité de mémoire nécessaire, à télécharger le fichier mp3 et à faire con 0x0 de nouveau. Si vous n’éteignez pas la carte, l’exécutable demeure fonctionnel et peut faire jouer les mp3.

Familiarisation avec la carte multimédia Microblaze et EDK Page 22/27

Page 23: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Annexe A - Problèmes et solutions

Switch Serial Port Selection – Câble RS-232

Pour un bon fonctionnement du port RS-232 :Sur la Serial port Selection Switch, OFF et ON. (O et X dans le texte sur la carte).

LPT1 – XMD

INFO:EDK - No Processor found in the SystemLoading MSS File..Executing Connect Cmd: connect mb stub -comm jtag -cable type xilinx_parallelport LPT1Connecting to cable (Parallel Port - LPT1).Checking cable driver. Driver windrvr6.sys version = 6.2.2.2. LPT base address = 0378h. ECP base address = FFFFFFFFh.Cable connection established.

JTAG chain configuration--------------------------------------------------Device ID Code IR Length Part Name 1 0a001093 8 System_ACE 2 01038093 6 XC2V2000Assuming, Device No: 2 contains the MicroBlaze systemConnected to the JTAG MicroBlaze Debug Module (MDM)No of processors = 0ERROR:EDK - No Open MDM Connection

JTAG Uart ReadByte timeoutJTAG Uart ReadByte timeoutUnable to sync with stub on board No response to Debug_SYS_Rst signal (System Reset) Verify if FPGA is configured correctly or XMDSTUB is running on Board.

Solution: Le débogueur de la carte ne communique pas bien ou n’est pas installé sur la carte. Éteindre et allumer la carte, télécharger de nouveau et essayer XMD.

Téléchargement du fichier bit - ERREUR iMPACT : 585

Identifying chain contents ....done.ERROR:iMPACT:585 - A problem may exist in the hardware configuration. Check that the cable, scan chain, and power connections are intact, that the specified scan chain configuration matches the actual hardware, and that the power supply is adequate and delivering the correct voltage.Elapsed time = 0 sec.// *** BATCH CMD : identifyMPM

Familiarisation avec la carte multimédia Microblaze et EDK Page 23/27

Page 24: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Elapsed time = 0 sec.ERROR:iMPACT:589 - No devices on chain, can't assign file make: *** [download] Error 1Done.

Solution : Le câble Parallèle IV peut être mal branché

GDB

Il peut y avoir de la difficulté à fermer le débogueur, la seule solution connue est de fermer XMD, d’éteindre et rallumer la carte et de télécharger de nouveau.

Probleme : Ne peut pas télécharger avec iMPACT dans XPS

Solution : Mettre à jour ISE (peut être versions incompatibles).

ISE ISE- iMPACT XPS

Familiarisation avec la carte multimédia Microblaze et EDK Page 24/27

Page 25: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Annexe B - Structure des fichiers d’un projet EDK

Dans le répertoire de votre projet, se trouvent les fichiers suivants qui peuvent être utiles dans votre compréhension du système Microblaze :

system.mss (Description haut niveau du logiciel) Microblaze Software System

system.mhs (Description haut niveau du materiel) Microblaze Hardware System

system.xmp (Fichier projet) Ne pas éditer. Utilisé par Xilinx Platform Studio (XPS).

Il y aussi les répertoires suivants :

./__xps : options utilisés par les différents outils

./code : code source à exécuter sur le processeur

./data : contient les fichiers de contraintes .UCF.

./etc : contient download.cmd et fast_runtime.opt

./hdl : contient les fichiers HDL générés par XPS

./implementation : les fichiers synthétisés, le fichier de téléchargement(bit) et d’initialisation pour les blocs de mémoire/synthesis : sortie de la synthèse par XST/pcores/périphériques utilisateur (noyaux IP)./microblaze_0 : Instance du processeur Microblaze./microblaze_0/code : code pour cette instance du processeur (.s et .elf)./microblaze_0/include : fichiers à inclure pour la compilation du processeur./microblaze_0/lib : librairies standard libc.a, libm.a et libxil.a./microblaze_0/libsrc/ contient le code source des librairies et pilote pour Microblaze

Familiarisation avec la carte multimédia Microblaze et EDK Page 25/27

Page 26: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Annexe C Système de développement MicroBlaze

La documentation technique de la carte Multimédia de Xilinx est sur le CD-ROM livré avec, dans le répertoire c:\CMC ou directement sur le site de Xilinx.

L’environnement utilisé est l’outil EDK de Xilinx, à partir de MicroBlaze processeur «soft» RISC 32bits implanté dans la famille de FPGA Virtex-II Pro

Logiciels et design kit disponibles

Xilinx : ISE Foundation (6.3.03i), l’outil de débogage ChipScope Pro, l’outil intégré EDK et la solution System Generator DSP.

MatLab : La version «release» 14.1??.

Mentor Graphics : FPGA Advantage, la version 6.?? et l’outil de Simulation ModelSim 5.8 ?.

Liste du matériel interne compatible avec la carte multimédia

OPB GPIO BRAM

OPB : On the chip Peripheral Bus.GPIO : generic input-output peripheral

Familiarisation avec la carte multimédia Microblaze et EDK Page 26/27

Page 27: - Site Web à vocation éducationnel de l'UQOw3.uqo.ca/dii/statHTML/labos/laboGenie/CISNA/docs/... · Web viewstdin et stdout à RS-232. Dans la fenêtre de projet, sous l’onglet

Carte Multimédia Microblaze de Xilinx

Annexe D – Branchement du matériel

Ne pas brancher l’alimentation sur la carte avant vérification par le chargé de laboratoire et soyez prudents lors de la manipulation du matériel.

Carte Microblaze Multimedia de Xilinx

1) Placez la carte multimedia devant vous avec le sigle de CMC de façon à ce qu’il soit lisible (Le bouton rouge Reload est à votre gauche et le bouton rouge Enter est à votre droite).

2) Branchez le connecteur Parallel Cable IV de Xilinx dans le port parallèle de l’ ordinateur.

3) Branchez le câble à fils libres JTAG avec le fil rouge le plus près de la lumière Status. Branchez les fils libres (ils sont identifiés) aux bons terminaux de la carte dans la section JTAG TEST PORT (près du connecteur Compact Flash)

4) Brancher le connecteur PS/2 au port souris de l’ordinateur.5) Brancher ce connecteur à la souris.6) Connectez ensuite le fil qui sort de ce connecteur au fil qui entre dans la câble

Parallel Cable IV.7) Vous pouvez brancher un câble série entre le port RS-232 de l’ordinateur et

de la carte multimédia si vous en avez besoin.8) Faites vérifier vos branchements par le chargé de laboratoire.9) Mettez sous tension en mettant le commutateur ON/OFF à ON (Plusieurs DEL

s’allumeront et certaines clignoteront).

Carte ML310 de Xilinx

1) Placez la carte ML310 devant vous.2) Branchez le connecteur Parallel Cable IV de Xilinx dans le port parallèle de

l’ ordinateur.3) Branchez le connecteur parallèle gris à 14 fils dans la prise du Parallel Cable

IV et branchez l’autre extrémité dans la carte au connecteur identifié comme PC4 JTAG (pas très loin des boutons poussoir SYSACE RESET et CPU RESET). Il y a seulement un connecteur de ce type ayant cette taille sur la carte.

4) Brancher le connecteur PS/2 au port souris de l’ordinateur.5) Brancher ce connecteur à la souris.6) Connectez ensuite le fil qui sort de ce connecteur au fil qui entre dans la câble

Parallel Cable IV.7) Vous pouvez brancher un câble série entre le port RS-232 de l’ordinateur et

de la carte multimédia si vous en avez besoin.8) Faites vérifier vos branchements par le chargé de laboratoire.9) Mettez sous tension en mettant le commutateur ON/OFF à ON (Plusieurs DEL

s’allumeront et certaines clignoteront).

Familiarisation avec la carte multimédia Microblaze et EDK Page 27/27