編寫 UART 驅動程式
QEMU 'virt' 機器搭載 PL011 UART,所以我們要為此編寫驅動程式。
Speaker Notes
- 請注意,
Uart::new
並不安全,其他方法則是安全的。這是因為只要Uart::new
的呼叫端保證能滿足安全規定,也就是特定 UART 只有一個驅動程式例項,沒有其他項目定義其位址空間的別名,那麼稍後呼叫write_byte
一律是安全的,因為我們可以假設必要的先決條件。 - 我們可以反過來操作,也就是讓
new
安全,而write_byte
不安全,但這樣的使用便利度低許多,因為每個呼叫write_byte
的位置都需要分析安全性 - 這是為不安全程式碼撰寫安全包裝函式的常見模式:將證明安全性的負擔從大量位置移到少量位置。