Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

nRF HAL の紹介

ほかの例に進む前に、まず nRF51、nRF52、nRF91 ファミリーのマイクロコントローラー向け Hardware Abstraction Layer(HAL)を紹介します。

すでにご存じかもしれませんが、micro:bit v2 は Nordic の nRF52833 マイクロコントローラーを使用しています。

これまでは BSP レベルのクレートを扱ってきました。ここからは、HAL へさらに 1 層深く進みます。そのために、nRF52833 もサポートしている nrf-hal を使用します。

詳細については、nrf-hal GitHub リポジトリ を参照してください。さまざまなユースケース向けの例も含まれています。

Blinky の書き換え

シンプルにするために、nrf-hal を使って blinky の例を書き換えてみましょう。

プロジェクトをゼロから作成する場合、通常は nrf52833-hal を依存関係として手動で追加します。ただし、ここではすでにそれを含んでいるテンプレートを使用します。テンプレートの Cargo.toml には、次のような行があります。

nrf52833-hal = "0.18.0" # テンプレート内ではバージョンが異なる可能性があります

テンプレートからプロジェクトを作成

テンプレートを使って新しいプロジェクトを生成するには、次のコマンドを実行します。

cargo generate --git https://github.com/ImplFerris/mb2-template.git --rev 88d339b

プロジェクト名の入力を求められたら、led-blinky のような名前を入力してください(すでにこの名前のプロジェクトがある場合は、別の名前を使うか、私のように HAL ベースのプロジェクトを別のフォルダーに配置してください)。

「BSP」または「HAL」を選択するよう求められたら、「HAL」を選択してください。