構成
Tockは種々のプラットフォーム(複数のアーキテクチャと利用可能なさまざまなペリフェラル) において、また、複数のユースケース(たとえば、「本番環境」とさまざまなレベルのデバッグ 詳細のデバッグビルド)を念頭に置いて動作することを意図しています。
Tockでは構成は"ifdef"条件付きコードの落とし穴(テストがやりにくくなります)を 避けるためにいくつかの原則に従っています。これは現在、2つの方法で行われています。
-
コードの複数パッケージへの分離。各抽象化レベル(コアカーネル、CPU アーキテクチャ、チップ、ボード)は各自パッケージを持ち、ボードの構成は関連する チップに基づいて、ボード上で利用可能なペリフェラルに関連するドライバを宣言する ことで行われます。詳細はコンパイルドキュメントを参照して ください。
-
カスタムカーネル構成。カーネルの詳細な構成(たとえば、syscallsトレースの デバッグ出力の有効化など)を容易にするために
config構造体がkernel/src/config.rsで定義されています。構成を変更するには、このファイルで 定義されている静的なconstオブジェクトの値を変更します。構成を使用するには、 単に値を読み込むだけです。たとえば、ブール値の構成を使用するにはif文を使用 します。構成がconstであるという事実により、コンパイラは構文と型をチェック する一方で、(この設定のコストがゼロになるように) 最適化によりデッドコードを 削除することができます。