novembre 2014J.Callot L.Piedfort1 TP1 Enoncé
novembre 2014J.Callot L.Piedfort2 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 2014J.Callot L.Piedfort3 Générer un environnement de travail avec Code Warrior Suivre les directives du document: Démarrage_code_warrior_K60.ppt
novembre 2014J.Callot L.Piedfort4 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 2014J.Callot L.Piedfort5 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 0x Faire le relevé de la pile pour le main et le sous programme
novembre 2014J.Callot L.Piedfort6 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