其他特徵

我們衍生了 Debug 特徵。實作多一點特徵也會有幫助。

use core::fmt::{self, Write};

impl Write for Uart {
    fn write_str(&mut self, s: &str) -> fmt::Result {
        for c in s.as_bytes() {
            self.write_byte(*c);
        }
        Ok(())
    }
}

// Safe because it just contains a pointer to device memory, which can be
// accessed from any context.
unsafe impl Send for Uart {}
  • 實作 Write 即可搭配 Uart 型別使用 write!writeln! 巨集。
  • 使用 src/bare-metal/aps/examples 下的 make qemu_minimal,在 QEMU 中執行範例。