Merge branch 'thread_scheduler' of https://gitlab.istic.univ-rennes1.fr/simpleos/burritos into thread_scheduler

This commit is contained in:
amaury
2023-03-13 18:48:32 +01:00
76 changed files with 9481 additions and 416 deletions

View File

@ -1,14 +0,0 @@
TOPDIR=.
include $(TOPDIR)/Makefile.config
#
# Main targets
#
objdumps:
$(MAKE) -C riscv_instructions
programs:
$(MAKE) -C programs
clean:
rm -rf $(TOPDIR)/target

View File

@ -1,18 +0,0 @@
# This is part of a GNU -*- Makefile -*-, to specify system-dependent
# parts of the Makefile enviroment.
#
# This gets included as part of the GNU-Makefile used in each of
# the subdirectories.
#
# Depending on your platform, you need to select the correct definition.
## RISCV target compilation toolchain
RISCV_PREFIX=/opt/riscv/bin/
RISCV_AS = $(RISCV_PREFIX)riscv64-unknown-elf-gcc -x assembler-with-cpp -march=rv64imfd
RISCV_GCC = $(RISCV_PREFIX)riscv64-unknown-elf-gcc
RISCV_LD = $(RISCV_PREFIX)riscv64-unknown-elf-ld
RISCV_OBJDUMP = $(RISCV_PREFIX)riscv64-unknown-elf-objdump
RISCV_ASFLAGS = $(RISCV_CPPFLAGS)
RISCV_CPPFLAGS = #nil
RISCV_CFLAGS = -Wall $(RISCV_CPPFLAGS) -march=rv64imfd
RISCV_LDFLAGS = #nil

View File

@ -1,24 +0,0 @@
include $(TOPDIR)/Makefile.config
COVERAGE = $(TOPDIR)/riscv_instructions
AS = $(RISCV_AS) -c
GCC = $(RISCV_GCC)
LD = $(RISCV_LD)
INCPATH += -I$(TOPDIR) -I$(COVERAGE)
ASFLAGS = $(RISCV_ASFLAGS) $(INCPATH)
CFLAGS = $(RISCV_CFLAGS) $(INCPATH)
# Rules
%.a:
$(AR) rcv $@ $^
%.o: %.c
$(GCC) $(CFLAGS) -c $<
%.o: %.s
$(AS) $(ASFLAGS) -c $<
$(PROGRAMS):
$(LD) $+ -o $@

View File

@ -1,28 +0,0 @@
# BurritOS Test programs
This folder contains small C programs pertaining to the assessment of the correctness of BurritOS' behavior.
## Folder Structure
- **riscv_instructions**: contains small programs for testing simulator instruction coverage.
## How to build
### In the Makefile.config file
Set the variables to the correct paths for the [RISCV Newlib compilation toolchain](https://github.com/riscv-collab/riscv-gnu-toolchain). Simply changing the `RISCV_PREFIX` variable should do the trick. **Do not forget to add a trailing slash**.
### Exporting objdumps
```
$ make objdumps
```
### Compiling programs
```
$ make programs
```
### Cleaning
```
$ make clean
```
### Output folder
Compilation results are located in the target/objdumps and target/programs directories.

View File

@ -1,2 +0,0 @@
TOPDIR = ../
include $(TOPDIR)/Makefile.objdumps

View File

@ -1,15 +0,0 @@
int main() {
int x = 0;
int y = 1;
while (x <= y) {
if (x > y) {
x += 1;
} else if (x == y) {
x += y;
} else if (x < y) {
y += 1;
} else {
return;
}
}
}

View File

@ -1,10 +0,0 @@
int main() {
int x = 1;
if (x == 1 && x > 0) {
x = 2;
} else if (x || x == 0 ) {
x = 3;
} else {
x = 0;
}
}

View File

@ -1,7 +0,0 @@
int main() {
int x = 0;
switch(1) {
case 1: x = 1; break;
default: return;
}
}

View File

@ -1,7 +0,0 @@
int test() {
return 1;
}
int main() {
int x = test();
}

View File

@ -1,3 +0,0 @@
int main() {
return 1;
}

View File

@ -1,15 +0,0 @@
# Simple arithmetics program
These allow to check whether the following instructions are correctly implemented.
- addi
- sd
- sw
- li
- sw
- lw
- mv
- addw
- nop
- ld
- ret

View File

@ -1,6 +0,0 @@
// EXPECTS TWO VARIABLES WITH A VALUE OF UNSIGNED 1
void main() {
unsigned int x = 0;
unsigned int y = 1;
x = x + y;
}

View File

@ -1,6 +0,0 @@
// Expecting two variables with a value of two
void main() {
unsigned int x = 4;
unsigned int y = 2;
x = x / y;
}

View File

@ -1,6 +0,0 @@
// EXPECTS TWO VARIABLES WITH A VALUE OF UNSIGNED 2
void main() {
unsigned int x = 1;
unsigned int y = 2;
x = x * y;
}

View File

@ -1,6 +0,0 @@
// EXPECTS TWO VARIABLES WITH A VALUE OF UNSIGNED 1
void main() {
unsigned int x = 1;
unsigned int y = 1;
x = x - y;
}