STM32 HALとLL

  • 2020.12.23
  • LL
STM32 HALとLL

皆さん こんにちは。

今回は HAL と対比される LL についてお話します。

STM32には

HAL : Hardware Abstraction Layer に対して

LL : Low Layer が存在します。

LLの解説書 がありますので詳しくはこちらをご覧ください。

HALはSTM32シリーズの互換性を保つことやユーザーが記述するコード量を減らす目的でつくられました。
ですからHALは冗長性があるためにコード量が増えたり、高速動作が不得手などのデメリットがあります。

そこで高速に動かしたい時やコード量を減らしたい場合には LL を使うことを考えてみるのも一案です。

とは言え必ずしも HAL の方がコード量が多いわけでもなさそうです。
HAL と LL の共存も可能なようですから、臨機応変に使い分けてみるのが良いかも知れません。

その他注意点など

・STM32H7シリーズ はサポートされていない
・STM32CubeMX(CubeIDE)によりLL用の初期化コードを生成できる
・LLではサポートされていないペリフェラルがある
・基本的に同一ペリフェラルでHALとLLの両方を使わないこと
・LLではHALで用意しているハンドルなどのインスタンスは一切使用しない
・LL APIはHALと異なりSTM32ファミリ内での互換性は低い

※ 2017当初の資料には H7シリーズではLLをサポートしていない と書かれていたのですが、2020年現在はサポートされているようです。

次回は IDE を使って LL で初期化コードを生成する方法についてお話します。

お疲れさまでした。

LLカテゴリの最新記事