經改良的 UART 驅動程式

PL011 實際上還有許多暫存器,若為了存取這些暫存器而將偏移值新增至建構指標,不僅容易發生錯誤,還難以讀取。此外,部分暫存器是位元欄位,適合以結構化方式存取。

偏移暫存器名稱寬度
0x00DR12
0x04RSR4
0x18FR9
0x20ILPR8
0x24IBRD16
0x28FBRD6
0x2cLCR_H8
0x30CR16
0x34IFLS6
0x38IMSC11
0x3cRIS11
0x40MIS11
0x44ICR11
0x48DMACR3
  • 為求簡潔,還省略了一些 ID 暫存器。