IUT GEII Rouen TP II2
2005 / 2006 - Page 2 / 5 -
logicielles (mémoire vive, services divers) à votre programme, de façon transparente
pour vous: Lorsque vous faîtes une saisie clavier, vous n'avez pas à vous soucier de la
façon dont le clavier est géré électroniquement: vous utilisez directement la fonction
fournie par le système d'exploitation. Lorsque vous chargez/exécutez un programme,
vous ne vous souciez pas de l'endroit auquel il est chargé en mémoire: l'O.S. vous
facilite le travail.
- En programmation "embarquée" (embedded en anglais), il y des limitations matérielles:
pas de disque dur, taille et consommation limitées: on travaille le plus souvent sans O.S.
Il faut alors directement gérer les périphériques et la mémoire dans son programme !
De plus, les périphériques n'étant pas ceux d'un ordinateur traditionnel, les fonctions
classiques d'E/S n'ont plus de raisons d'être: on peut tout de suite oublier la fonction
'printf()' quand l'affichage se résume à des DELs!
A5 - Quelques notions essentielles à comprendre avant de passer à la suite
• Le processeur va exécuter un programme, suite d'instructions rangées
séquentiellement en mémoire. Les données (variables) seront stockées en
mémoire RAM
• La mémoire est à considérer comme une suite de cellules, numérotées, chacune
d'elle pouvant contenir une valeur.
• La taille de base de chaque cellule est l'octet (8bits), la valeur contenue sera
donc comprise entre 0 et 255 ($FF).
• Le CPU est doté de registres-CPU, distincts de la mémoire, dans lesquels on peut
lire ou écrire des valeurs, qui sont mémorisées (voir 1ère page poly.)
• Parmi ceux-ci, les accumulateurs A et B sont utilisés pour effectuer des
opérations arithmétiques et logiques, grâce à l'ALU intégrée dans le processeur.
• Outre le résultat, cette ALU positionne des bits d'états, indiquant s'il y a eu:
un résultat égal à zéro bit Z comme
Zero
un résultat négatif bit N comme
Negative
un débordement logique bit C comme
Carry
un débordement arithmétique bit V comme
oVerflow
• Ces bits d'états sont regroupés dans un registre-CPU appelé registre Code
Condition (CC) (Voir 1ère page du poly)
• Le CPU est doté d'un registre "Compteur Ordinal" (
Program Counter
, PC), qui
contient toujours l'adresse de l'instruction en cours d'exécution.
• Le programme est constitué de codes opératoires stockés sur 1 ou 2 octets,
spécifiques au type de processeur. par exemple, sur celui-ci, l'instruction pour
additionner les 2 accumulateurs correspondra au code '$1B' en mémoire-
programme
• Le processeur pourra accéder aux périphériques via des ports d'E/S, qui sont à
considérer comme des adresses d'un point de vue du processeur.
• Afin de faciliter la programmation, on ne travaille pas avec les codes opératoires,
mais on attribue des noms aux instructions, qu'on appelle les mnémoniques. Ces
mnémoniques sont regroupés dans le jeu d'instructions du processeur.
PARTIE B - FAMILIARISATION AVEC LE DEBOGUEUR "NOICE"
L'objectif d'un un logiciel débogueur est de permettre le téléchargement du
programme utilisateur dans la mémoire RAM ou FLASH du composant, et de permettre
la vérification de son bon fonctionnement: exécution pas à pas, examen et édition de la
mémoire, etc, via une interface-utilisateur ergonomique. Il doit arriver à contrôler le
processeur cible.
Ceci est possible via un petit programme implanté en mémoire Flash dans le processeur
cible appèle le moniteur, et qui intercepte les commandes du logiciel débogueur, et les
exécute, en renvoyant éventuellement les données demandées, via une liaison série
(câble de connexion entre le PC et la carte-cible).
Il arrive néanmoins que cette communication échoue, pour diverses raisons. La seule
solution pour "récupérer la main" est alors un "Reset", qui pourra être fait:
• soit par le bouton poussoir sur la carte
• soit par le "bouton-logiciel" de la barre d'outil, avec la souris.
Travail proposé
Sur le bureau Windows, ouvrir le dossier "TP II2", et lancer le programme "NoIce".
Vous obtenez l'écran suivant, découpé en 3 parties :