2013年9月10日火曜日

VisualGDBで Visual Studio を使ってのRaspberry Pi のクロス開発

 以前に、Debian Linux 上のEclipseから Raspberyy Pi のクロス開発を行う環境の構築について記述したことがありますが、ネットを徘徊している時に VisualGDB なるものを見つけたので、試してみることにしました。
 Visual Studio 2010 or 2012 のプラグインとしてインストールして、Raspberry Pi のクロス開発ができるというものです。残念ながら有料ですが、30日の体験版インストールが可能だったので、試してみることにしました。

 VisauGDBプラグインをインストールして、新規プロジェクトでVisualGDBを選択すると、いくつかのプロジェクトの種類が選択できます。


 Linux Project Wizard を選択すると、「Build the project under Linux over network」と「Build the project locally with a cross-compiler」が選択できる画面になります。

 「Build the project under Linux over network」はSSH接続でVisual Studio で編集したソースを Raspberry Pi 側(のリソースを使って)でビルドします。


こちらの方式では、ビルドにRaspberry Pi のリソースを使用するので、時間がかかります。HelloWorldくらいでは差はでませんが、OpenCVを使ったプロジェクトをビルドしたりすると、後のクロスコンパイラ環境に比べてかなり時間がかかって待たされます。ただし、ビルドのためのプロジェクトのプロパティの設定は比較的簡単です。Raspberry Pi 側でMakefileでビルドできる環境になっていれば、Makefileの中身相当のものをプロパティのフィールドに埋めていけばOKな感じです。

 これに対して、「Build the project locally with a cross-compiler」を選択すると、Windows上でWindowsマシンのリソースを使用してクロスコンパイラによるビルドが行われます。


こちらは、今どきのCorei7,SSDでメモリも数Gあるマシンならビルドはあっという間です。Raspberry Pi上にあるライブラリやヘッダファイルをどうするのかという問題が有りますが、環境の同期機能のようなものが有り、「同期」ボタンを押すだけで開発系のライブラリやソースをWindowsマシンのクロス開発環境のディレクトリにコピーして準備を整えてくれる機能が装備されています。ただ、自分がOpenCVを使ったプロジェクトをこちらの方式でビルドしようとしたところ、上手くビルドできず(ライブラリを見つけられず)、プロジェクトのライブラリのパス設定なども行ったんですが、今のところ上手く行っていません。たぶん、何かの設定ミスだと思うのですが、引き続き調査です。WiringPiを使ったプロジェクトはこちらのクロス開発でも上手くビルドすることが出来ました。

 このVisualGDBの凄いところは、どちらの方式でも Windows 上の Visual Stduio からブレークポイントを置いたデバッグが出来て、しかも、コンソールアプリだけでなく、OpenCVのアプリケーションのようなものでも Xサーバを使って、Windows上に実行画面を表示しながらデバッグできてしまうところです。



 このXサーバを使ったGUIアプリのデバッグ機能は正直驚きです。

 また、VisualGDB は Raspberry Pi 上での Qt4 での開発にも対応しており、


詳しくはこの辺のチュートリアルを見ていただくとして、やはり、Xサーバでの実行・デバッグが出来ます。


かなり、便利。問題は価格でしょうか。Raspberry Pi が3枚以上買えます。