双葉電子はなぜIARの統合開発環境を選んだのか?IDEと一体化した動的・静的解析ツールのアドバンテージ

蛍光表示管や有機ELディスプレイなどの表示機器を開発している双葉電子工業株式会社(以下、双葉電子)は、現在ARMマイコンとルネサス エレクトロニクスのSHマイコンの両方を使っており、それぞれのソフトウェア開発に、IARシステムズ社(以下、IAR)の統合開発環境(IDE)「EWARM」と「EWSH」を利用している。双葉電子は、IAR社が提供している動的・静的解析ツール(IDEのアドオン機能)も実際の製品開発に活用している。ここでは、双葉電子がこれらの環境を導入した経緯、および解析ツールの使い勝手などについて話を聞いた。

メインイメージ
集合写真(左より)
IARシステムズ株式会社
営業部 深谷 尚礼 氏
マーケティング部 マネージャ 古江 勝利 氏
双葉電子工業株式会社
エレクトロニックデバイス事業センター 技術部 製品開発課 ソフト開発係 梅津 伊喜 氏
エレクトロニックデバイス事業センター 技術部 製品開発課 ソフト開発係 小宮山 智裕 氏
(古江氏の持っているぬいぐるみは双葉電子マスコットのフタバくん)

震災と表示機器市場の変化がARMマイコン導入の契機に

ー 双葉電子の事業内容について教えてください

梅津(双葉電子):設立は1948年です。当社の事業の柱は、「電子部品」、「電子機器」、「生産器材」の三つになります。電子部品部門は、蛍光表示管(VFD)や有機ELディスプレイ(OELD)、タッチ・パネルなどを、電子機器部門は、ラジコン機器や産業用無線機器、サーボ・モータなどを提供しています。例えば、デアゴスティーニ・ジャパンの分冊雑誌として販売されたコミュニケーション・ロボット「Robi」のサーボ・モータは、双葉電子が供給しました。生産器材の部門は、樹脂射出成形に使うモールド・ベースや、金属プレス成形用のダイセットなどを提供しています。私自身は電子部品部門に所属しており、VFDやOELD、液晶ディスプレイ(LCD)などの表示機器に組み込むソフトウェアを開発しています(図1)。

図1

図1:双葉電子が開発した液晶モジュール(デモ機)(左)とVFDモジュール(右)の外観。

ー ARMはいつごろから使い始めましたか?

梅津:2012年ころにARM® Cortex®-M3コアを搭載したマイコンを導入し、その後、M4、M0+、M0というように、Cortex-M系をひと通り経験しました。最近では、タッチ・パネル付きLCD製品の開発に、Cortex-A9コアを搭載したルネサス エレクトロニクスの「RZ/Aシリーズ」を使っています。

ー ARM採用の経緯を教えてください。

梅津:二つの背景があります。一つは、東日本大震災です。それ以前、双葉電子はほとんどの製品にルネサス製のマイコンを使っていました。他のメーカーも同じだと思いますが、2011年3月の震災の後、双葉電子の中でも主要部品の1社集中購買が問題視されるようになり、ルネサス以外のマイコンを採用する機運が出てきました。

ー もう一つの背景は?

梅津:双葉電子の主力製品の変化です。そのころ、双葉電子の主力はVFD製品でした。VFDは、LCDと比べると見栄えはとても良いのですが、消費電力が高いという欠点があります。省電力を求める顧客が増えるなか、市場ではLCDが勢力を増していきました。双葉電子もLCD製品を開発するようになっていたのですが、LCDを取り扱う表示機器メーカーの数は非常に多く、どうしても価格勝負になりがちです。そのため、当時、「安い」と言われていたARMマイコンを評価することになりました。まずAtmel社、その後、ST社やNXP社、Cypress社などのARMマイコンを採用しました。コストや使い勝手を考慮して、マイコン・ベンダーを切り替えるようになりました。

信頼性を担保するためにサポート付きの商用ツールを採用

ー IARはどのような企業ですか?

古江(IAR):IARはスウェーデンが本社の組み込みソフトウェア開発ツールの専業メーカーで、創業から33年目になります。IARは、組み込み向けの商用コンパイラを最初に作った会社でもあります。組み込みプロセッサが時代と共に変遷していくなかで、その時その時の優れたプロセッサを全てサポートしてきました。

ー 現在はどんなツールを提供していますか?

深谷(IAR):コンパイラやリンカ、デバッガなどを含む統合開発環境「IAR Embedded Workbench®」を販売しています。マイコン用の統合開発環境に限れば、マーケットリーダー的なポジションに居ると思います。

ー 双葉電子が導入しているEmbedded WorkbenchはARM対応版ですか?

梅津:電子部品部門が、EWARM(Embedded Workbench for ARM)とEWSH(Embedded Workbench for RENESAS SUPERH)のライセンスを購入しています。これとは別に、電子機器部門もEWARMを使っています。

ー EWARMやEWSHを選定した理由は?

梅津:調査の結果、ARMマイコンの開発環境については、「Keil MDK」か「EWARM」かの二択になりました。当時、IARは日本語をサポートしている点を大々的にアピールしており、まずそこに惹かれました。またIARのコンパイラは、さまざまな命令セット・アーキテクチャのCPUコアをサポートしています。そういう分野の技術に特化したメーカーなので使い勝手もいいだろう、と思いました。SHマイコンについては、以前はルネサスの統合開発環境「HEW」などを使って開発していたのですが、EWARMを使うようになり、使い勝手の良さを確認できたので、EWSHのライセンスも購入しました。

ー オープンソースのGCCは候補に上がらなかったのでしょうか?

梅津:例えばデモ・システムの開発であれば、GCCでも構いません。しかし、実際の製品開発に適用するとなると、問題があります。コンパイラが原因で不具合が起きたとき、双葉電子がすべての責任を被ることになります。価格が多少高くても、きちんとしたサポートのある商用ツールを選ぶべきだと考えました。IARのツールは、TÜV SÜD(大手の第三者試験認証機関)の機能安全認証を取得しています。開発した製品の“信頼性”の観点からも、認証取得の実績のあるツールを使うことには、意味があると思います。

ー 開発環境の導入は順調に進みましたか?

梅津:順調でした。特に社内の反対もなく、すんなりと導入できました。

ー ツール・メーカーが直接売り込みに来ていたのでしょうか?

梅津:いえ、来ていません(笑)。Webからダウンロードできる評価版を確認するだけで、導入を決めました。ツール・メーカーが説明に来たのは、 ARMマイコンを購入するようになってからです。

深谷:ツール・メーカーにとっては、いい時代になりました。IARでは、毎週100件以上のペースで評価版をダウンロードしていただいています。IARは新規ユーザー数が非常に多いのでWeb上の評価版で事前に判断していただけるのは、たいへん助かります。

ー 最初にIARのツールを使ったときの印象は?

小宮山:最初にIARのツールを起動したとき、「こんなに質素な画面で本当に開発できるのかな?」と思いました(笑)。例えばリンカについては、ルネサスのHEWの場合、グラフィカルな画面を使って対話的にメモリの割り当てを設定します。一方、IARのリンカはスクリプトで設定するスタイルを採っています。今でこそ、この方法に慣れましたが、使い始めたころはかなり戸惑いました。

古江:そうなんです!スウェーデン企業だからシンプルイズベストなのかも(笑)。ご指摘のリンカ・スクリプトのところは必ず質問が出ます。で、どうしているかと言うと、これは4年前には多分なかったと思うのですが、日本語のチュートリアルを提供しています。これを見れば、ほぼ100%問題が解決する、というドキュメントをリンカに限らず多数用意するようにしています。

高度な解析機能が格安で使える初心者ほど活用して欲しい

ー Embedded Workbenchには動的解析や静的解析のアドオン機能があります。

梅津:どちらの解析ツールも使っています。動的解析の「C-RUN」は、プログラムを実行しながら整数オーバフローやメモリ・リークなどをチェックしてくれます(図2)。プログラムを実行するのは、実機でもシミュレータでもかまいません。静的解析の「C-STAT」は、C言語のファイルを個別に解析し、ソース・コードのコーディング規約をチェックします。コーディング規約は、MISRA-CもCERT Cも適用しています。とりあえずルールをいっぱい入れて1回実行し、レポートのワーニングを見ながら不要なルールを一つ一つ吟味して削り、自分に合ったルールを作っていきます。

図2

図2:IARの動的解析(C-RUN)ツールの画面例。

ー 動的解析や静的解析のツールには“高価なツール”というイメージがあります。

梅津: C-RUNとC-STATは、他社のツールと比べて圧倒的に価格が安いです。他社のツールが数百万円するのに対して、約1/10の価格で購入できます。これなら「試しに使ってみよう」、という気になります。双葉電子は数百万円の高価なツールも使っていますが、これらはIDEとは別の環境になるので、事前の準備に手間がかかります。一方、C-RUNやC-STATはIDEと一体化して機能するので、こうした手間を軽減できます。

古江:C-STATは昨年出たばかりなのですが既にかなりのユーザーに使っていただいています。理由は、出力されるレポートの質が高いので、即座にコードの修正が可能となり、開発期間を短縮できるためです。C-RUNの動的解析に関しては車載以外の市場からの要求が高まるのにもう少し時間がかかりそうですね。

ー 双葉電子は、C-RUNによってどのような不具合をチェックしていますか?

梅津:例えば、整数オーバフローのチェックに使っています。こういう不具合を見つけるのに、時間を費やさなくて済むのは助かります。ただし、境界値解析はうまくいきませんでした。動的解析では、プログラムの中にチェック用のコードを埋め込むので、その分、実行時に余計なメモリ容量が必要になります。特に境界値解析では、多くのメモリを消費します。双葉電子のシステムの場合、必要最小限のメモリしか積まないことが多いため、現状、コンパイル時にエラーとなり、解析できませんでした。

ー C-RUNは、どんな開発者にお勧めですか?

小宮山:C-RUNのよいところは、ソフトウェアの初心者ほどミスしやすいところをチェックしてくれる、という点です。まさに初心者にこそ使ってほしいと思います。

ー C-STATを導入する利点を教えてください。

梅津:最初に自分に合ったルールを探し出すのは大変ですが、そのルールの選定さえ済めば、解析そのものはボタン一つで実行されます。また、コード量が多くなってくると、他人のコードを眺めていても、なかなか不良個所を見つけられません。C-STATのレポートを見れば、問題がありそうな個所の当たりを付けることができます。自分で作成したコードだけでなく、他人が作成したコードをチェックするときも、C-STATは有用だと思います。

ー 今後の展開を教えてください。

梅津:IoTの流れもあり、無線で接続する機器の開発に力を入れていきます。Bluetoothを使った製品はすでに出荷していますし、Wi-Fiもやっていきます。電池駆動では低消費電力化も課題の一つです。低消費電力を実現できるソフトウェア作り、製品作りを考えていきたいと思います。IARのI-jet(JTAGエミュレータ)にはパワー・デバッグの機能があり、コードのどの部分を実行したときにどれだけ多くの電力を消費したのかをグラフで示してくれます。低消費電力化を目指した製品開発では、このようなツールを使っていくことも必要になると思います。

古江:IARは、開発環境に継続的に新しい機能を追加しています。例えばI-jetを使ってデバッグする際に、Cortex-M系のマイコンだと最大6つまでしかブレーク・ポイントを設定できませんでした。しかし最新版では、メモリ上で無限に(ソフトウェア)ブレーク・ポイントを設定できるようになっています。ARM次世代のアーキテクチャであるARMv8-Mにも対応しました。IoTの時代になるとネット接続時のセキュリティの問題が出てきます。そのため、ソフトウェア開発時にコード品質を向上させる取り組みが重要になります。そのあたりのユーザー要求を押さえながら、良いツールを提供していきたいと考えています。

ー 本日はお忙しい中貴重なお話ありがとうございました。

APS EYE'S

統合開発環境は、もはや欠かせない存在だ。IARは、日本語化されているEWARMのアドバンテージに加え、豊富なCPU対応とコード効率、作業効率を高めるために弛まぬ開発を続けている。「もっとツールを使いこなして欲しい。」そんな声が届けられたらと思う。