我正在看一些理解Linux內核如何實現設置各種硬件時鐘的指針。這基本上涉及如何設置LCD,UART等硬件功能所使用的各種時鐘。例如,當Linux啓動時,它如何處理設置UART或USB的時鐘。也許像時鐘管理器之類的東西。在Linux內核中實現硬件時鐘信號內核
我基本上是試圖在我正在研究的新硬件上爲不同的操作系統執行類似的操作。任何幫助將非常感激。
[編輯]
感謝您的回覆和鏈接。所以這是我迄今爲止實施的內容。這應該讓你知道我的目標。
我查閱了針對特定系統的硬件參考手冊,並編寫了一些代碼來監視/修改我感興趣的外設的信號/引腳,即從命令行將它們打開/關閉。現在這些時鐘/信號的集合共同控制外設.HRM會說,如果你想打開UART或什麼的,然後打開這樣和那樣的信號/引腳。而@BjoernD是的,我正在使用類似於mmap()的函數來與外設通話。
我的問題的關鍵是我想了解使用我已經編寫的實用程序的時鐘/外設管理器的設計和實現。這個時鐘/外設管理器可以讓我控制啓用/禁用我想要的外設。基本上這個管理器將使我能夠對正在運行的init代碼進行更改。在運行期間,進程也可以調用該管理器來打開/關閉設備,以便優化功耗。它可能沒有完美的意義,但我自己試圖把我的頭圍繞着這個。
現在我確信類似這樣的東西可能已經在Linux或者任何操作系統中實現了性能問題(沒人願意在啓動時打開所有外設來浪費電源)。我想了解它的軟件架構。從任何操作系統的參考將至今做到至少得到一個頭馬。此外,我不寫自己的操作系統,有一個操作系統的地方,但我更多地看板級軟件,即BSP工作。但是,無論如何感謝操作系統的鏈接,他們真的很好。欣賞它。
謝謝!
那麼,我基本上是試圖做的是有某種的系統,以便我可以適當地打開所需的信號/時鐘爲各自的h/w。 –
Contd(返回鍵據說貼上評論) 因此,例如在啓動過程中,可能只有UART可能被打開,但其餘的可能會關閉以節省電力。當LCD需要啓動時,它可以發送請求到公用設施/管理器以轉動在某些信號上(這些信息可以從h/w規格中得知)。因此,公用設施將通過將控制寄存器中所需的位設置爲「高」來採取適當的行動。 –
我確信這已經在Linux內核中以有組織的方式處理過了,只是我不知道在哪裏尋找。 –