TOPPERS APIを使用する (方法2)

TOPPERS APIを使用する (方法1) では手動でFFI宣言を行うことによりTOPPERSカーネルのAPIを利用する方法を説明しました。しかし手動で宣言を行うのは手間が掛かり、また記述を誤ると簡単に検出できないバグに繋がります。そこで、本セクションではCargoパッケージ itron から提供されているFFI宣言を利用してTOPPERS APIを使用する手順を説明します。

  1. TOPPERS APIを使用する (方法1) で作成したコードをベースにします。 mod ffi { ... } を削除します。


  1. crates.ioからパッケージを追加する と同じ流れでCargoパッケージ itron 0.1 を Cargo.toml に追加します。ただし、この際に次のようにしてどのカーネルを対象とするかを指定します。以下の例ではTOPPERS/ASP3のSOLID拡張 + カーネル資源の動的生成を対象にします。

    [dependencies]
    itron = { version = "0.1.9", features = ["solid_asp3", "dcre"] }
    

Note

features はCargo features (The Cargo Book) という、Cargoパッケージのオプショナル機能の条件付きコンパイルを実現するための機能です。

itronパッケージは各カーネルとカーネルのオプショナル機能に対応するCargo featuresを提供しています。他のCargo featuresについてはitronパッケージのAPIドキュメントを参照してください。


  1. mod ffi { ... } を以下のコードで置換します。

    use itron::abi as ffi;
    

  1. 実行すると TOPPERS APIを使用する (方法1) と全く同じ結果が得られるはずです。

../../_images/itron-sem-debug-output1.png