なんとかなるさね

マイコンをネタにブログを始めてみました


スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--   blog-entry-   category: スポンサー広告

go page top

Arduino IDE | Pleiades KeplerでLinux Arduinoスケッチのinoファイルをコンパイル 

1つ前のエントリで、Linux ArduinoスケッチのinoファイルでもEclipse上でデバッグ出来たことを書きました
が、そうなると、どうしても、Linux ArduinoスケッチのinoファイルをEclipse上でそのままコンパイルしたく
なります。そこで、GCCのオプションを確認してみたところ、以下のオプションがあることに気付きました。
Eclipse上で試してみた結果、一応、inoファイルをそのままコンパイル出来ました。ただ、ヘッダファイルを
1つ追加して手作業でプロトタイプ宣言をメンテナンスしていくという余分な手間が増えてしまいましたので、
ありがたみとしては微妙ですが。(もっとも、手作業でプロトタイプ宣言をメンテナンスすることは、C/C++
では、普通にやっていることですので、それほど微妙という訳ではないだろうとも思ってはいますが。) なお、
今回、Eclipseの編集ウィドウの文法チェック機能は、無効にせずに有効にしたまま、です。

>i586-poky-linux-uclibc-g++ -v --help
GCC_Options.txt
  -x <language>      Specify the language of the following input files
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension
 
  -include <file>      Include the contents of <file> before other files
 
  --allow-multiple-definition      Allow multiple definitions




ビルドログは以下の通りでした。

BuildLog.txt

追加したヘッダファイルは以下の通りです。

ファイル: stdafx.h
内容:

#ifndef __STDAFX_H__
#define __STDAFX_H__
#include "Arduino.h"
void setup();
void loop();
void undecl(char *str);
#endif /* __STDAFX_H__ */


プロジェクトの作成は、以下のようにしました。


sketch_dec28a

Cross compiler prefix:       i586-poky-linux-uclibc-
 
Cross compiler path:       E:/tools/micom/Intel/arduino-1.5.3/hardware/tools/x86/i686-pokysdk-mingw32/usr/bin/i586-poky-linux-uclibc


E:/tools/micom/Intel/sketchbook/sketch_dec28a


E:/tools/micom/Intel/sketchbook/build





ワークスペースの設定は、以下のようにしました。


*.ino


linux_arduino_home      E:/tools/micom/Intel/arduino-1.5.3

x86_linux_uclibc_toolchain_home      ${linux_arduino_home}/hardware/tools/x86



プロジェクトのプロパティは、以下のようにしました。



ARDUINO=153

"${x86_linux_uclibc_toolchain_home}/i586-poky-linux-uclibc/usr/include"
"${x86_linux_uclibc_toolchain_home}/i586-poky-linux-uclibc/usr/include/c++"
"${linux_arduino_home}/hardware/arduino/x86/cores/arduino"
"${linux_arduino_home}/hardware/arduino/x86/variants/galileo_fab_d"
"${workspace_loc:/${ProjName}/sketch_dec28a}/stdafx.h"





-c -xc++ -m32 -march=i586 --sysroot="${x86_linux_uclibc_toolchain_home}/i586-poky-linux-uclibc" -fno-exceptions -ffunction-sections -fdata-sections

m
pthread


-m32 -march=i586 --sysroot="${x86_linux_uclibc_toolchain_home}/i586-poky-linux-uclibc" -Os
--gc-sections
--allow-multiple-definition
"${workspace_loc:/${ProjName}/build}/core.a"


${workspace_loc:/${ProjName}/build}/${ProjName}.cpp
elf



なお、ちょっと手抜きをして、Linux Arduino互換ライブラリ本体とも言えるcore.aを自前ではビルドせずに、
Intel Galileo Arduino IDEでビルドした時のcore.aをそのまま使用しています。



関連記事

2014/01/04   blog-entry-399   category: Arduino Lib & CrossGCC

go page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。