AccueilAccueil  CalendrierCalendrier  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  

Partagez | 
 

 [JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<

Aller en bas 
AuteurMessage
AntoninCastel
Petit Lama de la Cambrousse



MessageSujet: [JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<   Mer 10 Jan - 19:34

----- Première semaine -----


Lundi -
  Lecture du sujet, incompréhension et recherche du groupe.
  Puis on a fait Memory tous ensemble.

Mardi - Mercredi
  J'ai complété arm_instruction.c, en essayant de décortiquer la page 110 de la doc pour savoir quel type d'instruction allait dans quelle fonctions fournie, et on a aussi vérifié que les conditions étaient valides. (par rapport aux flags et la page 112 de la doc)
J'ai surtout passé des heures à lire la doc pour comprendre ce qu'on était sensé faire.

Jeudi -
  On a commencé à se repartir les taches, j'ai donc fait arm_branch_other.c, qui fonctionne comme ça :
On a une instruction de 32 bits, les 4 premiers sont la condition (déjà testée donc on s'en fiche) les 3 suivant sont ceux qui déterminent que c'est un branchement, le bit 24 est L, qui indique si le contenu de PC doit être sauvegardé dans LR ou non, et ensuite du 23 eme bit au 0 eme on a l'adresse sur laquelle on doit se "brancher".

Le principe est le suivant :
   Si L == 1, on met le contenu du R15 dans R14
   On récupère les 24 bits d'adresse de l'instruction,  que l'on veut passer sur 30 en rajoutant soit des 1 soit des 0 du 24eme au 29eme bit en fonction du signe de l'adresse.
Si elle est négative on rajoute des 1, si elle est positive on rajoute des 0.
   On test donc le 23 eme bit (on est en big endian) :
       - Si il est à 1 on fait un OU logique bit à bit avec l'adresse de 24 bits et 0x3F000000 (ça va avoir pour effet de rajouter des 1 là ou il faut)
       - Si il est à 0, on ne fait rien , car la valeur est déjà définie sur 32 bits, même si seuls 24 sont utilisés, donc les 0 sont déjà là ou il faut. (Ou si vous préférez on fait un ET logique bit à bit entre l'adresse de 24 bits et 0x00FFFFFF
, ce qui ne sert à rien mais qui est plus clair)

Ensuite on a donc un adresse sur 30 bits, qu'on shift à gauche de 2 pour avoir une adresse sur 32 bits, que l'on met dans PC.

Vendredi -
   J'ai absolument rien fait qui avait un rapport de près ou de loin avec le projet, vu que j'ai fait mes cartons pour déménager. [Edit du Grand Lama : Le Grand Lama te pardonne.]

-------- Deuxième semaine -------


Lundi -
   J'ai fini les branchements, en faisant quelques jeux de test qui fonctionnent. [Edit du Grand Lama : Poste tes jeux de tests !]

Mardi -
   J'ai passé la journée à tester toutes les fonctions de la partie data Processing, en faisant des jeux de test pour essayer de couvrir toutes les possibilités, c'était passionnant (mais ça marchait à peu près) [Edit du Grand Lama : C'est parce-que Elisa est un génie tavu.]

Mercredi -
   Apprentissage de Github  :D
   Et j'ai continué les jeux de test pour data Processing, sauf que ca marche de plus en plus. [Edit du Grand Lama : Ca c'est parce-que chui aussi un génie.]
Et la je vais sûrement tester tout ce qui est load/store. [Edit du Grand Lama : Il nous faudrait un compte-rendu pour le load-store. 8D]

Anticipation sur jeudi -
   Je vais sûrement finir les jeux de test, les inclure au Makefile pour qu'il marchent pour la soutenance, et faire diverse préparation pour la soutenance, genre compte rendu [Edit du Grand Lama : Le Grand Lama ici présent s'occupe du compte-rendu.], journal ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Elisagh
Petit Lama de la Cambrousse



MessageSujet: Re: [JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<   Jeu 11 Jan - 15:43

JOURNAL


JOUR 1:
Lecture du sujet
Création de Mémory (Antonin, Hanyuan, Elisa)
Création de Registre (Manal)


JOURS 2 et 3 :
Lecture de la doc
Arm_instruction.c


JOUR 4 : Répartition des tâches :
Arm_data_processing (Manal, Elisa)
Arm_Branch_other (Antonin)
Arm_load_store (Hanyuan)


JOUR 5 : Suite codage des fonctions


JOUR 6 :
Suite data_processing (Manal, Elisa)
Suite Load_store (Hanyuan)
Test Branchement (Antonin)


JOUR 7 :
Mise en commun des 2 parties de data_processing + factorisation (Elisa, Manal)
Suite Load_store (Hanyuan)
Tests des fonctions du data_processing (Antonin)
-> Problème avec le shifter_operand (LSL, LSR ...)


JOUR 8 :
Réglage du problème avec le shifter_operand (Manal, Elisa)
Suite Load_store (Hanyuan)
Suite tests fonctions du data_processing (Antonin)


JOUR 9 :
Tests Load_store
Choix des exemples pour la soutenance




Revenir en haut Aller en bas
Voir le profil de l'utilisateur
marcma7358
Petit Lama de la Cambrousse



MessageSujet: Les informations importantes pour Load_and_Store   Jeu 11 Jan - 16:26

Pour la partie ¨Load and Store, le travail le plus important est fixer un structure et un logique assez claire et éviter des répétitions des mesures.

Donc on sépare le programme en 2 parties, la première est prendre l'adresse qu'on veut et changer la valeur du registre si c'est nécessaire, la deuxième parite est load/store le word/half word/byte d'après l'adresse donnée par la première partie.

La première partie :
On peut voir en général,il y a 3 formes de ¨encoding¨ pour le mode adresse,ils sont immdiate offset/index,register offset/index,scaled register offset/index, et plus pour chaque forme, il exite 3 sous-formes,ce sont post-indexed addressing, offset addressing et pre-indexed addressing.
Donc il y a 9 branches possible, on trouve que LDR, LDRB, STR, STRB sont dans les branches"post-indexed addressing".

La deuxième partie :
On utilise switch à classifier s'il faut un mot ou un octet et s'il est load ou store.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Manael
Lama Impérial
avatar


MessageSujet: Re: [JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<   Jeu 11 Jan - 16:27

Du coup, on a fait aussi la fonction MRS aussi, (classé dans miscellaneous, page 224 du manuel).

Il se contente juste d'écrire dans un registre donné, le contenu du CPSR, ou du SPSR (avec une option pour choisir entre les deux.)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
marcma7358
Petit Lama de la Cambrousse



MessageSujet: Re: [JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<   Jeu 11 Jan - 17:05

JOUR 1:
Lecture du sujet
Compléter les parties memory et register(tout le groupe)


JOURS 2 et 3 :
Lecture du manuel(c’est catastrophe!)


JOUR 4 : Répartition des tâches :
Arm_data_processing (Manal, Elisa)
Arm_Branch_other (Antonin)
Arm_load_store (Hanyuan)


JOUR 5 : Suite codage des fonctions
Trouve que il y a 6 bits importants dans l’instruction, mais on ne peut pas tous les rédiger(et c’est pas nécessaire), donc j’essaie de prendre tous les bits en même temps, et j’essaie de rédiger seulement les instructions essentielles tout d’abord.

JOUR 6 :
Suite data_processing (Manal, Elisa)
Suite Load_store (Hanyuan)
Test Branchement (Antonin)


JOUR 7 :
Le prof me dit qu’il y a trop de répétitions dans mon code, donc je décide une nouvelle structure
Relire le manuel et chercher une structure plus claire et simple.

JOUR 8 :
Trouver une structure idéale, même si le code se semble beaucoup plus longue qu’avant, mais l’esprit est plus simple et j’ai essayé d’évider la répétition du code.

JOUR 9 :
Tests Load_store
Choix des exemples pour la soutenance
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<   

Revenir en haut Aller en bas
 
[JOUR 9] Antonin, t'es vraiment un anticonformiste ! D:<
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu]Mis a jour impossible avec Antivir
» Spécial réveillon du jour de l'An
» Attention : Fausse mise à jour qui cache un cheval de Troie !
» Mises à jour des logiciels du pack
» antivir périmé, mise à jour KO

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
GP-12 :: Organisation :: Planning-
Sauter vers: