l'IDE CodeWarrior Nouveau Projet Debugger (Hiwave) MAKE: Créer l'exécutable Browser de symboles Nouveau groupe Cible courante Ajouter un fichier au projet Nouveau fichier texte Groupe (n'est pas un répertoire) Propriétés (path) du fichier sélectionné Supprimer les fichiers objets Configuration de la cible Fichier modifié: doit être (re)compilé 144 : octets de code 13 : octets de données Utilisé dans cette cible Inclure les informations symboliques pour le debug en C. Nom : CORRECTION Prénom : JOK Groupe : Date : 18/10/02 Définitions relatives à l'IDE Projet Cible Un projet regroupe un ensemble de cibles ou d'autres projets. Il correspond logiquement à la programmation d'une application ou d'une bibliothèque. Groupe Stationery Un stationery est un projet de référence déjà configuré. Il sert de base à la création de nouveaux projets. On peut l'assimilé à un modèle. Lors de la création d'un projet à partir d'un stationery, le repertoire correspondant est dupliqué en adaptant les noms au nouveau projet. Les sources qui n'y sont pas ne sont donc pas copiés, il sont partagés. Nom : CORRECTION Prénom : JOK Une cible est une configuration de projet destinée à fabriquer un fichier exécutable. Une cible se caractèrise par l'ensemble des fichiers sources et les options associées. Groupe : Date : 18/10/02 Le groupe est une entité qui sert à organiser les fichiers sources de façon hiérarchique. Un groupe peut contenir des sous-groupes. Le groupe n'est pas un repertoire. Les sources d'un même groupe peuvent se trouver n'importe où dans la hiérarchie des fichiers. Path L'IDE cherche les fichiers sources dans un ensemble de repertoire précis : le chemin d'accès (access path). Ces chemins sont définis soit de façon absolu soit de façon relative. La définition des chemins doit être choisie de telle façon que l'IDE retrouve les fichiers sources même si le répertoire du projet est copié ou deplacé. l'Editeur intégré Chercher ... Chercher / Remplacer Save All Chercher le précédent Préprocesseur #define,#include, #if ... Chercher le suivant Compilateur: *.c -> *.o Chercher la définiton d'un symbole Désassembleur : *.c ->*.o->*.asm Revenir en arrière MAKE : n[*.c]+n[*.lib]->*.abs Repartir en avant Empiler les fenêtre d'édition Trouver les extrémités des parenthhèse/accolades Décaler à droite Décaler à gauche Liste des fonctions de ce fichier Liste des fichiers inclus Ouvrir browser de symboles Nom : Prénom : Correction JOK Groupe : Date : 17/10/02 Outils Préprocesseur Le préprocesseur effectue un prétraitement du TEXTE du fichier source et traite toutes les directives repérées par le symbole #, notemment les inclusions de fichiers entête, les définitions de constantes par des macros et les directives de compilation conditionnelles (#if #endif). Compilateur Nom : CORRECTION Prénom : JOK Groupe : Date : 18/10/02 Assembleur / Désassembleur L'assembleur est associé à un processeur et à son langage assembleur. Il traduit en binaire chaque instruction écrite en assembleur. Le désassembleur permet l'opération inverse. Il analyse le code binaire et reconstruit les instructions en langage assembleur. Symbole Le compilateur est associé à un langage de programmation et à un processeur cible. Il analyse séparément chaque fichier source et génère pour chacun un fichier objet. Il détecte le erreurs de syntaxe et vérifie la cohérence de l'utilisation des opérateurs en fonction du type de donnée. Toutes les variables globales et toutes les fonctions (non static) n'auront une adresse définitive qu'à la fin de l'édition de liens. Avant cette étape, (notemment lors de la compilation) le compilateur les manipule comme des symboles. On peut donc appeller une fonction ou lire une variable en ne connaissant que son type et son nom. Bibliothèques Linker Les fichiers objets (c'est à dire déjà compilés) fréquemment utilisés peuvent être regroupés dans des bibliothèques (library). Le linker (éditeur de liens) fabrique l'exécutable à partir des fichiers objets et des librairies. Il parcours les fichiers objets puis les librairies pour trouver les symboles référencés. Il calculé les adresses de tous les symboles. Debugger - Hiwave RESET CPU : Redémarrer Stop Run Step Into Step Over Step ASM Step Out Pile Les registres du CPU La mémoire Var. Locales Un octet à l'adresse 0080BF Nom : Correction Prénom : JOK Groupe : Date : 17/10/02 Date 18/10/02 Errors & Warnings Groupe : Prénom : JOK Vous avez appelé une fonction en lui passant trop ou trop peu de paramètres. Vérifiez la déclaration de cette fonction. Could not find or load X for target "Y" for project Z Un fichier présent dans le projet n'existe pas ou le chemin (access path) ne pointe pas sur lui. xx.h file not found Nom : CORRECTION Wrong number of arguments Le fichier inclu n'existe pas ou est mal orthographié. Expected ; - Vous avec oublié un point virgule en fin d'instruction. - Le type d'une variable dans une déclaration est mal orthographié. Implicit parameter declaration Une fonction n'a pas été déclarée. MaVariable not declared (or typename) Une variable ou un type n'a pas été déclaré. Type mismatch (expected XX, given YY) Vous avez appelé une fonction en lui passant un argument dont le type n'est pas bon. Vérifiez la déclaration de cette fonction. 1er parametre : Old style declaration Les suivants : Typedef name expected Dans la déclaration d'une fonction, le nom du type d'un paramètre utilisé n'existe pas. Link Error: Symbol XXin file YY.c.o is undefined Une fonction ou une variable est déclarée mais elle n'existe pas. Elle n'a pas été définie. Vérifiez la cohérence entre déclaration et définition. Link Error: Out of allocation space for segment X Votre programme utilise trop de mémoire RAM. Elle ne tient pas dans le composant HC12. ' }' missing - Vous avez mélangé des déclarations aux instructions. - Il manque un accolade fermante. HI-WAVE : Communication to ICD12 failed La carte Star12 n'est pas connectée ou n'est pas alimentée.