2 releases
Uses new Rust 2024
new 0.1.1 | Mar 25, 2025 |
---|---|
0.1.0 | Mar 25, 2025 |
#2 in #pl011
Used in 2 crates
(via sparreal-rt)
12KB
288 lines
Any Uart
A easy way to use early console in ARM.
Get the debug uart address from dtb, and some uart driver are supported.
supported uart
- 8250 and 16550
- pl011
- aux_mini (raspi 4b)
example
use core::ptr::NonNull;
// your dtb address
let dtb_addr = 0usize as *mut u8
fn phys_to_virt(addr: usize) -> *mut u8 {
// phys addr to virt addr logic
addr as *mut u8
}
if let Some((mut tx, _rx)) = any_uart::init(NonNull::new(dtb_addr).unwrap(), phys_to_virt) {
let _ = tx.write_str_blocking("Hello, world!\n");
}
test
cargo install ostool
# test with qemu
cargo test -p hello --test test -- --show-output
# test with uboot
cargo test -p hello --test test -- --show-output --uboot
Dependencies
~135KB