Xous SDK (pinned for betrusted transpilation)
Find a file
Sean 3e6d3904fb kernel: hosted: handle TrySendMessage the same as SendMessage
With the introduction of TrySendMessage, the kernel needs to know that
this data structure should be transmitted over the wire in the same
manner as SendMessage. Previously it was not special-casing this, which
resulted in memory errors.

Signed-off-by: Sean <xobs@ci.betrusted.io>
2020-09-03 13:17:01 +08:00
.cargo xtask: add cargo xtask command 2020-08-17 19:42:39 +08:00
docs ThreadID: rename from CtxID 2020-07-16 11:04:31 +08:00
emulation emulation: fix path to loader 2020-08-18 17:00:19 +08:00
examples log-server: use try_ calls 2020-08-30 17:41:15 +08:00
kernel kernel: hosted: handle TrySendMessage the same as SendMessage 2020-09-03 13:17:01 +08:00
loader kernel/loader: fix build arguments 2020-08-18 12:10:46 +08:00
macros hosted: fix hosted builds 2020-08-18 13:52:43 +08:00
tools kernel: native: create process for initial processes 2020-08-09 23:08:54 +08:00
xous-rs xous: add "logging" feature 2020-08-30 17:39:58 +08:00
xtask xtask: print message when building the kernel 2020-08-30 17:54:58 +08:00
.gitattributes initial commit 2020-03-10 12:13:05 +08:00
.gitignore xtask: remove loader, kernel from workspace to fix rebuilds 2020-08-18 10:51:29 +08:00
Cargo.lock Cargo: add graphics-server to cargo manifest 2020-08-30 00:32:14 +08:00
Cargo.toml Cargo: add graphics-server to cargo manifest 2020-08-30 00:32:14 +08:00
CODE_OF_CONDUCT.md initial commit 2020-03-10 12:13:05 +08:00
CONTRIBUTING.md initial commit 2020-03-10 12:13:05 +08:00
README.md README: update info on running renode 2020-03-12 13:33:37 +08:00

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

$