OSPP (1DT096) 2018 - Project iota
Armadillo is a very simple operating system for the MIPS Malta board, created as a group project in Operating systems and process oriented programming (1DT096), spring 2018, Uppsala university.
- Mipsel-elf cross compiler (See GCC Cross-Compiler)
- Qemu (Developed using version 2.11.1)
- GDB cross compiled for mipsel-elf. (See Cross build GDB)
The Makefile
includes a bunch of rules to build, compile, run and test the system.
To compile the project, use compile
. This compiles and creates object files in the obj
directory, but does not build a binary.
> make compile
Compilation done...
To create a binary, use the rule make build
. This will, if necessary, compile and link the object files.
> make build
Linking the kernel...
You can run Armadillo using the QEMU emulator.
> make run
Running armadillo.elf on qemu with flags: -M malta -m 256 -serial stdio
Unit tests are included. Run them with test
.
> make test
...
All tests passed!
Debugging Armadillo requires GDB
. Start by running the OS in debug mode, and then send the job to the background before starting GDB
:
> make debug
[ctrl+z]
> bg
> make gdb
.
โโโ Doxyfile
โโโ Makefile
โโโ README.md
โโโ bin
โโโ docs
โโโ guidelines
โย ย โโโ git.md
โย ย โโโ styleguide.md
โโโ meta
โย ย โโโ gruppkontrakt.md
โย ย โโโ medlemmar.md
โย ย โโโ meetings
โโโ obj
โโโ src
โย ย โโโ common
โย ย โย ย โโโ k_rand.c
โย ย โย ย โโโ memory.c
โย ย โย ย โโโ queue.c
โย ย โย ย โโโ stack.c
โย ย โย ย โโโ stdio.c
โย ย โย ย โโโ stdlib.c
โย ย โโโ include
โย ย โย ย โโโ common
โย ย โย ย โย ย โโโ k_rand.h
โย ย โย ย โย ย โโโ math.h
โย ย โย ย โย ย โโโ memory.h
โย ย โย ย โย ย โโโ processes.h
โย ย โย ย โย ย โโโ queue.h
โย ย โย ย โย ย โโโ stack.h
โย ย โย ย โย ย โโโ stdint.h
โย ย โย ย โย ย โโโ stdio.h
โย ย โย ย โย ย โโโ stdlib.h
โย ย โย ย โโโ kernel
โย ย โย ย โย ย โโโ dispatcher.h
โย ย โย ย โย ย โโโ exceptions.h
โย ย โย ย โย ย โโโ pcb.h
โย ย โย ย โโโ mips
โย ย โย ย โโโ adresses.h
โย ย โย ย โโโ bitmasks.h
โย ย โย ย โโโ registers.h
โย ย โโโ kernel
โย ย โย ย โโโ boot.S
โย ย โย ย โโโ context_switch.S
โย ย โย ย โโโ dispatcher.c
โย ย โย ย โโโ exceptions.S
โย ย โย ย โโโ kernel.c
โย ย โย ย โโโ pcb.c
โย ย โย ย โโโ processes.c
โย ย โย ย โโโ rand.S
โย ย โย ย โโโ timer.S
โย ย โโโ linker.ld
โโโ tests
โโโ include
โย ย โโโ minunit
โย ย โย ย โโโ unit.h
โย ย โโโ test_dispatcher.h
โย ย โโโ test_memory.h
โย ย โโโ test_stack.h
โย ย โโโ test_stdlib.h
โโโ kernel
โย ย โโโ test_boot.S
โย ย โโโ test_exception.S
โย ย โโโ test_kernel.c
โโโ linker.ld
โโโ test_dispatcher.c
โโโ test_main.c
โโโ test_memory.c
โโโ test_stack.c
โโโ test_stdlib.c
Here you'll find the documentation for Armadillo, along with some useful links.