Arduino IDE | Linux Arduino互換ライブラリをLinaro ARM Linux GCC 4.7でビルド→正常終了
Intel Galileo Arduino IDEに同梱されているLinux Arduino互換ライブラリのソースコードをLinaro ARM
Linux GCC 4.7.3でビルド出来るか試してみました。結果、最後までビルド出来ました。
BuildLog.txt

書き換えたArduino IDEの環境設定ファイル: arduino-1.5.3\hardware\arduino\x86\platform.win.txt
環境設定ファイルの書き換え部分の内容(もう'X86'では無く'ARM'ですが文字列は未変更のままです):
# X86 compile variables
# ---------------------
name=Arduino X86 Boards
compiler.path=E:/tools/micom/Renesas/Linaro/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04/bin/
compiler.c.cmd=arm-linux-gnueabihf-gcc
compiler.c.flags= -c -g -Os -w -ffunction-sections -fdata-sections -MMD
compiler.c.elf.flags=-Os -Wl,--gc-sections
compiler.c.elf.cmd=arm-linux-gnueabihf-g++
compiler.S.flags=-c -g -assembler-with-cpp
compiler.cpp.cmd=arm-linux-gnueabihf-g++
compiler.cpp.flags= -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD
compiler.ar.cmd=arm-linux-gnueabihf-ar
compiler.ar.flags=rcs
compiler.objcopy.cmd=arm-linux-gnueabihf-objcopy
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
compiler.elf2hex.flags=-O ihex -R .eeprom
compiler.elf2hex.cmd=arm-linux-gnueabihf-objcopy
compiler.ldflags=
compiler.size.cmd=arm-linux-gnueabihf-size
compiler.strip.cmd=arm-linux-gnueabihf-strip
# this can be overriden in boards.txt
build.extra_flags=
# X86 compile patterns
# --------------------
## Compile c files
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -D{software}={runtime.ide.version} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Compile c++ files
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -D{software}={runtime.ide.version} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Create archives
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm -lpthread
## Create eeprom
recipe.objcopy.eep.pattern="{compiler.path}{compiler.strip.cmd}" "{build.path}/{build.project_name}.elf"
## Create hex
recipe.objcopy.hex.pattern=
## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=Total\s+([0-9]+).*
Linux GCC 4.7.3でビルド出来るか試してみました。結果、最後までビルド出来ました。
BuildLog.txt

書き換えたArduino IDEの環境設定ファイル: arduino-1.5.3\hardware\arduino\x86\platform.win.txt
環境設定ファイルの書き換え部分の内容(もう'X86'では無く'ARM'ですが文字列は未変更のままです):
# X86 compile variables
# ---------------------
name=Arduino X86 Boards
compiler.path=E:/tools/micom/Renesas/Linaro/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04/bin/
compiler.c.cmd=arm-linux-gnueabihf-gcc
compiler.c.flags= -c -g -Os -w -ffunction-sections -fdata-sections -MMD
compiler.c.elf.flags=-Os -Wl,--gc-sections
compiler.c.elf.cmd=arm-linux-gnueabihf-g++
compiler.S.flags=-c -g -assembler-with-cpp
compiler.cpp.cmd=arm-linux-gnueabihf-g++
compiler.cpp.flags= -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD
compiler.ar.cmd=arm-linux-gnueabihf-ar
compiler.ar.flags=rcs
compiler.objcopy.cmd=arm-linux-gnueabihf-objcopy
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
compiler.elf2hex.flags=-O ihex -R .eeprom
compiler.elf2hex.cmd=arm-linux-gnueabihf-objcopy
compiler.ldflags=
compiler.size.cmd=arm-linux-gnueabihf-size
compiler.strip.cmd=arm-linux-gnueabihf-strip
# this can be overriden in boards.txt
build.extra_flags=
# X86 compile patterns
# --------------------
## Compile c files
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -D{software}={runtime.ide.version} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Compile c++ files
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -D{software}={runtime.ide.version} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
## Create archives
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm -lpthread
## Create eeprom
recipe.objcopy.eep.pattern="{compiler.path}{compiler.strip.cmd}" "{build.path}/{build.project_name}.elf"
## Create hex
recipe.objcopy.hex.pattern=
## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=Total\s+([0-9]+).*
- 関連記事
-
- QEMU | Ubuntuのchroot機能とマルチアーキテクチャ機能を使ってARM Linux Arduinoスケッチを実行
- QEMU | Ubuntuのchroot機能でCEV-RZ/A1L Linuxのルートファイルシステムをエミュレーション
- QEMU | Ubuntuのマルチアーキテクチャ機能を使ってARM Linux Arduinoスケッチを実行
- QEMU | CEV Linux SDK V2.00.00 GCC 4.7でビルドしたARM Linux ArduinoスケッチをQEMUで実行
- QEMU | Linaro ARM Linux GCC 4.7でビルドしたARM Linux ArduinoスケッチをQEMUで実行
- Arduino IDE | Linux Arduino互換ライブラリをCEV Linux SDK V2.00.00 GCC 4.7でビルド→正常終了
- Arduino IDE | Linux Arduino互換ライブラリをUbuntu/Linaro x86 Linux GCC 4.7でビルド→正常終了
- Arduino IDE | Linux Arduino互換ライブラリをLinaro ARM Linux GCC 4.7でビルド→正常終了
- Arduino IDE | Linux Arduino互換ライブラリをUbuntu/Linaro x86 Linux GCCでビルド→途中でエラー
- Arduino IDE | Linux Arduino互換ライブラリをCygwin GCCでビルド→最初からエラー
- Arduino IDE | Intel Galileo Arduino IDEのマイコンボードメニューを冗談半分(?)に増やしてみた
- Arduino IDE | Intel Galileo Arduino IDEで作成した実行プログラムをLinuxから実行する時の引数
- Arduino IDE | Intel Galileo Arduino IDEでcppファイルをコンパイル
- Arduino IDE | Pleiades KeplerとIntel Galileo Arduino IDEでスケッチフォルダとビルドフォルダを共有
- Arduino IDE | Pleiades KeplerでLinux Arduino互換ライブラリをcppファイルから使用する
2014/01/18 blog-entry-407 category: Arduino Lib & CrossGCC
| h o m e |