マイコンとプロセッサでのソフト開発の違い:マイクロプロセッサQ&Aハンドブック(7)(2/5 ページ)
マイクロプロセッサ(MPU)を使用したボードを開発するユーザーが抱えるさまざまな悩みに対し、マイクロプロセッサメーカーのエンジニアが回答していく連載。今回は、「マイコンとプロセッサでのソフト開発の違い」について紹介します。
考え方の違い:擦り合わせ型から組み合せ型開発への移行
多機能化と開発期間の短縮を両立させるのに最も重要なのは開発手法を「組み合わせ型」へ移行することです。
アプリはもちろん、OSやドライバも含め、全て自社で開発する「すり合わせ型」は多くの開発メーカーで採用されていると思います。しかし、開発規模が巨大になるにつれ、全てを自社で開発することは現実的ではなくなっています。
そこで、「組み合わせ型」の開発手法への移行が推奨されています(図1)
各種OS、ミドルウェアやドライバ類はオープンソースやサードパーティー製品を活用することで、開発メーカーは差別化領域であるアプリ層の開発に注力できるようになります。組み合せ型開発ではLinuxなどの汎用OSを使用することになりますが、汎用OSではリアルタイム性が確保できないといった課題も残ります。リアルタイム性の必要な処理はRTOSに任せ、その他の処理を汎用OSで処理することで、多機能化と応答性の両立ができます。
また、組み合わせ型のメリットとして、マルチコアプロセッサを使用して、共通プラットフォームを構築することで、異なる製品にもハードウェアの流用設計を適用することが容易になります。組み合わせ型開発への移行は、ソフトウェア開発およびハードウェア開発両方に多機能化と開発期間短縮のメリットをもたらします。
開発体制の違い:個人/単発的な開発からチーム間横断的/継続的な開発へ
マイクロプロセッサを使用した基板の開発では、マイコンに比べて開発規模が大きいため、ソフト開発も複数人もしくは、複数のチームや企業にまたがった開発になります。よくある例としては、基板固有のカスタマイズ部分であるボードサポートパッケージをLinuxやブートローダーの開発を得意とする専門企業に任せ、差別化部分であるアプリケーションを自社で担当する形が挙げられます。
ここで、新たに次のような点が課題になります。
- 効率的な複数人のソフトの変更点のマージ
- ソフトウェアのバグ情報共有
- プロセッサのソフトウェア開発ノウハウのチーム全体教育
変更点を統合するために、マイコンの小規模開発では、社内共有ネットワークやUSBメモリで、WinMergeといったソースコード差分管理ツールを使い手動マージしている場合もあるかと思います。複数のチーム間や企業間でのソースコードのバージョン管理とバグ情報管理を効率的に進める場合、Gitなどの分散型バージョン管理ツールやJIRAなどのクラウド型バグトラッキングツールの導入検討が望ましいです。
ドキュメント類が充実している半導体ベンダーの製品を選択すると、ソフトウェア開発チームの全体共有が効率的に進められます。STマイクロエレクトロニクスではプロセッサのソフトウェア開発のチーム全体教育に必要なノウハウを集めた、stm32mpu wiki(外部リンク)を提供しています。
Copyright © ITmedia, Inc. All Rights Reserved.
