Académique Documents
Professionnel Documents
Culture Documents
Caractéristiques :
2
3. UART
Une liaison série consiste à envoyer une information bit après bit avec un délai entre
chacun. Le bus Universal Asynchronous Receiver Transmitter (UART) est une implémentation
de ce principe.
La communication via l’UART se fait par l’envoi d’une trame c’est-à-dire un paquet de bits
que l’on ne peut pas subdiviser. Le protocole RS232 définit une trame comme étant
constituée de :
4. Le simulateur Or1ksim
3
L’affectation d’adressage physique de l’ensemble des éléments de la plateforme se
trouve dans un fichier nommé Board.h, ou on va définir les paramètres comme l’horloge a
25Mhz, et la taille des blocks et leurs adresses.
Donc je vais essayer de rédiger ce que j’ai fait pendant les séances de TP.
Les étapes de simulation du programme :
La première étape est de créer un éditeur de texte, pour cela j’ai utilisé l’éditeur vi.
Pour lancer l’éditeur j’ai utilisé la commande : $ vi Hello.c
Dans l’éditeur j’ai tapé le code suivant :
4
En effet ce programme permet d’envoyer la chaine de caractères ‘’Hello InFotronique’’,
en utilisant la communication série, les deux fonctions utilisés sont uart_init() pour initialiser
la communication série, la deuxième est uart_putc() pour envoyer les caractères de la
chaine, sans oublier de déclarer cette dernière avec un pointeur pour la stocker avec une
adresse.
Graphe de dépendance :
Ce graphe montre la relation entre les différents fichiers que je vais les créés afin
d’obtenir le fichier exécutable hello.or32
Le premier programme que j’ai créé est reset.S qui permet d’initialiser le pointeur de pile
et de se brancher à la partie principale du programme.
Le programme est comme suit :
5
Pour le compiler j’ai tapé la commande suivante :
Ensuite j’ai compilé les fichiers uart.c et uart.h, afin d’utiliser le driver de l’uart, pour
cela j’ai tapé la commande suivante :
Puis il reste de compiler le programme principale qui est hello.c par la commande suivante :
Maintenant il reste de faire le lien entre les 3 fichiers compilés (reset.o, uart.o et hello.o),
pour cela j’ai tapé la commande suivante :
Au final j’ai obtenu un exécutable qui est hello.or32, pour le visualiser et l’analyser j’ai
tapé la commande suivante :
Comme vous voyez dans la figure ci-dessus l’affichage des diffèrentes sections :
La section (.text) contient les instructions.
La section (.data) contient les variables globales et locales initialisées.
La section (.bss) contient l’ensemble des variables non initialisées.
6
La section (.rodata) contient les données non altérables comme les constantes, les chaînes
de caractères.
La section (.stack) est dédiée pour la pile.
Dans cette partie je vais lancer l’or1ksim, pour cela j’ai tapé la commande suivante :
Un débogueur est pour objectif de lancer des programmes en même temps que le
programme principal afin de donner les possibilités de contrôler et d’examiner l’état des
variables internes lors d’une erreur, on a utilisé débogueur GDB.
Pour le CPU qu’on possède, je peux effectuer le débogage via la liaison JTAG entre le
débogueur et le CPU OR32.
7
Alors pour exécuter ce débogueur j’ai dû ouvrir deux terminales le premier afin de lancer
la plate-forme de simulation or1k et en exécutant la ligne de commande suivante :
Puis le deuxième terminal dans lequel je vais exécuter le débogueur par la commande
suivante :
Par la suite je dois définir la cible du débogueur en configurant le port JTAG qui a
l’adresse 9999 afin de se connecter au débogueur du simulateur or1ksim, ainsi que l’adresse
est configurable sur le fichier de configuration sim.cfg défini précédemment.
J’ai tapé la commande suivante pour établir la connexion :
Pour charger mon fichier exécutable que j’ai tapé la commande suivante :
Maintenant il faut lancer le reset du or1ksim qui se situe à l’adresse 0x100, alors j’ai
effectué les commandes suivantes :
Conclusion :
Ce TP a été une opportunité de découvrir le processeur RISC 1200 avec ses différentes
fonctionnalités, ou j’ai appris comment travailler sur un simulateur Or1ksim, et générer le
fichier exécutable adapté au processeur RISC.
Lors du problème technique lié à la connexion au serveur je n’ai pas pu vous montrez les
résultats des simulations des commandes.