マイクロコントローラーを扱う場合、本質的にグローバルなものがあります。シリアル ポートやその他のインターフェイスなどの周辺機器について考えています。また、グローバルであるだけでなく、コアクロックや割り込みコントローラーを制御する周辺機器のように、1 つしか存在しない (それ以上存在することはない) 周辺機器もあります。これらのペリフェラルにはある種のグローバル状態 (たとえば、コア クロックが何かに設定されている) があり、これらの値を逆算するのは非効率的です。
RTOS で使用されるシステム タイマーを設定する必要があり、他の周辺機器 (UART ボーレート、SPI ビットレートなど) のクロックを設定する必要があり、外部メモリに正しいクロックを設定するか、メモリ待機状態を構成する必要があります。そのため、main() で 1 つのオブジェクトを作成し、それをどこにでも渡すのは少し面倒だと思います...
すべての「グローバル」情報がペリフェラル レジスタから取得されるようにメソッドを作成することもできます (たとえば、現在の PLL 設定からコア周波数を逆計算することができます) が、これも間違った考えのように思えます。クロックジェネレーター周辺機器のどこでもおかしく見えるでしょう...
現在のクロック設定はクラスの静的メンバーに保存できますが、ここからは完全に静的なクラスに向けた小さなステップが 1 つだけあります (状態を持たないクラスでは「this」ポインターは役に立たないため)...
非オブジェクト指向プログラムで通常見られる解決策は、完全に静的なクラスに最も近いものです。グローバル変数を操作する関数のみがあります。
このようなシナリオを適切に処理する方法や、この問題に時間をかける価値があるかどうかについて、誰かが良い考えを持っていますか? たぶん、グローバル オブジェクトを 1 つだけ使用して、それで終了する必要がありますか? (;