ARMマイコンSTM32の周辺機能とファームウェアライブラリとの関連

ファームウェアの役割とは

めかのとろ

マイコンにはさまざまな周辺機能ペリフェラル)が内蔵されています。代表的なものに汎用入出力GPIOがありますがマイコンの各ピンに入出力の機能詳細を定義するためにはGPIO制御レジスタを設定する必要があります。

めかのとろ

マイコンのリファレンスマニュアルにはレジスタ詳細について記述されていますが、このマニュアル通りにレジスタ設定のプログラムを作成していくことは慣れているひとでも大変です。マイコンを使った組み込みエンジニアはアプリケーション作成が重要なのであって、各社種々あるマイコンのハードウェア寄りの部分の理解と設定に労力を費やしたくはありません。

めかのとろ

そこで、マイコン各メーカーはハードウェアの操作を行うためのデバイスドライバとしてペリフェラルライブラリであるファームウェアを用意しています。このため、一度、使用するマイコン機種のハードウェアに依存する部分であるペリフェラルライブラリ(デバイスドライバ)の使い方を把握すると、後はアプリケーションの開発だけに集中できます。

めかのとろ

組み込み機器によってはファームウェアによらず制御レジスタを直接設定することにより、プログラムサイズを小さくしたり応答速度などのパフォーマンスをあげたりすることができますので組み込みスキルがあがり慣れるにしたがって、挑戦してみてはいかがでしょうか。

ソフトウェア・システム構成

めかのとろ

比較的簡素で単機能な組み込み機器である場合は、デバイスドライバアプリケーションソフトだけでソフトウェアは構成できますが(構成A)、モニター表示しながら通信を同時におこない、さらにモーターを駆動するような多機能な組み込み機器では同時に並列で色々な機能を動作させたいので、このような場合はOS(Operation System)が必要となってきます(構成B)。

めかのとろ

組み込み機器ではリアルタイムでの制御が必要となるためRTOS(RealTime Operation System)を使用します。さらにEthernet通信などを組み込む場合などはソフトウェアの通信プロトコルスタックを搭載させる必要がでてきますがこのようなソフトウェアをミドルウェアといいます(構成C)。

めかのとろ

アプリケーションはシステム構成内では最上位にあたるプログラムですが、これはハードウェアにまったく影響を受けない部分ですのでどの種類のマイコンでも使用できます(多少の修正は必要な場合はあります)。ただし、ビット数の異なるマイコン(32bitマイコンから8bitマイコンへ)間ではそのままでは互換性はないと認識してください。

ソフトウェア構成

ライブラリSPLを使用する理由

めかのとろ

当サイトで採用するマイコンはARM Cortex-M3コア搭載のSTM32F1シリーズでファームウェアStandrd Peripheral Library(SPL)と呼ばれているペリフェラルライブラリ(デバイスドライバ)を使用します。

めかのとろ

メーカーでは技術の進歩に合わせて新しく高性能のマイコンを開発、リリースすると同時に開発環境も更新していきます。当然、ファームウェアも更新していくわけですが、ファームウェアはSPLからHAL(Hardware Abstraction Layer)とよばれるライブラリに移行している段階です。

めかのとろ

HALの特徴はSTM32マイコンからの移植性も考慮した抽象度の高いドライバで開発期間を短縮できる利便性を追求したものです。今後はSTM32マイコンではHALを中心に開発を進めていくことになるのでしょうが、プログラムコードサイズは大きくなりブラックボックス的な要素があります。

めかのとろ

マイコンの基礎を理解したうえで使用するにはよいのですが、これから組み込み技術の習得を目指すものがHALから始めると表面的なところは理解できてもつぶしが効かない知識のみが残るといった事態にもなりかねません。

めかのとろ

当サイトは組み込み技術の入門者向けのため、あえてHALは使用せずSPLで進めていくことにします。SPLはシンプルで制御レジスタとの関連がわかりやすいマクロとなっており、プログラムのコードサイズも比較的小さいものです。

めかのとろ

SPLのもう一つの利点は使用するにあたっての情報が豊富なことです。インターネットであれば大概の使い方の情報や使用応用例は取得できます。集中的に学習するとマイコンの使い方自体はすぐにでも身につくのではないでしょうか。

めかのとろ

大事なのはその先のシステム設計を含めシステムのすぐれたアプリケーションを構築するまでのスキルですが、それはどのマイコンシステムでも普遍のスキルです。SPLはマイコンの概念的なところが理解しやすいので学習には向いており他のマイコンシステムに移行するにもスムーズであると思います。組み込み技術の基礎スキルを身につけて、応用に活かすことが本サイトの趣旨であることを常に心がけておいてください。

ポイント

ある程度、STM32マイコンに慣れてきたところで、最新の開発環境にシフトしてHALを使用するとその便利さは発揮されるでしょう。

Follow me!