なんとかなるさね

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


Arduino IDE | Linux Arduino互換ライブラリをCEV Linux SDK V2.00.00 GCC 4.7でビルド→正常終了 

Intel Galileo Arduino IDEに同梱されているLinux Arduino互換ライブラリのソースコードをルネサスRZ/A1L
マイコン搭載のコンピューテックス社製評価ボードCEV-RZ/A1LのCEV Linux SDK V2.00.00 arm-buildroot-
linux-uclibcgnueabihf GCC 4.7.3でビルド出来るか試してみました。(CEV Linux SDKではx86 Linux版ARM
Linux Cross GCCしか提供されていませんので、Ubuntu/Linaro x86 Linux GCCでビルドした時(406408)
と同様、VMware Player上のUbuntuでビルドするようにしました。) 結果、最後までビルド出来ました。

BuildLog.txt



作成したバッチファイル(例): arduino-1.5.3\hardware\tools\x86\arm-cev-linux-uclibcgnueabihf\bin\vmw-g++.bat
バッチファイルの内容(例):

@echo off
rem This code is in the public domain. You may use, modify or distribute it freely.
set CROSS_COMPILE=arm-buildroot-linux-uclibcgnueabihf-
cscript -nologo %~dp0\vmwshdo.js \\.\pipe\vmware-serial-port %CROSS_COMPILE%g++ %*

書き換えたArduino IDEの環境設定ファイル: arduino-1.5.3\hardware\arduino\x86\platform.win.txt
環境設定ファイルの書き換え部分の内容(もう'X86'では無く'ARM'ですが文字列は未変更のままです):

# X86 compile variables
# ---------------------

name=Arduino X86 Boards
compiler.path={runtime.ide.path}/hardware/tools/x86/arm-cev-linux-uclibcgnueabihf/bin/
compiler.c.cmd=vmw-gcc.bat
compiler.c.flags= -c -g -Os -w -ffunction-sections -fdata-sections -MMD
compiler.c.elf.flags=-Os -Wl,--gc-sections
compiler.c.elf.cmd=vmw-g++.bat
compiler.S.flags=-c -g -assembler-with-cpp
compiler.cpp.cmd=vmw-g++.bat
compiler.cpp.flags= -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD
compiler.ar.cmd=vmw-ar.bat
compiler.ar.flags=rcs
compiler.objcopy.cmd=vmw-objcopy.bat
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=vmw-objcopy.bat
compiler.ldflags=
compiler.size.cmd=vmw-size.bat
compiler.strip.cmd=vmw-strip.bat
# 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]+).*

作成したバッチファイルのフォルダ: arduino-1.5.3\hardware\tools\x86\arm-cev-linux-uclibcgnueabihf\bin
フォルダの内容:



追記 : メモ

CEV-RZ/A1L評価ボード 製品ページ
http://www.computex.co.jp/products/cev/index.htm

CEV-RZ/A1L評価ボード Linux SDK 導入ガイド (セットアップ手順やビルド手順の説明有り)
http://www.computex.co.jp/products/pdf/manual/cev/cev_rza1l_embeddedlinux_installation_guide.pdf
http://www.computex.co.jp/products/pdf/manual/cev/cev_rza1l_embeddedlinux_installation_guide_v2.pdf

CEV Linux SDKのGCC
SDK V1.00.00 : linaro-arm-linux-gnueabihf
SDK V2.00.00 : arm-buildroot-linux-uclibcgnueabihf

CEV Linux SDKのGCCのパス
export PATH={buildrootフォルダ}/output/host/usr/bin:$PATH

Linux上での自作プログラムの実行について - Googleアカウント CEV-RZ/A1Lパブリックコミュニティ
https://groups.google.com/forum/embed/?place=forum%2Fcevrza1l-board&showsearch=true&showtabs=false&parenturl=http%3A%2F%2Fwww.computex.co.jp%2Fforum%2Fcev_rz_a1l.htm&theme=default#!topic/cevrza1l-board/CZS6r_BBX58

CEV Linux SDK V2.00.00をリリース - Googleアカウント CEV-RZ/A1Lパブリックコミュニティ
https://groups.google.com/forum/embed/?place=forum%2Fcevrza1l-board&showsearch=true&showtabs=false&parenturl=http%3A%2F%2Fwww.computex.co.jp%2Fforum%2Fcev_rz_a1l.htm&theme=default#!topic/cevrza1l-board/ha5jaPNnitY

私が導入ガイドに従ってCEV Linux SDK V2.00.00を解凍/セットアップ/ビルドルートした時の実行ログ
InstallLog.zip
tar-zxvf_CEV_Linux_SDK_V2_00_00_tgz_log.txt    (実行時間は2~3分程でした。)
initial_setup_packages_cev_sdk_log.txt    (実行時間は2~3分程でした。)
initial_buildroot_make_log.txt    (実行時間は18時間程でした。)
(私のパソコンのCPUは、年代物のAMD Athlon 1.2GHzというCPUです。)

追記 : メモ

Intel Galileoドキュメントページ
https://communities.intel.com/community/makers/documentation/galileodocuments/content/

Intel Quark BSP Build Guide (英語)
第6章にLinux上でWindows版GCCやMac版GCCをビルドする方法も書かれていたのですが残念ながら参考にはなりませんでした。
ちなみに、Intel QuarkではGCCをビルドしなくても、各OS版のIntel Galileo Arduino IDEに同梱のGCCで事足りると思います。

https://communities.intel.com/servlet/JiveServlet/downloadBody/21882-102-1-25153/Quark_BSPBuildGuide_329687_001.pdf

関連記事

2014/01/20   blog-entry-409   category: Arduino Lib & CrossGCC

go page top