LoginSignup
5
2

More than 5 years have passed since last update.

Eclipse/Che を組込み向けクロス開発環境として使ってみる。

Last updated at Posted at 2016-12-12

(対応プロセッサを増やすごとに,加筆していきます。)

2016年現在のクラウド IDE の主戦場はLL系またはJVM系言語です。
mbed など特定環境向けのクラウド IDE は早くから立ち上がっていますが,汎用性がなくつぶしが利かないのが難点です。

Eclipse/Che は,ビルド環境に Docker を採用しているので,Linux 環境でできることはほぼ何でもできます。
つまり,Cheが求める構成を含むクロスGCC入りのコンテナを 作れば ,クロス開発環境になります。

PizzaFactory プロジェクトでは,クラウド IDE の組込みソフト分野での利活用を提案すべく,Che のための Docker コンテナを整備しています。

Eclipse/Che の調達方法

Eclipse/Che のインスタンスは立ち上がっているものとします。Che-server の Docker へのデプロイの仕方は,公式 Web ページを参照してください。

また,Eclipse/Che の開発に大きく貢献している Codenvyは実質 Eclipse/Che と同じクラウドIDEのサービスをフリーミアムモデルで行っており,日本ではPizzaFactory/Camino という有償のサービスも提供されています
手元に環境がない場合には,これらを使うと手軽に始められます。

ワークスペースの作り方

ワークスペースは Stack と呼ばれる,ワークスペースの雛形から生成されます。
本来は Stack を作ったほうがよく,上記有償サービスでは,その対応が為されています1
しかし,本記事の内容の範囲であれば,もっと簡便な手段があります。

まず,左メニューの Workspaces を選択し,青色の Add Workspace ボタンを押します。

Screenshot 2016-12-12 at 13.18.42.png

出てきた New Workspace 画面で,`Runtimeタブを選択し,さらにその下のCustom stack` を選択します。

さらに,下のラジオボタンで Write your own stack を選択すると,テキストボックスが出現します。

テキストボックスが出現した状態

ここに,Docker compose に則った yaml 記述を入力します。
いろいろと複雑なことも書く気になれば書けますが,とりいそぎ,下記の三行あればクロスGCCを使うには十分です。

services:
  dev-machine:
    image: 'イメージ名'

イメージ名は,ターゲットアーキテクチャによって異なります。
ターゲットアーキテクチャとイメージの対応は下表のとおりです。

ターゲットアーキテクチャ バージョン イメージ名
Blackfin ADI 2014R1以降の版 pf0camino/cross-bfin-elf:latest
Nios II Sourcery CodeBench Lite 2016.05-9 for Nios II ELF with R2 以降の版 pf0camino/cross-nios2-elf:latest
MIPS Sourcery CodeBench Lite 2016.05-7 for MIPS ELF 以降の版 pf0camino/cross-mips-elf:latest

ですので,例えば Blackfin プロセッサ向けの開発環境であれば下記のように入力します。
yaml では字下げに意味があるので,その点は気をつけてください。

services:
  dev-machine:
    image: 'pf0camino/cross-bfin-elf:latest'

入力に誤りがないことを確認したら,画面右上の CREATE ボタンを押して,ワークスペースを作成してください。
同じ位置に OPEN ボタンが出現するはずですので,それを押してワークスペースを開いてください。

ネットからクロス開発環境が入った Docker イメージがダウンロードされ,ワークスペース用のコンテナが起動します。

PATH 環境変数の設定等は済んでいますので,ターミナルから,クロス GCC を立ち上げてみてください。

Screenshot 2016-12-12 at 14.24.53.png

まとめ

Eclipse/Che を組込みソフトのクロス開発向けに使う方法を概説しました。

通常の組込み開発,とくに複数の CPU アーキテクチャを扱う場合には,ツール環境をクリーンな状態に保つのが難しいという課題がありました。Eclipse/Che は Docker コンテナで環境を分離できるので,この課題は完全に解決します。
しかし銀の弾ではなく「手元にあるターゲットボードのデバッグが困難」「Windows 版しか提供されないツールに対しては無力」 という新たな課題は発生します。しかし,それを許容できるようであれば,かなり有力な選択肢ではと思います。

ぜひお試しください。
ちなみに筆者は既に,ローカルマシンにあったクロスGCCを,全てアンインストールしました。


  1. 有償版ですから,それくらいあって当然ですね。 

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2