18

1.1. Schéma général du processus de compilation

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1.1. Schéma général du processus de compilation
Page 2: 1.1. Schéma général du processus de compilation

1. Introduction : Pour développer des applications pour les microcontrôleurs Microchip, divers outils de développement sont possibles, fournis par Microchip ou par des sociétés tiers. Nous utiliserons les outils de développement suivants :

- Environnement de développement MPLAB IDE v8.00 - Compilateur C HITECHPIC TOOULSUITE Compiler version 3.0 - Programmateur / Débogueur MPLAB ICD2 ou chargement par Bootloader

Pour développer sous MPLAB, vous devez impérativement créer un projet, en suivant la démarche ci-dessous. Un projet regroupe un fichier contenant le programme principal (main), des bibliothèques à compiler, le tout associé à des bibliothèques du compilateur. Vous aurez aussi à rajouter à votre projet le fichier linker, indiquant notamment l'emplacement de votre programme et de vos données en mémoire.

1.1. Schéma général du processus de compilation :

#Include <p18F4550.h> main() {printf….. }

Bibliothèque en C *.c

Fichiers d’inclusion *.h

Prépocesseur Met en forme le fichier source C à partir de directives #define #include

Compilateur C Transforme le fichier C en un fichier objet, les fonctions pré compilés sont déclarées dans les fichiers *.h

Editeur de lien : LINKER Lie (donne des adresse aux fonctions) tous les fichiers objets et crée un fichier exécutable

Bibliothèque pré compilées (fichiers

objets

Fichier source C contenant la

fonction main Fichiers pour débugger Prog.cod Prog.lst

Fichiers pour exécutable Prog.hex Prog.err

Page 3: 1.1. Schéma général du processus de compilation

1.2. Extension des fichiers :

Fichiers extensions

Description du contenu du fichier Fichiers extensions

Description du contenu du fichier

*.c Fichier source en C *.hex Code objet (exécutable) *.h Entête de définition des broches,

registres, bits de registres, fonctions et directives de pré-compilation

*.cof Code machine + informations de débugage

*.pjt Fichier de projet *.tre Montre l’organisation du programme sous forme d’arbre (découpage en

fonction) et l’utilisation de la mémoire pour chaque fonction

*.lst Fichier qui montre chaque ligne de code c et son code assembleur associé

généré

*.err Erreurs éventuelles rencontrées durant la compilation

*.sta Fichier statistique sur l’espace mémoire

*.sym Indique la correspondance entre le nom des symboles (variables, bits,

registres) et leurs adresses hexadécimale en mémoire

1.3) Configuration du compilateur Dans un premier temps il faut choisir le compilateur HITECH. MPLAB peut intégrer Différents types de compilateur pour la gamme de PIC 10F 12F 16F 18F 24F 32F DSPIC30F DSPIC33Fet de différente société (Microchip, CCS, HITECH …). HITECH est prévu pour la gamme de microcontrôleur PIC16F Project « set language tools location » ,choisir HITECH PICCTools suite et vérifier les chemins des programmes et bibliothèques. Lors de la création du projet Dans « Select language toolssuite location » il faudra choisir le compilateur HITECH Par défaut le chemin d’installation de HITECH est donné ci-dessus

Page 4: 1.1. Schéma général du processus de compilation

2. Projet dans MPLAB :

2.1. Création d’un nouveau projet : Les différents fichiers nécessaires à MPLAB lors d’un développement pour microcontrôleur sont répertoriés dans un projet. La première action à effectuer est donc la création d’un nouveau projet :

Après avoir lancé MPLAB IDE V8.00, choisir dans le menu « Project » l’option « Project Wizard »

La première étape consiste à indiquer la référence du microcontrôleur qui sera utilisé (18F4550 , 16F876, 18F258) Cliquer ensuite sur « Suivant ».

L’assistant de création de projet s’affiche. Cliquer sur « Suivant ».

Page 5: 1.1. Schéma général du processus de compilation

La troisième étape consiste à indiquer le nom et l’emplacement du projet. Indiquer dans la case « Create New Project File » le nom souhaité pour le projet. Pour l’emplacement utiliser le bouton « Browse » pour parcourir l’arborescence des répertoires, et éventuellement créer un nouveau répertoire. Cliquer ensuite sur « Suivant ».

Page 6: 1.1. Schéma général du processus de compilation

La dernière étape permet éventuellement d’ajouter au projet un fichier source existant (en Assembleur – extension .ASM – ou en langage C – extension .C). Dans le cas où aucun fichier source existant n’est à incorporer au projet, cliquer directement sur « Suivant ». Pour ajouter un fichier source existant, parcourir l’arborescence dans la fenêtre de gauche, sélectionner le fichier désiré puis cliquer sur le bouton « Add ». Sélectionner le lettre C en cliquant sur les différentes lettres Cliquer ensuite sur « Suivant ».

L’assistant de création de projet affiche un résumé de celui-ci : contrôler les différentes informations présentées :

• Référence du microcontrôleur ; • Outil utilisé en fonction du langage ; • Répertoire du projet.

Cliquer sur « Terminer » pour valider la création du projet.

Page 7: 1.1. Schéma général du processus de compilation

Cliquer sur « View » ensuite « Projet » pour que MPLAB affiche dans une fenêtre le nom du projet (d’extension .mcp : MicroChip Project) Si aucun fichier existant n’a été incorporé au projet, choisir dans le menu « File » l’option «New» Une fenêtre d’édition apparaît. Taper le texte du programme source en C puis enregistrer le fichier dans le même répertoire que celui du projet. Incorporer ce nouveau fichier source au projet en choisissant l’option « Add Files » dans le menu contextuel (obtenu par un clic du bouton droit de la souris) de la rubrique « Source Files». Rechercher puis sélectionner le fichier.

Page 8: 1.1. Schéma général du processus de compilation

2.2. Ouvrir d’un projet existant :

L’ouverture d’un projet existant (d’extension .mcp) peut se faire en choisissant dans le menu « Project » l’option « Open » ou en cliquant sur l’icône verte « Open Project ».

Une deuxième solution consiste à ouvrir le « Workspace » (d’extension .mcw : MicroChip Workspace) associé au projet en choisissant dans le menu « File » l’option «Open Workspace ».

La troisième possibilité permettant l’ouverture d’un projet existant est réalisable en choisissant dans le menu « File » l’option « Recent Workspace » puis en sélectionnant l’un des derniers projets ouverts.

Page 9: 1.1. Schéma général du processus de compilation

3. Contrôle des bits de configuration : Les microcontrôleurs PIC disposent d’un registre de configuration « Word Configuration ». La configuration de celui-ci s’effectue via MPLAB. Pour le configurer, sélectionner dans le menu « Configure » l’option « Configuration bits ». Une fois les différents bits définis correctement, fermer cette fenêtre en cliquant sur la croix en haut à droite.

3.1. Pour le PIC 16F876 :

Nom du bit (Category) Valeur (Setting) Oscillator HS : Fréquence du quartz > 8MHz

XT : 200kHz <Fréquence du quartz<8MHz LP : Fréquence du quartz <200Hz RC : Réseau RC

Watchdog Timer (Activation du chien de garde)

En général sur « Off »

Power Up Timer Rajoute un délai de 72ms

En général sur « Off »

Brown Out Detect En général sur « Off » Low Voltage Program Détection d’une faible tension d’alimentation

Toujours sur « Disabled » avec l’ICD2

Flash Program Write Active la programmation de la mémoire programme

Toujours sur « Enabled »

Data EE Read Protect Empêche la lecture de la mémoire EEPROM du PIC

En général sur « Off »

Code Protect Activation de la protection du code programme

Toujours sur « Off »

Décocher la case « Configuration Bits set in code » pour changer les valeurs

Page 10: 1.1. Schéma général du processus de compilation
Page 11: 1.1. Schéma général du processus de compilation

4. Utilisation de MPLAB : 4.1. La barre d’outil : Les différentes icônes disponibles dans la barre d’outils de MPLAB sont définies ci-dessous. Remarque : en fonction du mode de fonctionnement choisi (mode « simple », mode « Débuggage », mode « programmation »), les icônes de la partie droite ne sont pas les mêmes. La barre d’outils représentée ici correspond au mode « Débuggage ».

4.2. Les fenêtres de MPLAB : En plus de ces différentes icônes, plusieurs fenêtres peuvent être affichées : les fenêtres qu’il est indispensable d’avoir en permanence ouvertes :

- projet en cours (il est impossible de la fermer) Fenêtre 1 - fichier(s) source(s) du projet : un double clic sur le nom du fichier source dans le gestionnaire de projet permet de rouvrir celui-ci. Fenêtre 2 - Fenêtre de « Sortie » (« Output ») : les différents onglets permettent d’afficher : Fenêtre 3

• les résultats de la compilation (onglet « Build ») • l’état de la communication entre le boîtier ICD3 ou PICKIT3 et l’application cible (onglet « MPLAB ICD3 ») • le résultat de la recherche dans tous les fichiers source du projet (onglet « Find in files »)

Dans le cas où cette fenêtre a été fermée, cocher dans le menu « View » l’option «Output »

Aide du compilate r

Compiler le projet

Chercher du texte dans l’ensemble des fichiers

d

Reset + reconnexion à

Lire le PIC

Programmer le PIC

Exécuter le programme avec animation

Arrêter le programm

Enregistrer

Ouvrir Chercher

Coller

Copier

Enregistrer

Ouvrir

NouveaImprimer

Porte sur un fichier source

Couper

Porte sur une partie de texte du fichier source

Nouvea Options

Exécuter le

Mode pas à

Reset

Action disponible en mode Débuggage

Porte sur un projet

Page 12: 1.1. Schéma général du processus de compilation

Certaines fenêtres qu’il est utile d’afficher dans certains cas :

- « Watch » : permet d’afficher le contenu de registres du microcontrôleur ou de variables (choisir dans le menu « View » l’option « Watch ») - « Special Fonction Registers » : permet d’afficher le contenu des registres particuliers du microcontrôleur (choisir dans le menu « View » l’option « Special Fonction Registers ») - « File Registers » : permet d’afficher le contenu des registres particuliers du microcontrôleur (choisir dans le menu « View » l’option « File Registers ») - « Disassembly listing » : permet d’afficher le listing du programme en assembleur à la suite de la compilation, associé au code objet généré (choisir dans le menu « View » l’option « Disassembly listing »)

5. Les différentes étapes du développement : Pour développer une application destinée à être exécutée par un microcontrôleur PIC, les différentes étapes sont les suivantes : avec le logiciel MPLAB seul :

- saisie du programme source (en langage C) grâce à l’éditeur de texte de MPLAB ; - assemblage ou compilation du programme source ;

avec le logiciel MPLAB associé à l’outil de développement ICD2 : - « débuggage » du programme, c’est-à-dire recherche et correction des erreurs de programmation; - programmation du microcontrôleur cible pour obtenir un fonctionnement autonome de la carte électronique en cours de développement.

Fenêtre 1

Fenêtre 2

Fenêtre 3

Page 13: 1.1. Schéma général du processus de compilation

5.1. Saisie du programme source et compilation : L’éditeur de texte de MPLAB permet, grâce à la coloration syntaxique, d’écrire le programme source en langage C. La traduction du programme source en code objet s’effectue grâce à l’icône « Build» Il est impératif d’observer le résultat de la compilation dans l’onglet « Build » de la fenêtre « Output » :

• Un message d’erreur (« Error ») nécessite obligatoirement une modification du programme source, la compilation n’étant pas complète. Pour corriger l’erreur, un double clic sur le message d’erreur de la fenêtre « Ouput » permet d’arriver directement sur la ligne du programme source comportant l’erreur. • Un message d’avertissement (« Warning ») doit être examiné avec soin : dans certains cas, il s’agit d’un oubli ou d’une erreur dans le programme source. Cependant, un programme destiné à être exécuté par un microcontrôleur comporte systématiquement une boucle infinie qui sera signalée par un message d’avertissement.

Le Message « BUILD SUCCEEDED » indique une compilation réussie (comportant éventuellement des avertissements).

Page 14: 1.1. Schéma général du processus de compilation

5.2. Mode « Debuggage » : Pour détecter d’éventuelles erreurs de programmation, il est nécessaire de faire exécuter le programme par le microcontrôleur en mode « débuggage ». Ce mode permet les différentes actions suivantes :

• exécution en pas à pas ; • exécution fonction par fonction ; • exécution en continu ; • exécution continue jusqu’à une certaine ligne du programme source (« point d’arrêt »); • affichage du contenu de registres du microcontrôleur et/ou variables (valeurs actualisées à chaque arrêt du programme).

Connexion PCICD2Application : Passage en mode « Debuggage » : Etapes du mode « Debuggage » : La procédure habituelle est la suivante :

• Etablir la connexion avec le boîtier ICD2 : icône « Reset and Connect to ICD » ; Une connexion correcte avec l’ICD2 est signalée dans la fenêtre « Output » :

Auparavant, le boîtier ICD2 doit être raccordé, d’une part à l’ordinateur via le bus USB et d’autre part à l’application cible comportant le microcontrôleur à programmer. Le boîtier ICD2 ou PICKIT3 doit être relié au PC en premier lieu Ensuite, raccorder le boîtier ICD2 à l’application cible. Terminer en alimentant l’application cible. Le non respect de l’ordre de connexion peut entraîner la destruction du boîtier ICD2.

Pour bénéficier du mode de fonctionnement «Débuggage », choisir dans le menu « Debugger » l’option « Select Tool » puis «MPLAB ICD 2 Ou PICKKIT3».

Page 15: 1.1. Schéma général du processus de compilation

La signification des messages d’erreurs éventuellement visibles dans l’onglet « MPLAB ICD 2 » de la fenêtre « Output » est :

- « ICD0019: Failed to open communications: (Failcode = 0x2) « ICD0021: Unable to connect with MPLAB ICD 2» : la communication avec l’ICD2 est impossible ; - « ICDWarn0020: Invalid target device id (expected=0x4D, read=0x0) » : la communication avec l’application cible est impossible (erreur ou absence de liaison) ;

• Lancer la compilation (ou l’assemblage) du programme source après chaque modification de celui-ci : icône « Build » ;

• Programmer le microcontrôleur cible : icône « Program Target Device » ;

• Exécuter le programme soit en continu (icône « Run ») soit en modes pas à pas (icônes « Step Into», « Step Over » ou « Step Out ») ;

• Après un lancement en continu du programme, l’arrêt de celui-ci s’effectue grâce à l’icône «Halt», suivi éventuellement d’un « Reset ».

Visualisation des registres : Voir la partie 4.2. Utilisation des points d’arrêt : L’exécution du programme en continu ne permet pas toujours de détecter l’origine d’un fonctionnement incorrect. Les modes pas à pas ou fonction par fonction sont parfois d’une mise en oeuvre laborieuse. Il peut alors être judicieux d’utiliser les points d’arrêts : une ligne du programme source est affectée d’un marqueur qui déclenchera l’arrêt du programme lorsque le microcontrôleur exécutera l’instruction correspondante. La définition et la suppression des points d’arrêts est réalisée par un double clic sur la ligne souhaitée, ou en choisissant lors d’un clic droit sur celle-ci l’option « Set Breakpoint » ou « Remove Breakpoint ». La suppression de tous les points d’arrêts s‘effectue en choisissant lors d’un clic droit dans la fenêtre d’édition l’option « Breakpoints » puis « Remove All Breakpoints ». Remarque : à un instant donné, un seul point d’arrêt est actif (« Enable »), les éventuels autres points d’arrêts sont provisoirement désactivés (« Disable »).

La flèche verte indique la prochaine instruction qui sera exécutée.

Page 16: 1.1. Schéma général du processus de compilation

Debuggage dans un environnement virtuel : PROTEUS En premier lieu, créez un schéma sous ISIS correspondant à notre application (voir note d’utilisation d’ISIS). Sous MPLAB choisir comme debugger Proteus VSM .

A l’ouverture de Proteus VSM Viewer , choisissez notre schématique créée précédemment

Double cliquez sur le microcontrôleur afin de choisir le quartz et le code machine.

Cliquez sur le feu vert et puis sur le bouton lecture. le debuggage commence

Page 17: 1.1. Schéma général du processus de compilation

5.3. Programmation du PIC :

5.3.1. Programmation avec le module ICD2 : Les 2 principales icônes à utiliser sont, dans un premier temps celle de connexion avec l’ICD2, puis dans un second temps, celle de programmation du microcontrôleur cible. En cas de succès la fenêtre « Output » affiche le message suivant : Après la programmation, il est indispensable de déconnecter le boîtier ICD2 de l’application cible : celle-ci devient autonome.

Pour effectuer la programmation du microcontrôleur afin qu’il fonctionne de façon autonome sur l’application cible, choisir dans le menu « Programmer » l’option « Select Programmer » puis « MPLAB ICD 2 ».

Connexion avec l’ICD2

Programmation du PIC

Page 18: 1.1. Schéma général du processus de compilation