Transcript TP1_énoncé
TP1
Enoncé
novembre 2014
J.Callot L.Piedfort
1
Objectifs
• Générer un environnement de travail avec Code Warrior
• Prendre en main Code Warrior en debug
• Piloter les LEDs du kit (chenillard)
novembre 2014
J.Callot L.Piedfort
2
Générer un environnement de travail avec
Code Warrior
• Suivre les directives du document:
Démarrage_code_warrior_K60.ppt
novembre 2014
J.Callot L.Piedfort
3
Prise en main de Code Warrior en debug
•
Ecrire le programme suivant
#include "derivative.h" /* include peripheral declarations */
int som(int,int);
int main(void) {
volatile int i = 0;
int v1=0x10,v2=0x20,resu=0;
volatile v3=0x100,v4=0x150,resu2=0;
/* Loop forever */
for (;;) {
i++;
resu=som(v1,v2);
v1=v1+1;
v2=v2+1;
resu2=som(v3,v4);
v3=v3+1;
v4=v4+1;
}
}
som(a,b)
{
int res;
res=a+b;
return (res);
}
novembre 2014
J.Callot L.Piedfort
4
Prise en main de Code Warrior en debug
• Voir les commandes de déroulement (Step into, Step over, Step
return, Resume, Suspend)
• Mettre des break points
• Visualiser les variables ou les registre GPR en fonction des besoins
• Etudier le passage de paramètres entrée et sortie de fonctions
• Ajouter une fenêtre de visualisation de la zone mémoire de la pile
• la pile est mappée en 0x20010000
• Faire le relevé de la pile pour le main et le sous programme
novembre 2014
J.Callot L.Piedfort
5
Chenillard
• Etudier les chapitres 10,11,12 du user manual
• Repérer sur le schéma de la carte les adresses des
LEDs
• Programmer les registres PCR et du SIM pour que
toutes les LEDs soient éteintes au démarrage
• Créer une fonction delay d’environ 1 ms, elle sera
appelée 1000 fois pour faire allumer 1 s chaque LED,
avant de passer a la suivante.
• Tester en pas à pas puis en run
novembre 2014
J.Callot L.Piedfort
6