Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# SAE 5.A.01 Manuelle d'utilisation
## Liverable 1
Ce livrable décode le code assembleur risc-v donné et donne les instructions décodées.
Les instructions décodées sont affichées dans le format suivant :
```csv
offset, word, opcode, encoding
```
Pour le démarer, lancez les commandes suivantes depuis la racine du projet:
```bash
docker build -t liverable1 -f Dockerfile.l1 .
docker run -it --rm liverable1
```
La commande par défaut est '-h', qui affiche le message d'aide.
Un fichier de test est fourni, pour le lancer, exécutez la commande suivante :
```bash
docker run -it --rm liverable1 res/test_files/decode/decode_riscv_test_file.bin
```
## Liverable 2
Ce livrable désassemble le code assembleur risc-v donné et donne les instructions désassemblées.
Les instructions désassemblées sont affichées dans le format suivant :
```
offset: disassembled_instruction parameters // imm in hex if there is one
```
Pour le démarer, lancez les commandes suivantes depuis la racine du projet :
```bash
docker build -t liverable2 -f Dockerfile.l2 .
docker run -it --rm liverable2
```
La commande par défaut est '-h', qui affiche le message d'aide.
Un fichier de test est fourni, pour le lancer, exécutez la commande suivante :
```bash
docker run -it --rm liverable2 res/test_files/disas/disas_test_all_commands.bin
```
## Liverable 3
Ce livrable est un émulateur pour le code assembleur risc-v donné.
L'émulateur exécute le code assembleur risc-v donné.
Ce livrable n'implémente pas le semihosting.
Pour l'exécuter, lancez les commandes suivantes depuis la racine du projet :
```bash
docker build -t liverable3 -f Dockerfile.l3 .
docker run -it --rm liverable3
```
La commande par défaut est '-h', qui affiche le message d'aide.
Un fichier de test est fourni. À la fin de ce test, il est attendu qu'en tapant x/4 10000, la sortie soit '29 af 52 47'.
Pour lancer le fichier de test, exécutez la commande suivante :
```bash
docker run -it --rm liverable3 -pc 0x100 res/test_files/emulator/crc.bin
```
Comme cet émulateur est codé en Python, il est assez lent, donc laissez-lui un peu de temps pour terminer.
## Liverable 4
Ce livrable est un émulateur pour le code assembleur risc-v donné.
L'émulateur exécute le code assembleur risc-v donné.
Ce livrable implémente le semihosting.
Pour l'exécuter, lancez les commandes suivantes depuis la racine du projet :
```bash
docker build -t liverable4 -f Dockerfile.l4 .
docker run -it --rm liverable4
```
La commande par défaut est '-h', qui affiche le message d'aide.
Un fichier de test est fourni. À la fin de ce test, il est attendu qu'en tapant x/4 10000, la sortie soit '29 af 52 47'.
Pour lancer le fichier de test, exécutez la commande suivante :
```bash
docker run -it --rm liverable4 -pc 0x100 res/test_files/emulator/crc.bin
```
Pour tester le semihosting, vous pouvez utiliser chaque fichier du répertoire `res/test_files/emulator/rv32ui'.
```bash
docker run -it --rm liverable4 res/test_files/emulator/rv32ui/add.bin
docker run -it --rm liverable4 res/test_files/emulator/rv32ui/addi.bin
...
```