なんとかなるさね

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


スポンサーサイト 

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

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

go page top

Arduino IDE|GadgetRenesas基板用IDE4GR 1.6.5(のようなもの)を作るには? (3) 

GadgetRenesas基板用IDE4GR 1.6.5/1.6.7(のようなもの)を作ってみることを考え始めたのですが、幾つかの
ボードパッケージのフォルダ構成を前のエントリで眺めてみて気付いたことは、8ビットAVRマイコンの過去の
Arduino IDEから使われ続けているcoresフォルダやvariantsフォルダに加えて、32ビットARMマイコン等では
systemフォルダにLSI会社が提供しているソフトウェアPFやSDKのファイルを置くという運用が行われている
ことでした。なお、systemフォルダのパスを利用したい場合には、例えばArduino Dueのボードパッケージの
ボード情報定義ファイルのように、以下の表記を使用すれば良いようです。

パッケージ: Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino version 1.6.6
ファイル: packages\arduino\hardware\sam\1.6.6\platform.txt
該当箇所:

compiler.libsam.c.flags="-I{build.system.path}/libsam" "-I{build.system.path}/CMSIS/CMSIS/Include/" "-I{build.system.path}/CMSIS/Device/ATMEL/"

そこで、ものは試しということで、GadgetRenesasのKURUMI基板用スケッチをビルドする時のリンク対象に
含まれている以下のライブラリファイルをvariantsフォルダからsystemフォルダに移してみました。

元々のフォルダ: arduino-1.6.5-r5\hardware\GadgetRenesas\rl78\variants\gr_kurumi
新しいフォルダ: arduino-1.6.5-r5\hardware\GadgetRenesas\rl78\system\proprietary\libs
移したファイル:

pfdl.a
picalicoFree.a

ところが、Arduino IDE 1.6.5では意図した通りにビルド出来たのですが、Arduino Eclipse plugin V2.4では
上の表記が使えずビルド出来ませんでした。(ただ、Arduino Eclipse plugin V2.4でもArduino Dueでは使えて
いるようでしたので、ちょっと謎な感じです。Arduino Dueだけ特殊な処理が行われているのかも知れません。
実は、別件でも以前から、Arduino Dueだけ特殊な処理が行われているような気がしてはいましたし、、、)

そこで、今回はこちらのエントリのKURUMI基板のボード情報定義ファイルを以下のように変更してみました。

ファイル: arduino-1.6.5-r5\hardware\GadgetRenesas\rl78\platform.txt
今回の内容(該当部分): 赤字の箇所を変更

# RL78 and platform.
# ------------------------------

# For more info:

name=RL78
version=0.1.0

# In case of GadgetRenesas, somehow Arduino Eclipse plugin V2.4 needs following define.
# (On the other hand, in case of SAM, the plugin does not need such define.)
build.system.path={build.core.path}/../../system


# For Arduino IDE internal hardware folder
#runtime.tools.gcc-rl78.path={runtime.ide.path}/hardware/tools/gcc-rl78
#runtime.tools.rl78.path={runtime.ide.path}/hardware/tools/rl78

# For external Sketch Book hardware folder
#runtime.tools.gcc-rl78.path={runtime.hardware.path}/tools/gcc-rl78
#runtime.tools.rl78.path={runtime.hardware.path}/tools/rl78

# For Board Packages via Arduino Boards Manager (including built-in Board Package)
# nothing to do

# AVR compile variables
# ---------------------
途中省略
# Default "compiler.path" is correct, change only if you want to overidde the initial value
#compiler.path={runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/bin/
#compiler.path={runtime.hardware.path}/tools/gcc-rl78/rl78-elf/bin/
compiler.path={runtime.tools.gcc-rl78.path}/rl78-elf/bin/
途中省略

# AVR compile patterns
# --------------------
途中省略
## Combine gc-sections, archives, and objects
#recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} "{build.path}/exception_handler.cpp.o" "{build.path}/vector_table.c.o" "{build.variant.path}/core_v060.a" "{build.variant.path}/picalicoFree.a" "{build.variant.path}/pfdl.a" "-L{build.path}" "{build.path}/{archive_file}" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/rl78-elf/lib" "-L{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03" --start-group --gc-sections -lstdc++ -lnosys -lm -lc -lgcc --end-group
#recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} --whole-archive "{archive_file_path}" --no-whole-archive "{build.variant.path}/core_v060.a" "{build.variant.path}/picalicoFree.a" "{build.variant.path}/pfdl.a" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/rl78-elf/lib" "-L{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03" --start-group --gc-sections -lstdc++ -lnosys -lm -lc -lgcc --end-group
#recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} --whole-archive "{archive_file_path}" --no-whole-archive "{build.variant.path}/core_v060.a" "{build.variant.path}/picalicoFree.a" "{build.variant.path}/pfdl.a" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03" --start-group --gc-sections -lstdc++ -lnosys -lm -lc -lgcc --end-group
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} --whole-archive "{archive_file_path}" --no-whole-archive "{build.variant.path}/core_v060.a" "{build.system.path}/proprietary/libs/picalicoFree.a" "{build.system.path}/proprietary/libs/pfdl.a" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03" --start-group --gc-sections -lstdc++ -lnosys -lm -lc -lgcc --end-group
以下省略

このやり方でも、以下のようにビルド出来ました。

pfdl.aとpicalicoFree.aを移す前のフォルダ


pfdl.aとpicalicoFree.aを移した後のフォルダ


Arduino IDE 1.6.5/1.6.7でもArduino Eclipse pluginでもビルドすることが出来ました




更に、以前のエントリの派生スケッチ環境からpfdl.aとpicalicoFree.aを削除したものでもビルド出来ました。
(但し、Arduino Eclipse pluginでビルドするにはこちらのエントリのビルド変数を定義する必要がありますが。)

pfdl.aとpicalicoFree.aを削除する前のフォルダ


pfdl.aとpicalicoFree.aを削除した後のフォルダ


Arduino IDE 1.6.5/1.6.7でもArduino Eclipse pluginでもビルドすることが出来ました




関連記事

2016/02/08   blog-entry-735   category: Arduino Lib & CrossGCC

go page top

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