更多 trait

已经派生了 Debug trait。如果再实现更多 trait,会大有帮助。

  1. use core::fmt::{self, Write};
  2. impl Write for Uart {
  3. fn write_str(&mut self, s: &str) -> fmt::Result {
  4. for c in s.as_bytes() {
  5. self.write_byte(*c);
  6. }
  7. Ok(())
  8. }
  9. }
  10. // SAFETY: `Uart` just contains a pointer to device memory, which can be
  11. // accessed from any context.
  12. unsafe impl Send for Uart {}
  • 通过实现 Write,我们可以将 write!writeln! 宏与 Uart 类型搭配使用。
  • 在 QEMU 中,使用 src/bare-metal/aps/examples 目录下的 make qemu_minimal 运行该示例。