C with Device Initialization Tutorial
Traduction du tutorial animé disponible dans l'IDE
de CodeWarrior
Initialisation
de configuration matérielle
Le plugin d'initialisation
de configuration matérielle est un outil facile à utiliser mais puissant
pour configurer et produire un code d'initialisation pour les périphériques de
MCU. Pour plus d'information voir svp l'aide en ligne d'initalisation de matériel.
Contenu du tutoriel
Ce tutoriel
simple décrit la création d'un projet en langage C Avec l'outil rapide de développement
d'initialisation de configuration matérielle d'applications. Le résultat
du projet est une application simple de clignotement d'une LED. La LED est reliée
à une broche de l'unité centrale et elle est commandée par une interruption périodique
générée par un timer.
1-
Cliquez sur le bouton Create New Project dans l'écran de démarrage.
Si CodeWarrior tourne déjà, appelez l'assistant en utilisant le menu File...
New Project.
2- Entrez "LED1C" comme nom de projet et cliquez sur le bouton Next
3- Choisissez le MC9S08GB60 CPU (HCS08-->HCS08G family-->MC9S08GB60)
et sélectionnez la connexion pour le déboguage (par exemple P&E Multilink/Cyclone
Pro).
Cliquez sur le bouton Next
4-Cliquez sur le bouton Next pour éviter l'addition de fichiers externes
5-
Sélectionnez Device Initialization dans les Options de Développement
Rapide d'Applications
et cliquez sur le bouton finish
6- Cliquez
sur le champ PTF pour configurer le port F.
La broche 0 de ce
port, connectée à une LED sera utilisée comme une sortie.
7-
Modifiez la propriété Port control dans le groupe Settings pour la positionner
sur la valeur Individual pins
8-
Enable Pin 0 et mettez sa direction en Outpout (cliquez
sur le bouton avec la flèche antihoraire et utilisez le menu déroulant pour la
direction).
9-
Cliquez sur le champ TPM1 pour configurer le timer.
Les interruptions
de ce timer seront utilisées pour faire clignoter la LED.
Positionnez le paramètre
de la Clock source select (dans le groupe 'Settings') à Bus rate clock
(menu déroulant)
Sélectionnez 32 comme prescaler. (menu déroulant)
L'initialisation du timer continue dans l'étape suivante
10- Enable Overflow interrupt dans le groupe Interrupts.
Ecrivez
LEDtimer dans le cartouche ISR name
Cliquez sur le bouton OK
pour confirmer l'initialisation
11- Cliquez sur Generate Code pour appeler le Code Generation Options
Dialog
Cliquez sur le bouton Generate pour générer le code
Confirmez en cliquant sur le bouton OK
Le code généré apparait dans
le dossier Generated code dans la liste des fichiers CodeWarrior
12- La fonction générée MCU_init du fichier MCUinit.c doit être appelée au
démarrage de la routine principale
Double-cliquez
sur le fichier main.c pour l'ouvrir dans l'éditeur et supprimez l'état de commentaire
de la ligne avec l'appel à la fonction MCU_init:
/* MCU_init();*/
Fermez
alors la fenêtre de l'éditeur et cliquez sur le bouton Save dans le dialogue d'enregistrement
pour enregistrer le fichier
13- Il est nécessaire de sortir du commentaire la déclaration du
vecteur 0 dans le fichier Project.prm parce qu'il est remplacé par la table de
vecteurs d'interruption générée par l'outil d'initialisation de matériel dans
le fichier MCUinit.c
Déroulez
le dossier Project Settings / Linker files dans la table des fichiers du
panneau de projet et double-cliquez sur le fichier Project.prm pour l'ouvrir dans
l'éditeur. Sortez du commentaire la ligne suivante en placant deux slashes //
au début de la ligne:
VECTOR 0 _Startup /* Reset vector....
Fermez alors la fenêtre de l'éditeur et cliquez sur le
bouton save dans le doalogue d'enregistrement pour enregistrer le fichier
14-
Tapez ou copiez les 3 lignes suivantes dans le corps généré (par l'assistant)
du LEDtimer ISR du fichier MCUinit.c à la place de "*/write
your interrupt code here.../*":
PTFD_PTFD0
= ~PTFD_PTFD0; // invert the output values
TPM1SC; // read the timer overflow status
TPM1SC_TOF = 0; // and clear it
15- Cliquez sur l'icône Make pour compiler et
"linker" l'application
Ignorez le message d'avertissement du compilateur
Cliquez sur l'icône Debug pour lancer le débogueur
** Dans le débogueur sélectionnez votre type de connexion, cliquez sur le bouton Connect et confirmez le dialogue de programmation de la mémoir flash.
Lancez l'application en utilisant l'icône Start et la LED devrait clignoter à des intervalles de 0.5 secondes.
NB: ce dernier point ne s'applique pas au JMBadge
qui a un mode de téléchargement du code assembeur qui fait appel
à un bootloader particulier qui charge des fichiers au format .S19
par glisser déposer dans le dossier du périphérique
USB Removable Disk:
Vous trouverez le fichier xxx.S19 dans le dossier Bin de votre application
Exemple: si vous avez créé un projet LEDapp, vous le trouverez
dans le dossier LEDapp > bin > LEDApp.S19