次に、実際にどのようにして複数のコアのプログラムを開発し、動作させながらデバッグするかを簡単に説明します。
マイコンはSTM32H745、ツールはSTが無償で提供しているSTM32CubeIDE*7)をそれぞれ例として使用します。STM32CubeIDEのツール上では、2つのコアを1画面で管理することができます。
図4(a)および(b)は、STM32H7のライブラリSTM32Cube_FW_H7_V1.7.0の中にある汎用IOのサンプルプログラムです。
(a)と(b)は同じツールの同じ画面ですが、選択しているコアが違います。画面左側にある「Project Explorer」ウィンドウから、Cortex-M4かCortex-M7を選択します。(a)ではSTM32H745ZITx_FLASH_CM7.ldを選択しているため、Cortex-M7用の画面になっています。一方、(b)ではSTM32H745ZITx_FLASH_CM4.ldを選択しているため、Cortex-M4用の画面になっています。
(a)の画面中央にはCortex-M7用プログラムのmain.cの記述が表示されており、ここでプログラムの作成や修正を行うことができます。また、画面上部の「Project」メニューや「Run」メニューから、完成したプログラムをビルドできるほか、デバッグモードに入って実行することができます。Cortex-M4についても、STM32H745ZITx_FLASH_CM4.ldを選択すれば図4(b)に示す画面に切り替わるため、Cortex-M4のプログラム作成からビルドして、デバッグモードに入り、プログラムを実行することができます。ユーザーにとっては、1つの画面で2つのコアの開発ができるため、非常に便利です。
参考ページ:*7)https://www.stmcu.jp/design/sw_dev/pc_soft/66469/
マルチコアマイコンのメリットは、高パフォーマンスと低消費電力です。また、待機時の消費電力も低減できるため、電池駆動のような電源の容量が限られる用途にも向いています。
高パフォーマンスと待機時の低消費電力が必要とされるアプリケーションとしては、電池駆動で画像処理が必要とされるもの、例えば携帯電話やゲーム機などが挙げられます。また、高パフォーマンスと動作時の低消費電力が求められるアプリケーションとしては、カーナビ、テレビ、HDD/DVDプレーヤー/デコーダーなどが挙げられます。実際これらのアプリケーションでは、マルチコアマイコンやマルチプロセッサ方式が採用されています。
もともとシングルコアマイコンで十分に機能していたものに対して、よりきれいな画像や高速表示を実現するために採用される例も増えています。例えば電子辞書では、液晶ディスプレイの解像度を上げることで画像品質が劇的に向上されています。外国語の辞書では音声出力機能が付いているものもあります。しかし、電池を電源としているため、時計機能だけを動作させる待機時の低電力化は必須です。そのため、従来の製品ではシングルコアマイコンで最低限の機能を実現していたが、新製品ではマルチコアマイコンを採用して画像の品質改善や新機能の追加および、電池の長寿命化を実現しているケースもあります。
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.