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.