Anda di halaman 1dari 23

Guide de prise en main de Keil

Auteur : S. DI MERCURIO Version : 1

1/23

Table des matires


1.Prsentation de l'interface.................................................................................................................3 1.1.Mode diteur de texte...............................................................................................................3 1.2.Description des icnes du mode diteur...................................................................................3 1.3.Mode debuggeur.......................................................................................................................5 1.4.Description des icnes du mode debuggeur.............................................................................5 2.Installation de Keil et des chaines de compilation alternatives........................................................7 2.1.Installation de Keil....................................................................................................................7 2.2.Installation de la chaine de compilation GCC..........................................................................7 3.Les projets sous Keil........................................................................................................................9 3.1.Cration d'un nouveau projet....................................................................................................9 3.2.Diffrences concernant la chane de compilation GCC..........................................................19 3.3.Compilation et excution/debug d'un programme..................................................................20 4.Arborescence du dpt SVN..........................................................................................................21 5.Problmes connus et corrections....................................................................................................23

2/23

1. Prsentation de l'interface
1.1. Mode diteur de texte Editeur de texte

Fenetre du projet

Fenetre de sortie

1.2.

Description des icnes du mode diteur Compile le fichier actif Compile et link le projet

3/23

Recompile tout les fichiers du projets, inconditionnellement, et link. Gre les options d'un objet (slectionn dans la fentre projet , ou du projet dans sa globalit Permet de gre les groupe, les cible de compilation et les chanes de compilation utiliser. Entre ou sort du mode debug Tlcharge le programme compil dans la cible.

4/23

1.3.

Mode debuggeur

Vue processeur

Code source et desassembl

Fenetre de commande

Fentres de visualisation (stack, variables, ..)

1.4.

Description des icnes du mode debuggeur Raliser un reset sur la cible Lance le programme (run) Stop lexcution Step in (excution pas pas en suivant les appels de fonction)

5/23

Step over (excution pas pas en ignorant les appels de fonction) Step out (termine lexcution de la fonction en cours et stop) Run to (excution jusqu' la ligne en cours) Efface tous les points darrt

6/23

2. Installation de Keil et des chaines de compilation alternatives


2.1. Installation de Keil La dernire version de l'outil se trouve l'adresse http://www.keil.com. L'archive tlcharger se trouve dans le menu valuation software , puis choisir la version ARM et s'enregistrer. L'archive contient l'environnement KEIL (IDE), le compilateur fourni par ARM (qu'on appellera par la suite ARMCC), ainsi qu'un ensemble d'exemple fourni soit par KEIL, soit par le fabriquant de la puce. L'outil cherche a s'installer dans c:\keil. Mme si ce rpertoire n'est pas trs judicieux, il est prfrable de la laisser ainsi, certains outils n'aimant pas les chemins long.

Rien de spcial dans cette installation par la suite. Une fois install, l'IDE est prt tre utilis avec le compilateur ARMCC. Dans le cas de l'utilisation d'une licence, il faudra bien entendu configurer l'outil pour l'utiliser. De plus, il existe un fichier TOOLS.INI dans le rpertoire Keil. L'installation ayant t faite avec les droits administrateurs, il est prfrable de redonner des droits de simple utilisateur en criture dans ce fichier. 2.2. Installation de la chaine de compilation GCC

Si l'on souhaite utiliser le compilateur GCC (compilateur non limit et sans licence), on peut installer la chaine fournie par CodeSourcery. Il faut en tout cas une chaine supportant le Cortex-M3, patch rajout la branche principale du GCC courant 2010. L'archive peut tre tlcharg sur http://www.codesourcery.com. Il faut ensuite choisir
7/23

Codebench et plus spcifiquement la version lite . Enfin, la cible doit tre EABI. A l'installation, rien de particulier, les options par dfaut sont bien adaptes.

8/23

3. Les projets sous Keil


3.1. Cration d'un nouveau projet

La cration d'un nouveau projet commence toujours par le menu Project | New vision project . Aprs avoir indiqu dans quel rpertoire crer le projet, l'IDE demande de choisir le type de micro.

9/23

Dans la liste droulante Data Base , choisir le fabriquant (ST Microelectronique) et la puce qui va bien. Cliquer sur OK . Si la chane de compilation slectionne est ARM , l'IDE propose de rajouter au projet un fichier de dmarrage (STM32F10x.s) : celui-ci cre la table des vecteurs d'interruption et permet de faire le bootstrap du micro acceptez !

Une fois le projet cre, l'IDE ressemble cela :

10/23

La fentre Project ne contient pas grand chose a part une cible Target 1 , qui comprend un groupe Source Group 1 qui lui mme ne contient que notre fichier damorage. Les groupes sont des regroupements logiques dlments (gnralement du code source) et leurs organisations et nombres n'ont pas de rapport avec l'arborescence des mme fichiers sur le disque. C'est une vue logique ou abstraite du projet. On pourra donc crer un groupe drivers pour y mettre tout les fichiers des drivers, un groupe appli contenant les fichiers applicatifs, un groupe OS pour le systme d'exploitation, etc La cible reprsente un ensemble de paramtrage (qui englobent au final soit le simulateur, soit la cible relle). Comme paramtre variant d'une cible l'autre, on trouve les options de compilation, les clefs de compilation voir l'ajout, ou le retrait, de fichiers compiler. Ltape qui suit consiste donc rajouter des fichiers au projets. Pour ce faire, rajoutez un ou plusieurs groupe au projet, en cliquant avec le bouton droit dans la fentre de projet, sur le nom de la cible. Choisissez Add group et donnez un nom a votre groupe

11/23

Une fois le ou les groupes crs, rajoutez des fichiers ces groupe. Cliquez avec le bouton droit dans la fentre de projet sur un groupe et choisissiez Add files to group . Slectionnez le ou les fichiers souhaits et validez.

12/23

Une fois ces tapes ralises, il reste configurer le projet (options de compilation) : Cliquez sur pour ouvrir la fentre de configuration du projet.

13/23

L'onglet Target et pr-rempli lors du choix du micro. Il faut slectionner Use Micro Lib , une bibliothque plus compacte et adapte au jeu d'instructions Thumb-2. Si le quartz externe n'est pas 8 Mhz, changez la valeur. Si un systme d'exploitation de Keil doit tre utilis, choisissez le dans la liste. Les onglets Output et Listing permettent d'indiquer dans quel rpertoire gnrer le projet et quelle quantit d'information doit tre gnre. L'onglet User permet de rajouter des commandes (scripts) excutes avant, pendant ou aprs diffrentes tapes de la compilation et du link. L'onglet C/C++ (et de manire similaire l'onglet Asm ) permet de rgler les options de compilation globales du projet :

14/23

On retrouve, de haut en bas, l'activation de clef de compilation, le rglage du niveau d'optimisation, ainsi que d'options pilotant la gnration du code, et enfin la liste des rpertoires a parcourir lors des includes de fichier. La zone Misc est libre pour rajouter des options non gres par l'IHM et la zone compiler control string permet, comme son nom l'indique de vrifier la chane d'option passe au compilateur. L'onglet Linker permet, de manire similaire, de rgler les options lies ldition de lien :

15/23

De base la fentre est pr-rempli avec les informations venant de la description de la puce choisie. La plupart du temps, il n'est pas ncessaire de rgler quoi que ce soit ici. Cependant, lorsque le mapping du projet besoin dtre gr finement, on pourra agir sur un certain nombre de point : Use Memory Layout from Targetr Dialog : Lorsque cette option est active, un fichier .sct (scatter file) est gnr : il peut tre dit est servira de script au linker pour indiquer a quelles adresses doivent tre mise les diffrentes sections de code et data. Le fichier sct a utilis est indiqu dans le champ scatter file Make RW/RO Section position independant : sert a gnr du code indpendant de sa position en mmoire. Surtout utile lors de chargement dynamique de code, probablement inutile dans le cas de cette puce. Don't search standard libraries : utilis pour faire une compilation sans utilisation de bibliothque systeme (fournissant stdio.h, stdlib.h )

L'onglet debug permet de rgler ce qui a trait au debugger. C'est dans cet onglet qu'il est possible de choisir entre la cible rel, ou le simulateur.

16/23

La fentre est scinde verticalement en deux zones : gauche, les options lies au simulateur, droite les options lies une sonde de debug, et donc une cible relle. Dans les deux cas, les options sont les mme. De base, l'application est charge (flashe) au lancement du debugger. Un fichier d'initialisation peut tre fourni, les autres options ayant peu dintrt. Dans le cas du debugger physique (sonde), un bouton setting permet de rgler plus finement les options propres chaque sonde (choisie dans la liste droulante) Dans le cas d'une sonde ULINK Pro (ULINK Pro Cortex Debugger), voil le genre de fentre de rglage

17/23

Sans entrer dans les dtails, on voit en haut gauche des info lies la sonde elle-mme, ainsi que le mode de debug choisi (ici, via JTAG). En haut, droite, est indiqu le cible vue par la sonde (ici l'unit CoreSight JTAG du micro-contrleur). En bas se trouvent d'autres options pour le debug, notamment comment doit tre gr le reset. En ce qui concerne les onglets, l'onglet trace permet d'activer la trace, plus ou moins complte selon la puce et la sonde choisies. Quand l'onglet flash download , il permet d'indiquer quel algorithme utiliser lors de la programmation de la flash.

18/23

Ici, on voit que l'algorithme slectionn correspond celui pour les puces de densit moyenne (128K) 3.2. Diffrences concernant la chane de compilation GCC

Lors du choix d'une chane de compilation GCC plutt qu'ARM, le paramtrage du projet suis les mme rgles ces points prt: L'onglet Target ne contient pas de rglage particulier part le choix d'un systme d'exploitation et de la vitesse du quartz Les onglets output, listing, user, assembler et debug sont trs similaires leur version dans quand le chane ARM est slectionne L'onglet CC (qui remplace C/C++) est trs semblable son quivalent ARM sauf qu'il faut imprativement slectionner la case Compile Thumb Code : la compilation chouera sinon. L'onglet Linker permet lui aussi de choisir d'utiliser ou non les bibliothques standards. La grande diffrence est l'obligation d'utiliser un linker script (quivalent des scatter files pour ARM). Un linker script est prsent dans le rpertoire system du dpt. Il faudra penser a configurer Keil pour utiliser cette autre chaine de compilation. Pour ce faire, cliquez sur le bouton Folders/Extensions et dans la fentre qui s'ouvre, slectionnez l'onglet

19/23

Il faudra slectionner Use GNU Compiler et remplir le champ GNU-Tool-Prefix avec arm-none-eabi- (attention le '-' la fin est ncessaire). Le champ GNU-Tool Folder sera rempli avec le chemin vers le rpertoire bin de la chaine de compilation (gnralement C:\Program Files\CodeSourcery\Sourcery G++ Lite 3.3. Compilation et excution/debug d'un programme

La compilation du programme se fait en utilisant les icnes (pour une compilation uniquement des lments modifis) ou (pour une compilation totale). Une fois lopration de compilation et ldition de lien russies, le programme peut tre soit tlcharg en flash (via licne debugg (aprs avoir t tlcharg en flash) via licne . ), soit

20/23

4. Arborescence du dpt SVN


doc: Contient les datasheets, prsentations et autres manuels de programmation du microcontrleur drivers: Les drivers des priphriques sont divis en 4 groupes : statique: contient les versions des drivers prvus pour tre configurs statiquement la compilation dynamique: les versions des drivers dont la configuration se fait lexcution cpp : (en travaux): une version objet des drivers usb: les drivers de base (core) et les implmentations de classe USB. Pour l'instant, seul la classe CDC est disponible. Chaque rpertoire contient un rpertoire doc contenant le manuel d'utilisation des drivers. lib: Contient une version trs compacte de la newlib (implmentation des fonctions dfinies dans stdio., stdlib.h, string.h, etc ). Ncessaire si l'on utilise la chane de compilation GCC. Os: Contient deux OS temps rel plus ou moins aboutit: trampoline et minos, tout deux implmentant le standard Osek avec plus ou moins de rigueur. Proj: diffrents projets pour stm32 system: les fichiers de bootstrap, linker scripts et fichier de dfinition des registres (stm_regs.h)

Lors de la configuration des projets, outres les drivers, les lments important configurer sont: Rajouter le rpertoire system dans la liste des rpertoires d'include du compilateur: en effet, ce rpertoire contient le fichier stm_regs.h, qui contient la dfinition des registres du micro et sert donc de base a tous les drivers. Si l'on utilise la minilib se trouvant dans le rpertoire lib , il faut rajouter le rpertoire lib\minilib\include a la liste des repertoires d'include du compilateur. Il faut ensuite penser a rajouter le fichier syscalls-template.c dans le rpertoire de son projet (copie physique) et le renommer en syscalls.c avant de la rajouter au projet. Ce fichier sera a adapter au besoin de votre projet. De plus il faut rajouter le rpertoire lib\minilib\lib\arm-cm3 suivi de la version pour le compilateur choisi (ARMCC ou GCC) dans la liste des rpertoires de link du linker. Dans l'onglet linker de la fentre de paramtrage du projet, cela donne ca (pour GCC):

21/23

22/23

5. Problmes connus et corrections


Problme lors du tlchargement du programme. Si lors du tlchargement (Load) une erreur de type Flash download fail apparat, il faut aller vrifier: Si la chaine de compilation est ARM que dans la fentre de configuration du projet que les adresses IROM1 et IRAM1 de l'onglet target correspondent aux adresses R/O Base et R/W Base (respectivement) de l'onglet Linker . En gnral, il faut mettre : R/O Base : 08000000 R/W Base : 020000000. Quelque soit le chaine de compilation, il faut aller dans l'onglet Debug de la fentre de configuration , puis cliquer sur le bouton settings de la sonde compilation. Dans la nouvelle fentre, aller dans l'onglet Flash Download et vrifier que la zone Program Algorithm utilise le bon algorithme de programmation ( et n'est pas vide)

Le programme arrive sur une instruction BKP lors du dmarrage. Le programme se tlcharge bien sur la carte. Mais l'excution, le processeur n'atteint jamais le main du programme et bloque sur une instruction du BKP dans la disassembly window. En simul, pas de pb. Ce problme n'arrive que lorsque l'on utilise la chaine de compilation ARMCC. Vrifier dans la fentre de configuration du projet, onglet Target que l'option Use MicroLIB est bien active. Sans cela, la bibliothque utilise en dbug fait appel une instruction bkp break point qui n'est pas adapt au CM3. En utilisant Microlib l'instruction bkp n'est pas prsente.

23/23

Anda mungkin juga menyukai