天天看點

《測試驅動的嵌入式C語言開發》——3.2節LED驅動都做些什麼

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,是以我們隻會使用單一執行個體設計模型。

繼續閱讀