UARTドライバの改善
実際のところPL011にはもっと多くのレジスタがあり、それらにアクセスするためにオフセットを足してポインタを得ることは間違えになりやすく、可読性を低下させます。さらに、いくつかはビットフィールドなので、構造化された方法でアクセスできたほうが良いでしょう。
| オフセット | レジスタ名 | 幅 |
|---|---|---|
| 0x00 | DR | 12 |
| 0x04 | RSR | 4 |
| 0x18 | FR | 9 |
| 0x20 | ILPR | 8 |
| 0x24 | IBRD | 16 |
| 0x28 | FBRD | 6 |
| 0x2c | LCR_H | 8 |
| 0x30 | CR | 16 |
| 0x34 | IFLS | 6 |
| 0x38 | IMSC | 11 |
| 0x3c | RIS | 11 |
| 0x40 | MIS | 11 |
| 0x44 | ICR | 11 |
| 0x48 | DMACR | 3 |
- いくつかのIDレジスタは簡単化のための省略しています。