メインコンテンツに移動

RXファミリのソフトウェアの歴史と今後の展望 #5

画像
Hiroki Ishiguro
石黒 裕紀
主幹技師
掲載: 2022年9月1日

ソフトウェア開発は規模やその複雑さ度合いが増しています。ソフトウェア開発者は設計とコーディングに集中したいと思う傍ら、テスト結果集計やリリースパッケージ作成、マニュアル作成に追われます。一方、1コードで複数プラットフォームに対応するような開発の場合、テスト工程の8割以上がプラットフォーム毎に同じ、というケースがありました。この場合特定のプラットフォームでのみテストを行い、テストを行っていないプラットフォーム特有の実装に対するテストの漏れが検出できない課題がありました。

まとめると課題としては以下2点です。

  1. 効率向上:ソフトウェア開発費が増大しており、いかに効率よく開発するか
  2. 品質向上:似たようなテストケースを省略することなく実施し、いかに品質を向上させるか

対策として、昨今、CI/CD(Continuous Integration/Continuous Delivery)という考え方が普及しており、これをマイコンソフトウェア開発にも適用できないかを考えました。IDE(e2 studio/CS+)はじめ様々なツール類をコマンドラインで動作させることで、CI/CDツールとの連携を実施しやすくすることを考えました。CI/CDツールとしては「GitLab」を選定しました。

この考えを応用することにより、ユーザシステムにおいても設計とコーディングに集中できます。ここでは、「GitLabでRXファミリのソフトウェアの実機評価を自動化すること」ことを題材に紹介します。以下がGitLabシステム構成図です。

画像
GitLab System Configuration

例えば「RX Driver Package」ではリストのように100個以上のソフトウェアモジュールが存在しており、20種類以上のRXファミリのデバイスグループをサポートしています。そのすべての組み合わせにおいて動作検証をする必要があります。また表では表現されていませんが、対応コンパイラもCC-RX、GCC、IARと3種類あり、これもそれぞれで動作検証する必要があります。Raspberry Piを活用することも大きなポイントでした。

この対策によりリリースデータ作成および、テストに必要なリソースは先述の課題①②に対し、以下効果を得ることができました。

① 人件費がゼロ、テスト用のマシンの電気代が1/10、テスト期間は1/40に圧縮し効率向上できた
② これまで特定のボード、コンパイラ、最適化オプションレベル等の限定したテスト仕様の対象範囲を拡大し、品質向上できた

次回ブログで具体的な実現手法に触れてみたいと思います。

このノウハウをルネサス全社で共有することでルネサス全体のソフトウェア開発効率を向上させることにトライしています。車載ソフトウェア開発部門とも日々ノウハウ交換を継続しています。

また、最先端のソフトウェア開発手法はアメリカから広がる傾向があると考えています。いろいろな地域のエンジニアとすぐに協力体制を組めるのはグローバル企業ならではの強みかもしれません。今後も最先端のソフトウェア開発手法を取り入れていき、アプリケーションノート化するなどでお客様ともノウハウ共有したいと考えています。

この記事をシェアする