マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「C言語コード生成ツールが普及する理由」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初級者から多く寄せられる質問です。
最近のマイコンの統合開発環境(Integrated Development Environment:以下、IDE)にはC言語コード(以下、コード)の生成ツールが含まれていて、C言語コードがかなり普及していると思います。最近、コード生成ツール機能が急速に普及してきていると感じるのですが理由は何ですか? コード生成ツール機能には、どのような利点があるのでしょうか? 実際の機能および具体的な使い方も教えてください。
かつて、マイコンのソフトウェアエンジニアは、仕様書やマニュアルを詳細に確認し、レジスタのビット単位の設定値を手作業で記述して、コードを作成していました。この作業は非常に手間がかかるものでした。しかし、当時の仕様や性能であれば、手作業でもどうにか可能な範囲でした。
近年、マイコンが高機能化して、搭載される機能も複雑になってくると、ソフトウェアエンジニアの作業負担はさらに大きくなってきました。これは開発作業の大幅な増加、開発工程の長期化、開発効率の低下を招きます。
一方で、IDEも高機能化が進み、演算処理能力が飛躍的に向上しています。この進化はマイコンの高性能化に追随し、時にはそれを上回る速度で進化しています。IDEの処理能力が著しく向上したことで、コードを自動で生成できるようになってきました。さらに、並行して、ソフトウェアの階層化やマイコン仕様の統一化などを進めたことによって、コードの記述・構成が簡単になり、コード生成機能がさらに作りやすくなったと考えられます。
例えば、ソフトウェアの階層化であれば、ハードウェア抽象化レイヤー(Hardware Abstraction Layer:以下、HAL)*1)が挙げられます。HALはハードウェアの違いを吸収し、ソフトウェアエンジニアがハードウェアの詳細を意識せずにコーディングできる階層化です。コード生成機能にHALの概念を取り込むことで、より一層、コード生成機能の精度を上げることができると考えられます。
コード自動生成ツールを使うと、短期間でコードを作成でき、スピーディーな開発が可能になります。また、人的資源を減らすことができるほか、完成したコードの完成度、信頼度も向上できます。このような理由で、コード自動生成ツールは、急激に普及しています。
ただし、自動生成してくれるのは、周辺機能の初期設定コードだけです。実際に周辺モジュールを起動したり、停止したり、データを処理する制御用コードは、ユーザーの製品仕様に依存しますので、ソフトウェアエンジニアが作る必要があります。
図1に、STマイクロエレクトロニクス(以下、ST)の汎用32ビットマイコン「STM32ファミリー」※2)用の開発ツールSTM32CubeMX※3)のコード自動生成ツールの例を示します。この図はA-Dコンバーターの初期設定コードを作ってくれる機能の操作画面です。GUIに設定値を入力すると、自動で初期設定のコードを生成してくれます。
(※1)「Q&Aで学ぶマイコン講座(64) HAL(ハードウェア抽象化レイヤー)って何?」参照
(※2)STM32ファミリー
(※3)STM32CubeMX
Copyright © ITmedia, Inc. All Rights Reserved.
記事ランキング