Linuxカーネルがさまざまなハードウェアクロックの設定をどのように実装しているかを理解するためのいくつかのポインタを見ています。これは基本的に、LCD、UARTなどのハードウェア機能が使用するさまざまなクロックを設定する作業に関係します。たとえば、Linuxの起動時に、UARTやUSBのクロックの設定をどのように処理するのか。時計のマネージャーなどのようなものかもしれません。Linuxカーネルにおけるハードウェアクロック信号の実装
私は基本的に、私が取り組んでいる新しいハードウェア上の別のOSに類似したものを実装しようとしています。どんな助けでも本当に感謝しています。
[編集]
返信とリンクをありがとう。それでは、これまで私が実装してきたことがあります。これは私がどこに向かうのかをあなたに知らせるはずです。
ターゲットとする特定のシステムのハードウェアリファレンスマニュアルを参照し、私が興味のある周辺機器の信号/ピンを監視/修正するコードを書いています。つまり、コマンドラインからON/OFFすることです。これらのクロック/信号の集合体が一緒にペリフェラルを制御します。HRMは、UARTなどをオンにしたい場合は、そのような信号/ピンをオンにします。そして@BjoernDはい私は周辺機器と通信するためにmmap()関数のようなものを使用しています。
私の疑問は、すでに書いたユーティリティを使用するクロック/ペリフェラルマネージャの設計と実装を理解したいことです。このクロック/ペリフェラルマネージャは私に必要なペリフェラルを有効/無効にするコントロールを与えます。このマネージャは、今実行しているinitコードを変更することができます。また、ランタイム中にプロセスはこのマネージャを呼び出して、デバイスの電源をオン/オフして消費電力を最適化します。それは完璧な意味を作っていないかもしれませんが、私は自分の頭をこの周りに包み込んでいます。
これは、Linuxで実装されていたか、それともパフォーマンス上の問題のOSであっても(ブート時にすべての周辺機器をオンにして電源を切ることを望む人はいないでしょう)。私はそれのソフトウェアアーキテクチャを理解したい。どんなOSからのリファレンスでも、今のところ、頭をはっきりさせることができます。また私は自分のOSを書いているわけではないが、そこにはOSがあるが、ボードレベルのソフトウェアであるBSPをもっと見ている人がいる。とにかくOSリンクのおかげで、彼らは本当に良いです。感謝します。
ありがとうございます!
だから、私は基本的にやろうとしていますが、いくつかの種類を持っているCPUやメモリバスをスローダウンそれぞれのh/wに必要な信号/クロックを適切にオンにすることができます。 –
Contd(復帰キーでコメントが貼られていると思われます) 例えば起動中にUARTのみがオンになるかもしれませんが、残りは電源を節約するためにオフになっている可能性があります。その後、LCDを起動する必要があるときにユーティリティ/ (これらはh/w仕様から知られています)。したがって、ユーティリティはLCDの制御レジスタの必要なビットを "HIGH"に設定することによって適切な処置を行います。 –
これは、Linuxカーネルで整理された方法で処理されていると確信しています。 –