メディア
連載
» 2021年09月02日 10時00分 公開

HAL(ハードウェア抽象化レイヤー)って何?Q&Aで学ぶマイコン講座(64)(3/3 ページ)

[STマイクロエレクトロニクス,EDN Japan]
前のページへ 1|2|3       

HALのメリット

 HALは、主にプログラムの移植性を上げるために使用されます。HALを使用すると、プロフラムを移植する際に、周辺機能などのハードウェアが異なる場合でも、HALより上位層のプログラムに変更を加えることなく移植することができます。

 例えば、同じSTM32マイコンの中でもSTM32F4シリーズとSTM32F0シリーズ*4)では、ペリフェラルクロック有効レジスタの構成が異なります。STM32F4シリーズには3つありますが、STM32F0シリーズには1つしかありません。そのため、汎用IOのAを有効化する際のレジスタたたきの記述が異なります。しかし、HALを使用すれば同じ記述にすることができます(図4)

図4:ハードウェア(レジスタ)が異なる場合の例

 すなわち、HALで記述していれば、プログラムを変更することなくSTM32F0シリーズとSTM32F4シリーズ間でプログラムを移植できます。

*4)https://www.stmcu.jp/stm32/stm32f0/

 また、記述から設定内容を簡単に理解できるのもユーザーにとって大きなメリットです。HALの記述から直接操作内容が読み取れるため、プログラムコードを書きやすくなり、間違いの防止にもなります。

 HALは、マイコン(シリーズ)ごとに異なるため、説明書を読んで内容を理解する必要があります。開発手順が増えるというデメリットに思われるかもしれませんが、説明書はそれほど難しくないので、簡単に理解できるでしょう。また、一度理解してしまえば、後はサクサクとプログラムを作ることができます。

 本記事で使用したSTM32F4マイコンのHALの説明書については、「UM1725 User Manual Description of STM32F4xx HAL drivers」を参照してください。

Q&Aで学ぶマイコン講座:過去の質問一覧はこちら

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.