mirror of
https://github.com/saymrwulf/xous-core.git
synced 2026-11-05 04:37:13 +00:00
Xous SDK (pinned for betrusted transpilation)
This gets the Betrusted LCD demo working within emulation, which means it ought to work on real hardware. Signed-off-by: Sean Cross <sean@xobs.io> |
||
|---|---|---|
| .cargo | ||
| docs | ||
| emulation | ||
| examples | ||
| kernel | ||
| loader | ||
| macros | ||
| tools | ||
| xous-rs | ||
| xtask | ||
| .gitattributes | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| README.md | ||
Xous Core
Core files for the Xous microkernel operating system.
This repository contains everything necessary to build the Xous kernel from source. It consists of the following projects:
- kernel: core memory manager, irq manager, and syscallhandler
- loader: initial loader used to start the kernel
- tools: programs used to construct a final boot image
- docs: documentation on various aspects of Xous
- emulation: Renode scripts used to emulate Xous
- xous-rs: userspace library
Generating an image
You can build all Xous packages by running:
$ rustup target add riscv32imac-unknown-none-elf
$ cargo build --target riscv32imac-unknown-none-elf
$ cd kernel
$ cargo build -p kernel --target riscv32imac-unknown-none-elf
$ cd ..
$ cd loader
$ cargo build -p loader --target riscv32imac-unknown-none-elf
$ cd ..
This will compile all runtime packages for riscv32imac-unknown-none-elf.
Note that the kernel and loader must currently be built separately, due
to the fact that they have custom linker scripts.
These need to be packaged into a loadable binary. You can generate such a binary by running the following:
$ cargo run -p tools --bin create-image -- \
--csv emulation/csr.csv \
--kernel target/riscv32imac-unknown-none-elf/debug/kernel \
--init target/riscv32imac-unknown-none-elf/debug/shell \
target/args.bin
$