天天看點

隻讀(OR),隻寫(WO),讀寫(RW)和寫清(WC)寄存器的含義

我們知道硬體要想工作必須有軟體的配合,最基礎的是需要軟體根據不同場景給硬體配置不同參數,是以向寄存器中配置參數是很常見也是必須的一種配合。在做這種操作時需要知道寄存器的類型,下面就介紹幾種不同類型的寄存器。

WO寄存器

硬體設計時候需要考慮哪些參數是需要配置,當然這也需要和軟體一起溝通,看看那些參數軟體配置比較合理,這其實是軟硬體劃分的一部分。當确定了哪些參數軟體配置後,硬體就得留出相應的寄存器給軟體。那這個時候,我們就出現了一種寄存器叫可寫寄存器,如果該寄存器是隻可以被寫的,那麼它既是Write Only(WO)寄存器。

RO寄存器

我們說硬體工作需要需要軟體的配合,這種配合不止上面說的軟體向硬體寫寄存器,這種配合是互相的。比如軟體需要知道硬體的一些狀态。這些狀态包括,比如a.軟體向硬體配置的寄存器有沒有配置正确;b.硬體工作有沒有出錯,内部的狀态是什麼;c.硬體任務有沒有完成等等。那軟體想知道的這些資訊,是通過讀取指定的寄存器擷取的,那麼這裡面就出現了可讀寄存器,如果該寄存器是隻讀的,那麼它就是Read Only(RO)寄存器。

WR寄存器

再進一步,我們想,如果某寄存器不僅可以通過軟體寫,還可以通過軟體讀取,那麼該寄存器就可以讀寫,Writ and Read(WR)寄存器。

WC寄存器

再特殊一點,某些寄存器,如果軟體對它做寫操作時,它的值會變為零,那麼它就是寫清,Write Clear(WC)寄存器。

有人可能有疑問,既然這個寄存器是可寫,我為什麼不通過直接向該寄存器中寫入零呢?這主要是因為這寫寄存器主要是反映硬體内部狀态的寄存器,它們隻需要可以被讀取就可以,不必要支援寫入功能。寫清操作對于該寄存器來說相當于軟複位。