前回から随分と時間が経ってしまいましたが、ターゲットを Jetson TK1 として環境を構築していきたいと思います。
同じことが Raspberry Pi や似たようなARMボードでも通用するんじゃないかと思います。まあなんといいますか、最近そういうのが流行ってるらしいので。組込用のボードで遊ぶっていうかクロスコンパイルってやつが。
実現することは、『Windows環境でクロスコンパイルおよびリモートのデバッグを可能とすること』です。
VMware の VMPlayer に UbuntuなどのLinux環境を入れて実現というのは、既によく語られている方式で安定して動くのでしょうが、割と動作が重くなりがちです。今回は仮想環境を使わないで環境を準備するというのを目標としています。
準備(ターゲット)
とりあえずリモートからのデバッグということで、ターゲット機には gdbserver をインストールしておきます。
gdbserverをターゲットでコンパイルして、パスの通った場所においておくか、Jetson TK1 なら apt-getでのインストールも可能です。
$ sudo apt-get install gdbserver
あとは既に動いているかと思いますが、ssh server(sshd)もサービス起動できるようにしておきます。
また、IPアドレスの取得なども正常にできていることは確認しておいてください。
準備(Windows)
開発環境としてはやはりeclipseを使用します。
他には Linaro のサイトから Windows用のクロスコンパイラなどツールチェインを取得しておきます。
またmakeが必要になるので、MinGWの環境もインストールしたいと思います。確認はしていないですが、cygwinのmakeでも流用可能かもしれません。
eclipseは、ちょっと古いですが eclipse-SDK-3.7-win32.zip を使用しました。他のものでも問題ないと思います。
Linaroからのツールチェインは、gcc-linaro-arm-linux-gnueabihf-4.8-2014.04-20140416_win32.exe をダウンロードしました。
ダウンロードのサイトは、http://www.linaro.org/downloads/です。ここからダウンロードして下さい。見た感じインストーラー付属のものしかなさそうです。ここでは、D:\Linaro にインストールしてみました。
インストールすると、D:\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2014.04 以下に色々とツールがインストールされました。
続いて MinGWのインストールです。
MinGWは http://www.mingw.org/ から取得できます。ですが、このサイトからダウンロードするべき物がわかりづらいです。
mingw-get-setup.exe というものが見つかると思うので、これをダウンロードして実行し、ここからMinGW と MSYS とをインストールしてください。このとき、MSYSに含まれる make がインストールされるように、パッケージの確認をおこなっておきます。
ここでは、D:\MinGW にインストールを行いました。
そして、D:\MinGW\msys\1.0\bin に色々とツールが入っているので、ここにPATHを設定しておきます。
(環境変数 PATH の値に、D:\MinGW\msys\1.0\bin を末尾にでも追加しておいて下さい)
eclipseにプラグインを導入
以下のプラグインをインストールします。
- C/C++ Development Tools
- C/C++ Development Tools SDK
- C/C++ GCC Cross Compiler Support
- C/C++ Memory View Enhancements
- C/C++ Remote Launch
- Remote System Explorer End-User Runtime
- Remote System Explorer User Actions
メニューのヘルプから Install New Software を選択し、利用可能なサイト全ての項目を選んで、上記項目をいれていけば見つかると思います。
必要な物はこれでそろったので、次回はこれらを設定して環境を組み上げていきます。