ArceOS VGA驱动/彩色显示
-
参考代码 https://github.com/phil-opp/blog_os/blob/post-12/src/vga_buffer.rs
-
redox 参考代码 跟踪源码,也可以找到和 vga 显示有关的代码在这里: https://gitlab.redox-os.org/redox-os/bootloader/-/blob/master/src/os/bios/mod.rs
const VGA_ADDR: usize = 0xB8000;`
pub(crate) static VGA: Mutex<Vga> = Mutex::new(
unsafe { Vga::new(VGA_ADDR, 80, 25) }
);
这个基地址和下面这个文件代码里的 0xb8000 是一致的
https://github.com/phil-opp/blog_os/blob/post-12/src/vga_buffer.rs
pub static ref WRITER: Mutex<Writer> = Mutex::new(Writer {
column_position: 0,
color_code: ColorCode::new(Color::Yellow, Color::Black),
buffer: unsafe { &mut *(0xb8000 as *mut Buffer) },
});
vga 这个 mod 的实现是在这个文件 https://gitlab.redox-os.org/redox-os/bootloader/-/blob/master/src/os/bios/vga.rs
- ArceOS 已经实现的版本参考 代码已提交在 https://github.com/wfly1998/arceos/tree/feature/vga,测试用的命令为
make A=apps/helloworld ARCH=x86_64 LOG=trace GRAPHIC=on run
-
显示framebuffer 驱动例子 https://github.com/rust-osdev/vga/blob/master/src/vga.rs
-
已经实现的 彩色显示的 https://github.com/wfly1998/arceos/tree/feature/vga
make A=apps/helloworld ARCH=x86_64 LOG=trace GRAPHIC=on run
make A=apps/fs/shell ARCH=x86_64 GRAPHIC=on BLK=y run