3.2 led驅動都做些什麼
假設我們的系統用led來與系統的使用者或者開發者溝通系統的狀态,我們将需要一個led的驅動程式。以下是我們所知的led驅動程式的需求:
控制16個有兩個狀态的led。
可以在不影響其他led的情況下打開或者關閉任意一個led。
通過單一的接口調用來打開所有的led。
led驅動程式的使用者可以查詢任何led的狀态。
當加電時,硬體的預設狀态是所有的led都鎖定在打開狀态,需要由軟體來把它們關閉。
led會在記憶體中映射到一個16位的字上(在一個尚未确定的位址上)。
在某一位上置1會點亮對應的led;置0則會将之關閉。
最小一位對應led 1;最大一位對應led 16。
前4個目标的關注點是希望led驅動做什麼。第5~8個目标描述了驅動程式如何與硬體互動。在這些需求之外,有一個設計目标:讓這個驅動程式在目标硬體之外可測。在目标系統中隻有一套led,是以我們隻會使用單一執行個體設計模型。