forked from koniifer/ableos
Setting up serial to be out putted to more easily
This commit is contained in:
parent
6675d7e1fb
commit
b6ba831ea0
|
@ -1,3 +1,7 @@
|
||||||
|
use core::fmt::Arguments;
|
||||||
|
use core::fmt::Error;
|
||||||
|
|
||||||
|
/// Prints to the host through the serial interface.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! serial_print {
|
macro_rules! serial_print {
|
||||||
($($arg:tt)*) => {};
|
($($arg:tt)*) => {};
|
||||||
|
@ -9,3 +13,28 @@ macro_rules! serial_println {
|
||||||
($fmt:expr) => {};
|
($fmt:expr) => {};
|
||||||
($fmt:expr, $($arg:tt)*) => {};
|
($fmt:expr, $($arg:tt)*) => {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct Serial123 {
|
||||||
|
uart_data: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Serial123 {
|
||||||
|
pub fn out(&mut self, s: ::core::fmt::Arguments) {
|
||||||
|
let uart_data = 0x10000000 as *mut u8;
|
||||||
|
for c in b"Hello, world!\n" {
|
||||||
|
unsafe { uart_data.write_volatile(*c) };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
use spin::Mutex;
|
||||||
|
|
||||||
|
use lazy_static::lazy_static;
|
||||||
|
lazy_static! {
|
||||||
|
pub static ref SERIAL: Mutex<Serial123> = {
|
||||||
|
let serial_port = Serial123 {
|
||||||
|
uart_data: 0x10000000,
|
||||||
|
};
|
||||||
|
Mutex::new(serial_port)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -29,13 +29,10 @@ unsafe extern "C" fn _boot() -> ! {
|
||||||
",
|
",
|
||||||
sym _start, options(noreturn));
|
sym _start, options(noreturn));
|
||||||
}
|
}
|
||||||
|
use crate::serial::SERIAL;
|
||||||
extern "C" fn _start() -> ! {
|
extern "C" fn _start() -> ! {
|
||||||
let uart_data = 0x10000000 as *mut u8;
|
SERIAL.lock().out(format_args!("Hi"));
|
||||||
for c in b"Hello, world!\n" {
|
// Serial123::out();
|
||||||
unsafe { uart_data.write_volatile(*c) };
|
|
||||||
}
|
|
||||||
|
|
||||||
sloop()
|
sloop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,7 @@ fn main() -> anyhow::Result<()> {
|
||||||
-kernel target/aarch64-ableos/release/ableos
|
-kernel target/aarch64-ableos/release/ableos
|
||||||
-device virtio-keyboard
|
-device virtio-keyboard
|
||||||
"
|
"
|
||||||
)
|
).run()?;
|
||||||
.run()?;
|
|
||||||
}
|
}
|
||||||
MachineType::RISCV => {
|
MachineType::RISCV => {
|
||||||
xshell::cmd!("cargo build --release --target=riscv64gc-unknown-none-elf")
|
xshell::cmd!("cargo build --release --target=riscv64gc-unknown-none-elf")
|
||||||
|
|
Loading…
Reference in a new issue