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 stdioUnit 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.cHere you'll find the documentation for Armadillo, along with some useful links.