Intel Edisonを動かす(10) クロス開発環境構築編

edison_001_R

USBカメラからの映像をストリーミングするソフトを決める前に、ソフトをコンパイルする環境、つまりクロスコンパイル環境を構築します。
参考にしたドキュメントはこれです。
この環境はLinuxマシン上に構築します。今回使用したのはLinuxBeanというUbuntuの軽量版です。

    1. 準備
      Linux上で以下のコマンドを実行します。
      $ sudo apt-get install make automake gcc g++ build-essential gcc-multilib
    2. クロスコンパイラのダウンロード
      インテルのサイトからクロスコンパイラをダウンロードします。SDKダウンロード画面今回は32ビット版を使用します。
    3. unzipで解凍
      ダウンロードしたファイルedison-sdk-linux632-ww05-15.zipをunzipコマンドで解凍します。
    4. poky-して出来たファイルpoky-edison-eglibc-i686-edison-image-core2-32-toolchain-1.6.1.shを実行します。
      $ ./poky-edison-eglibc-i686-edison-image-core2-32-toolchain-1.6.1.sh
      Enter target directory for SDK (default: /opt/poky-edison/1.6.1):
      You are about to install the SDK to “/opt/poky-edison/1.6.1″. Proceed[Y/n]?
      Extracting SDK…done
      Setting it up…done
      SDK has been successfully set up and is ready to be used.
    5. 環境変数の設定
      $ source /opt/poky-edison/1.6.1/environment-setup-core2-32-poky-linux
    6. 環境変数の確認$ echo $CC
      i586-poky-linux-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux$ echo $CXX
      i586-poky-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux$ echo $CPP
      i586-poky-linux-gcc -E -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mstackrealign -fno-omit-frame-pointer –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux
      $ echo $LD
      i586-poky-linux-ld –sysroot=/opt/poky-edison/1.6.1/sysroots/core2-32-poky-linux$ echo $GDB
      i586-poky-linux-gdb

以上で開発環境の構築は終了です。とても簡単ですね。
それではさっそくプログラムを書いてEdisonで動かしてみます。

  1. $ vi hello_world.c
    Linuxマシン上でviエディタを使ってソースコードを書きます。
    #include int main(){ printf(“Hello World\n”); return 0; }
  2. コンパイル
    $ $CC -o hello hello_world.c
    Linuxマシン上でコンパイルします。
  3. 確認1
    コンパイルに成功するとhelloファイルが出来ます。lsコマンドで確認します。
    $ ls -l hello
    -rwxrwxr-x 1 uname gname 8540 3月 22 15:23 hello
  4. 確認2
    Edison用のバイナリになっているか確認します。
    $ file hello
    hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=cd533dabc53fc35cf4392b084ca792ead4689cfe, not stripped
    EdisonのCPUはIntel Atomなので、「Intel 80386」と表示されます。
  5. プログラムをEdison上に転送するために、Wifiをセットアップします(Wifi環境が既にある前提です)。
    $ configure –wifi
    シリアルコンソールで上記を実行すると、アクセスポイントを検索します。
    2015-3-29_10-26-22_COM11115200baud - Tera Term VT検索が終了すると次の画面になります。
    2015-3-29_10-26-39_COM11115200baud - Tera Term VT接続するアクセスポイントを選択し、セキュリティの設定をしてWifiの設定は終了です。
  6. IPアドレスが割り当てられているかifconfigコマンドで確認します。
    wlan0 I/FにIPアドレス192.168.3.14が割り当てられています。2015-3-22_16-5-10_管理者 コマンド プロンプト
    2015-3-22_16-4-6_COM11115200baud - Tera Term VT
  7. 同じアクセスポイント経由でつながっているPCからEdisonにpingしてみます。
    応答が帰ってきています。
  8. LinuxマシンからEdisonにhelloプログラムをscpコマンドで転送します。
    $ scp hello root@192.168.3.14:/home/root/sample
    root@192.168.3.14’s password:
    hello 100% 8540 8.3KB/s 00:00
  9. Ediosn上でhelloプログラムを実行します。
    2015-3-22_16-21-8_COM11115200baud - Tera Term VT

無事、実行することが出来ました。
以上で、クロス開発環境の構築は終了です。
次回はいよいよ、カメラをEdisonに接続です。お楽しみに!

 

⇐(9)カメラ編へ戻る

(11)続カメラ編へ⇒

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です