From c8de43bf43242c4ebac3d0ecb8e7951fe2371506 Mon Sep 17 00:00:00 2001 From: Nathan Ringo Date: Sat, 24 Feb 2024 22:03:49 -0600 Subject: Initial commit --- kernel/src/lib.rs | 16 ++++++++++++++++ kernel/src/panic.rs | 12 ++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 kernel/src/lib.rs create mode 100644 kernel/src/panic.rs (limited to 'kernel/src') diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs new file mode 100644 index 0000000..bd5a19f --- /dev/null +++ b/kernel/src/lib.rs @@ -0,0 +1,16 @@ +#![no_std] + +mod panic; + +/// The entrypoint to the kernel. This should be executed by hart0 alone. It performs some early +/// boot tasks, then wakes up any other harts. +#[no_mangle] +pub extern "C" fn hart0_boot() { + for byte in "Hello, world!\n".bytes() { + unsafe { + core::ptr::write_volatile(0x10000000 as *mut u8, byte); + } + } + + todo!() +} diff --git a/kernel/src/panic.rs b/kernel/src/panic.rs new file mode 100644 index 0000000..ed6e5d4 --- /dev/null +++ b/kernel/src/panic.rs @@ -0,0 +1,12 @@ +use core::panic::PanicInfo; + +#[panic_handler] +fn panic(_info: &PanicInfo) -> ! { + loop { + for byte in "panic\n".bytes() { + unsafe { + core::ptr::write_volatile(0x10000000 as *mut u8, byte); + } + } + } +} -- cgit v1.2.3