みなさん、こんにちは。「Arm® Cortex®-Mコア搭載RAファミリ初心者講座」の第2回をお届けします。
この連載は、ルネサスエレクトロニクス(以降、ルネサス)のArm Cortex-M搭載RAファミリ(以降、RAファミリ)について、製品のコンセプトから、各シリーズの特長と強み、開発環境、パートナソリューション、実際の使い方などについて解説して行きます。
今回は「IoTシステムを素早く構築するための「Flexible Software Package(FSP)」とは」です。
目次
はじめに
はじめにRAファミリのソフトウェアパッケージであるFlexible Software Packageの概要、統合されているボードサポートパッケージや、ソフトウェアの記述方式のハードウェア抽象化レイヤなどを解説します。
次に、RAファミリ用の統合開発ツール(e2studio(イースクウェア スタジオ)やQE Tools、 RA Smart Configuratorなど)と評価用キットついて、最後にFSPと統合開発ツールの入手方法(ダウンロードとインストール)について説明します。
Flexible Software Package(FSP)
Flexible Software Package(フレキシブルソフトウェアパッケージ:以降、FSP)には、通信やセキュリティのような一般的な機能のドライバやスタックが含まれています。これらのドライバやスタックは、ミドルウェアスタック、個々のユーザーアプリケーション対応のRTOSに依存しないハードウェア抽象化レイヤ(Hardware Abstraction Layer:以降、HAL)ドライバで提供されます。
既存コードの柔軟な再利用とパートナ企業との協調を可能にするオープンソフトウェアエコシステムも提供しています。
(1)FSPのライセンスやディストリビューションについて
FSPのライセンス、コンパイラ、ディストリビューション、ドキュメント、サポートは、パートナ製を含めて、さまざまな種類が提供されています。
(2)ボードサポートパッケージ(BSP)の概要
ボードサポートパッケージ(以降、BSP)はFSPの最下層で、ルネサスが提供する評価ボードなどのハードウェア情報を基に、評価ボード対応プログラムと他のFSPモジュールとの連携を行います。以下にBSPの概要を示します。
HAL(ハードウェア抽象化レイヤ)
FSPはHALを使った記述になっています。しかし、従来のルネサスコアのマイコンを使われていたエンジニアの方は、あまりHALに馴染みがないと思います。そこで、最初に「そもそもHALとは何か?」を解説します。
(1)HALとは何?
マイコンのプログラムを階層化する際に、上位層のプログラムから周辺機能などのハードウェアを抽象化する手法です。マイコンだけでなく、一般的なPCやスマートフォンでも使われています。
主にプログラムの移植性を高めるのが目的で使用されています。プログラムを移植する際に、周辺機能などのハードウェアが異なる場合でも、HALを使うと上位層のプログラムに変更を加えることなく、容易に移植することができます。
HALで記述すれば、人が見て設定内容がすぐわかるように記述されているので、ソフトウェア開発の効率も上がり、間違いも起こりにくくなります。
例えば、汎用IOポートからLowを出力する記述は次のようになります。これは評価キットRA6M5評価ボードを使った「LED点滅」のプログラムの一部です。
g_ioport.p_api->pinWrite(&g_ioport_ctrl, Leds.p_leds[BSP_LED_LED2], BSP_IO_LEVEL_LOW);
見てわかると思いますが、マイコンのハードウェアである汎用IOに関する記述(レジスタの設定など)は出てきません。直接RA6M5評価ボードのLED2を操作する記述となっています。
このように、上位層のプログラムからハードウェアを抽象化するのがHALです。
(2)RAファミリのFSPにおけるHALの概要
HALは、モジュールの集合です。それぞれがSPI(シリアルペリフェラルインタフェース)やA-Dコンバータ(アナログ-デジタルコンバータ)などのRAファミリのマイコンで使用可能なペリフェラル用のドライバになります。名前はr_で始まり、FSPの他の部分と容易に区別できるようになっています。
1つの記述で、複数のインタフェース機能や複数の周辺機能を一括してサポートするものもあれば、周辺機能の中の特定の機能だけをサポートするものもあります。
(3)RAファミリのFSPのHALの利点
最大の利点は柔軟性が得られることです。たとえば、元々はSPIペリフェラル用に記述されていたものの、後でSCI(Serial Communication Interface)のSPI機能を使用する必要がある場合は、構成情報を変更するだけで、アプリケーションコードは変更せずに移植ができます。
g_spi0 SPI Driver on r_spi ⇒ g_spi0 SPI Driver on r_sci_spi
導入から量産まで一貫したサポート
ルネサスでは、マイコンの導入から量産まで一貫したサポートを提供しています。
(1)マイコンの導入
ユーザーはいつでも無償の統合開発環境e2studioをダウンロードできます。e2studioのピンコンフィギュレータで、パッケージの最適化が容易です。デバッガ・プログラマが実装されている評価・開発用キットが各製品で準備されています。
(2)開発
e2studio以外でも、パートナ製の複数のコンパイラが使用できます。開発効率を向上させるソリューションツールキットも準備されています。
また、低価格で快適なデバッグ環境を提供するオンチップでデバッギングエミュレータE2、E2Liteなども準備しています。
(3)量産
量産後のアフターサービス、メンテナンス用にフラッシュ書き込みソフトウェアとスタンドアローンフラッシュプログラマPG-FP6などを準備しているので、マイコン内のソフトウェアの更新なども効率良く行えます。
RAファミリによるシステム開発をサポートする開発環境
統合開発環境は非常に充実しており、ユーザーはいつでもRAファミリの開発を始めることができます。サンプルソフトウェア(ドライバ含)、サポートツール、オンチップデバッガ・プログラマ、開発/評価キット、統合開発環境はルネサス製はもとより、パートナ製も準備されていて、ユーザーの開発環境に合わせて選択することができます。
(1)RAファミリ用ツール
ルネサスでは、RAファミリの開発ツールに、次のものを準備しています。
- e2studio: Eclipse-based Integrated Development Environment(IDE)(詳細は後ほど)
- QE Tools: QEは「Quick and Efficient」(詳細は後ほど)
- RA Smart Configurator: RA Smart Configurator(RASC)」(詳細は後ほど)
- パートナ製ツールとルネサスRAパートナエコシステム(詳細は後ほど)
(2)RAファミリ用開発・評価キット
ルネサスでは、ユーザーの目的用途に応じた開発・評価キットを提供しています。スターターキット相当から、開発・評価キット、さらにはマイコンの専門機能に特化したキットが提供されています。
Fast Prototyping Board(FPB)
最も手軽にマイコン評価を始めることを目指した廉価な評価ボード
Evaluation Kit
エコシステムインタフェースによる拡張も可能。マイコンのほぼ全ての機能と性能の評価や初期開発に適した評価ボード
Renesas Solution Kit
モータ制御や静電タッチ機能など、マイコンの専用機能に特化した評価ボード
(3)e2studioとパートナ製開発環境との連携
e2studio以外でも、パートナ製の開発環境を使用することができます。IAR社のEmbedded WorkbenchやArm社のKeil MDKを使用することもできます。
e2studioのRA Smart Configuratorを用いて初期設定部分を作り、それをEmbedded WorkbenchやKeil MDKで連携させて、Embedded WorkbenchやKeil MDKでプログラム開発を行うこともできます。
(4)e2studioとは
- e2studioには、RAファミリのマイコンプロジェクトを作成、コンパイル、デバッグするために必要なすべてのツールが含まれています。
- e2studioは一般的なEclipse™ IDEをベースにするツールです。
- e2studioには、さまざまなハードウェアおよびソフトウェア機能へのグラフィカルなアクセスを、簡単に可能にするコンフィギュレータの機能を含みます。
- このコンフィギュレータには、必要なすべての設定と初期化コードを自動的に作成し、問題のある組み合わせを検出するためのエラーチェック要素も含みます。
(5)QE Tools
- QEは「Quick and Efficient」の頭字語で、Bluetooth® low energy 5.0用QEはe2studioに直接的に統合されています。
- QE for Capacitive Touchはタッチユーザーインタフェースの初期設定と感度の調整を簡素化し、BLE 5.0 用QEはBluetooth Low Energy スタックの通信機能のテストに使用できます。
(6)RA Smart Configurator
- RA Smart Configurator(RASC)は、パートナ製ツールを使用する場合に、開発者がRAマイコンのソフトウェアシステム(BSP、HALドライバ、ミドルウェア、RTOS)をパートナ製ツール用に設定できるデスクトップアプリケーションです。
- これを使うと、Embedded WorkbenchやKeil MDKでも、e2studioと同じようにソフトウェアシステム(BSP、HALドライバ、ミドルウェア、RTOS)を使って開発ができます。
FSPのダウンロード
実際にFSPをダウンロードしてみましょう。
(1)ルネサス RAファミリのHPからダウンロード
一番簡単なのはインターネットの検索エンジンで「ルネサス RA」を検索して、ルネサスRAファミリのHPからFSP一式をダウンロードします。
FSPのインストーラの実行ファイルの名前はバージョンによって異なります(FSPは日々更新されていますので、最新バージョンをインストールしてください)。例えば、今回は、ファイルsetup_fsp_v3_4_0_e2s_v2021-10.exeがダウンロードされます。
(インターネット環境とPCの性能にもよりますが、1時間近くかかる場合もあります。)
(2)ギットハブからダウンロード
ギットハブのURL からも、FSPをダウンロードすることができます。
FSPのインストール
FSPのダウンロードが完了したら、インストールしてみましょう。ファイルをダブルクリックします。(インストールファイルの展開(解凍)には少し時間がかかります。)
最初に最適なインストールタイプを選択します。後々FreeRTOS™を使うことを見込んで、今回はCustom Installを選択します。
インストール·ディレクトリの準備ができていること、および必要なすべてのコンポーネントが使用可能であることがチェックされます。
インストールに追加する機能を選択します。
デフォルトを確認し、必要な場合はそのままにしておき、必要ない場合はチェックボックスをオフします。
「Renesas RA」と「Renesas QE」という2つのタブが表示されます。「Renesas RA」タブで、GNU Arm Embeddedが選択されていることを確認します。
「Renesas QE」のタブで、インストールに使用するQE Toolsを選択します。
インストールするコンポーネントの各種ソフトウェア契約が表示されますので、それぞれをよく読み、「ソフトウェア契約の条件に同意します。」の横にあるチェックボックスをオンにします。
表示されるショートカット画面で、提案されたスタート・メニュー・グループに同意するか、変更するかで、チェックボックスをそのままかオフにします。
インストールするソフトウェアの概要が表示されますので確認します。「インストール」をクリックすると、インストールが始まります。
インストールが完了すると、「結果」ウィンドウが表示されます。すべてのチェックボックスをオフにし、FSPおよびGCC Arm Embeddedの詳細と、FSPユーザーズマニュアルへのリンクを確認します。最後に、OKをクリックしてインストーラを閉じます。これでインストールが完了です。
まとめ
1. FSPには、通信やセキュリティのような一般的な機能のドライバやスタックが含まれています。これらのドライバやスタックは、ミドルウェアスタック、個々のユーザーアプリケーション対応のRTOSに依存しないHALドライバで提供されます。一方、Free RTOSやAzure RTOSも提供しているので、ベアメタルとRTOSのどちらの方式でも柔軟に対応できます。また、既存コードの柔軟な再利用とパートナ企業との協調を可能にするオープンソフトウェアエコシステムも提供しています。
2. RAファミリ統合開発環境は充実しており、ユーザーはいつでもRAファミリの開発を始めることができます。サンプルソフトウェア(ドライバ含)、サポートツール、オンチップデバッガ・プログラマ、開発/評価キット、統合開発環境は、ルネサス製のe2studioはもとより、パートナ製も準備されていて、ユーザーの開発環境に合わせて、選択することができます。
3. FSPおよび開発環境は、RAファミリのHPまたはギットハブのURLからダウンロードすることができます。ダウンロードした実行ファイルを実行し、画面の指示に従って情報を入力していけば、容易にインストールできます。
次回予告
次回は、e2studio起動から、実際のセットアップ、内容、使い方を説明します。
さらに、実際の評価キットRA6M5評価ボードを使って「LED点滅」のプログラムを作る工程(実際の作業)を説明します。
こちらも是非
“もっと見る” Cortex-M|RAファミリ編
「クイックコネクトIoT」でIoTシステムをサクッと構築してみた
最初にクイックコネクトIoTについて説明し、次に、実際の動作環境、センサ仕様を解説し、その後、実際にRAファミリを動作させる手順を説明します。最後は、実際の評価キットRA6M5評価ボードを使って、ツール上で温度と湿度を確認します。
サンプルプログラムでRAファミリを動かしてみよう
はじめにRAファミリ用の統合開発ツールe2studioの起動から、実際のセットアップ、内容、使い方を説明。次に実際の評価キットのEK-RA6M5評価ボードを使って、e2studioのテンプレートの中に準備されている「LED点滅」のサンプルプログラムを動作させる実際の作業を解説します。
ルネサスの最新Armマイコン「RAファミリ」とは
第1回では、RAファミリの紹介から始めて、従来のルネサス32ビットマイコンRXファミリ、Renesas Synergy™との棲み分けを簡単に説明します。そして、RAファミリの概要と併せて、パートナ企業のサポート内容などを説明し、最後に、各シリーズ(RA2、RA4、RA6、RA8シリーズ)について説明します。