IARシステムズといえば、組み込み業界の方は当然ご存じ開発ツールのベンダーであり、同社のIAR Embedded Workbench(以下、IAR-EW)のお世話になった方は少なくないはずだ。もちろんIAR-EW以外に、静的/動的解析ツールのC-STAT/C-RUNやセキュリティ対応の機能拡張であるC-Trustなども高い評価を得ているツールだし、モデルベース開発に有用なステートマシン設計ツールであるIAR Visual Stateなども提供されている。

加えていえば、同社は非常に多くのアーキテクチャとBSP(Board Support Package)をサポートしていることでも有名であり、さまざまなアーキテクチャにまたがるようなアプリケーションでも統一した環境でアプリケーション開発が可能なことも、多くのユーザーに選ばれる理由となっている。

昨今だとRISC-Vへの対応をいち早く表明、実際にツールを投入したことも話題になっている。あるいは車載アプリケーション向けに関しても、機能安全認証の取得や、MISRA C/C++やCERT C/C++への対応、IAR-EWに対応したMCALが車載Arm MCUベンダーから提供され、AUTOSARベンダー各社での対応実績もあり、非常に高く評価されている。

  • Linux上での開発環境を提供するIARシステムズ

    Linux上での開発環境を提供するIARシステムズ

開発ホストをLinuxにするメリットとは?

そんなIARシステムズの開発ツールであるが、開発プラットフォームそのもの(開発ホスト)は、これまでWindows環境に限られていた。ターゲットデバイスはさまざまであるが、開発そのものはホストであるWindows上で行い、同社のI-jet、あるいはI-jet TraceなどのJTAGプローブ経由でプログラムをターゲットにロード、実行結果をWindows上のホストで解析しながらデバッグやチューニングを進めるという、典型的なクロスプラットフォームの開発環境といえる。

ところが昨今、特に自動車業界において顕著なのが、開発ホストをWindowsからLinuxに移行するという動きである。理由はいろいろとあるようだが、たとえば車体のシミュレーションをLinuxで稼働させており、これと連携して短いサイクルで開発→検証を行うためには、開発ホストもLinuxにした方が都合がよいという話も耳にする。

実のところ、プログラムの開発やデバッグといった要件であれば、Windowsである必要はなく、昨今ではターゲットもLinuxに移行しつつある状況を考えると、これは理にかなったトレンドであろう。もちろん現時点でIAR-EWがターゲットとするアプリケーションは、車載関連でいえばECUの一部やサブシステム/サブユニットなどになり、必ずしもLinuxが動くとは限らない(もしくはOSなしのベアメタルの可能性すらある)。

その意味では、Linuxにした方が便利か? といわれると微妙なところではあるのだが、ただシステム全体を考えた場合に、上位システムの開発のためにLinuxのホストを用意し、下位システムの開発にWindowsのホストを用意するという環境は、両方に携わる必要のある開発者にとっても、環境を整えるシステム管理者にとっても好ましい姿ではない。

Linux上で稼働する開発環境のポイント

こうしたトレンドに対応するべくIARシステムズは、Linux上で稼働する開発環境の提供に踏み切った。Linuxといってもさまざまなものがあるが、まずは開発の現場で広く使われ、安定性もよいUbuntu 18.04.03以降に対応している。Ubuntu上でそのまま利用する以外に、仮想マシン上あるいはコンテナの上で使うことも可能であり、開発者の環境に合わせての対応が容易に行える。

Linux向けに最初に提供されるのは統合開発環境のうちのIAR C/C++コンパイラ、IARアセンブラ、リンカ、ライブラリツール、およびランタイムライブラリといったコンポーネントである。これに続いて、他のツールも順次Ubuntu対応を進めることになっている。コンパイラはC18(ISO/IEC 9899:2018)とC++17に完全対応であり、当然C++14(ISO/IEC 14882:2015)やC11(ISO/IEC 9899:2012)、C89(ANSI X3.159-1989)にも対応している。C-STATなどのツール類は今後の提供となるが、それほど大きく時間を要しないはずだ。

  • Linux対応Arm版に含まれるツール(実行ファイル)

    Linux対応Arm版に含まれるツール(実行ファイル)

加えて、Linux環境で広く使われているツールとの連携も図られている。CI/CD(Continuous Integration/Continuous Delivery)ツールとして広く使われているJenkinsやBambooとの連動も可能だし、あるいはMakeツールとしてCMakeやNinjaを利用することもできるようになっている。先ほどの例でいえば、たとえば車載向けの大規模システムにおいて、上位システムはLinuxベースということで既にCI/CDの環境が整っているはずであり、そうした既存のCI/CD環境にLinux版IAR-EWを統合することで、一貫した開発環境が整うことになる。

気になるLinux版のライセンス形態

Linux版のライセンス形態もこれに対応した形になる。IAR-EWやIAR Visual Stateのライセンス形態は、4種類から選べることになっている。ただしUbuntuをNativeで使う場合はともかく、仮想マシン上あるいはコンテナ上で稼働させる場合、固定ライセンスは非常に厄介なものになるし、USBドングルを使うモバイルライセンスもしばしば面倒なことになりがちだ。

そこでLinux環境ではまずネットワークライセンスとグローバルライセンスの2種類で提供される。この2つのライセンスは、物理的な稼働環境がUbuntu Nativeか、それとも仮想マシンやコンテナ上かには関係なく、ネットワークが繋がっていさえすればIAR-EWが利用可能となるため、Linux版のメリットを最大限に活かすことが可能となっている。これはCI/CDに適したライセンスでもあり、ライセンス数の上限いっぱいまで最大限の並列度で自動ビルドを行うことでビルド時間の短縮を図れる。その意味でも、Linux版がこの2種類のライセンスをサポートするのは都合がよいということになる。

開発ターゲットと今後の展望

開発ターゲットとしては、ArmおよびルネサスのRH850が選ばれている。これも主に車載を意識したものだ。日本ではルネサスのRH850のシェアは決して低くないが、ワールドワイドで見ると、主要な半導体ベンダーはいずれも自動車向けMCUを独自アーキテクチャからArmベース(Cortex-MあるいはCortex-R)に切り替えつつあり、ArmとRH850をサポートすることで新規開発向けのほとんどがカバーできることになる。もちろんIARシステムズはArmとRH850だけでLinux版のサポートを留めるつもりはなく、今後は対応するアーキテクチャを増やしていく予定である。

  • IARコンパイラiccarmを実行したイメージ

    IARコンパイラiccarmを実行したイメージ

Linux版という枠を外してIARシステムズ全体で見てみると、今年4月にIARはQt Companyと協業することを発表している。同社はこれまでGUIの構築ツールを提供してこなかった(しいていえばIAR Visual Stateがこれに該当するが、そもそも目的が違ううえ表現能力という意味ではQtには遠くおよばない)が、今回の提携でこれに関して目途がついたことになる。Qt自身も広く産業機器や民生機器など広範なEmbedded向けに加え、自動車向けも力を入れており、また開発環境もWindowsだけでなくLinuxも当然サポートしているとあって、実はLinux版IAR-EWとも相性がよいことが想像される。

Qtとの最初の提携は、MCU向けのQt for MCUがターゲットになっており、これとIAR-EWを統合したバージョンが2020年中旬に出荷予定とされる。このLinux対応についてもそれほど時間はかからないと思われる。

これまでLinux環境がないという理由でIAR Embedded Workbenchを見送っていた開発担当の方にとって、今回のLinux版の提供は福音となりうるだろう。ぜひ検討をお勧めしたい。

IARシステムズの開発環境がLinuxに対応

>> お問い合わせ先はこちら!

[PR]提供:IARシステムズ